# Getting Started with CorePanel

Source: https://www.corepanel.net/docs/getting-started/
Last updated: 2026-09-04
Part of the CorePanel documentation — https://www.corepanel.net/docs

---

Welcome to **CorePanel** - the modern, secure, and blazingly fast web hosting control panel designed for RHEL-based servers. This guide will help you get started with CorePanel and unlock the full potential of your hosting infrastructure.

## What is CorePanel?

CorePanel is a next-generation web hosting control panel that combines security, performance, and ease of use. Built from the ground up for modern hosting needs, CorePanel provides:

- **True User Isolation**: Each account runs in a completely isolated environment with dedicated PHP-FPM pools
- **WordPress Optimization**: Built-in Early Hints, on-the-fly WebP, and performance optimizations
- **Modern Stack**: CoreHttpd with HTTP/3, PHP 8.4, 8.3, 8.2 and 7.4 side by side, and MariaDB 10.11 LTS out of the box (dynamic caching & JS/CSS minification on Pro)
- **Security First**: SELinux Enforcing, native pxShield WAF, privilege-separated services, and more

> **Why Choose CorePanel?**
>
>
> CorePanel is designed for hosting providers and agencies who need a reliable, fast, and secure control panel without the complexity of traditional solutions. Our users report **up to 3x faster WordPress sites** compared to traditional cPanel setups.
## Quick Start

### Prerequisites

Before installing CorePanel, ensure your server meets these requirements:

- **Operating System**: RHEL 8/9/10, AlmaLinux, or Rocky Linux
- **Architecture**: x86_64 (64-bit)
- **RAM**: Minimum 2GB (4GB+ recommended)
- **Disk Space**: At least 20GB free space
- **Network**: Clean installation with internet access

The installer checks the memory before it touches anything and warns if this server has
less than 2 GB. It is a warning, not a refusal — it will install on a smaller box if you
tell it to. What it is warning about is not an error at install time: the stack fits well
enough to finish, and then the kernel starts killing a service hours or days later.

> **Important**
>
>
> CorePanel requires a **fresh server installation**. Installing on a server with existing control panels or web server configurations may cause conflicts.
### Installation Steps

Installing CorePanel is straightforward. Follow these steps:

1. **Update your system**

```bash
dnf update -y
```

2. **Run the installer**

```bash
curl -fsSL https://get.corepanel.net/install.sh | bash
```

The installer sets up the full stack: CoreHttpd, PHP-FPM (7.4 and 8.4), MariaDB 10.11 LTS, Postfix/Dovecot, Rspamd, PowerDNS, Pure-FTPd, and the CorePanel services.

It asks for confirmation before touching the server, because it takes ownership of the whole hosting stack and there is no uninstall — install on a fresh server only.

3. **Answer the setup wizard**

The installer finishes by running the setup wizard, which asks for the panel domain and the administrator email, then generates the admin password. You do not need to launch anything: see [Initial Server Setup](https://www.corepanel.net/docs/initial-setup) for a full walkthrough.

The panel domain is optional — leave it blank and CorePanel is served on the server's IP, with the domain asked for again on first login.

**For unattended provisioning**, `--yes` skips both the confirmation and every wizard prompt, leaving the panel domain and admin email for the panel's onboarding:

```bash
curl -fsSL https://get.corepanel.net/install.sh | bash -s -- --yes
```

This is also what happens automatically when the installer runs with no terminal at all, such as from cloud-init or a provisioning system.

4. **If the installer reports a failure, stop here**

Before it declares success, the installer waits for the services to settle and checks that
they are running. If the panel is not usable it says so plainly, names the units that are
down, and exits non-zero:

```
=========================== INSTALL FAILED ===========================
CorePanel installed, but these services are not healthy:
  corepanel-core: failed (restarted 5 times on its own)

The panel is NOT usable in this state. What to look at first:
  journalctl -u corepanel-core -n 50
```

A unit that keeps failing hits systemd's start limit — five restarts in ten seconds — and
is then not retried at all, so it stays down even once the cause is gone. After fixing it:

```bash
systemctl reset-failed && systemctl start corepanel-core
```

A service that is *running* but was restarted on its own is reported the same way: it is
up only because systemd keeps putting it back, and it will not survive on its own.

When only a service behind the panel is down — mail, DNS, FTP — the installer says so as a
warning and lets the install stand, because the panel works and you can fix the rest from
it.

A failed install also sends us a diagnostic report; [what it contains, and how to turn it
off](https://www.corepanel.net/docs/telemetry#the-installers-failure-report).

5. **Access the panel**

If you gave a panel domain, use it:

```
https://panel.example.com
```

Otherwise — no domain yet, or DNS not pointing here — reach the panel at `https://<server-ip>` and accept the self-signed certificate warning (verify the fingerprint printed by the wizard). That is where you set the panel domain if you skipped it.

Log in with the user `coreadmin` and the password shown at the end of the wizard (also stored in `/root/.corepanel_password`).

If you lose track of the URL, your next SSH login shows it: CorePanel keeps a block in `/etc/motd` with the panel address and where the password lives, and rewrites it whenever the panel domain changes — see [The login banner](https://www.corepanel.net/docs/initial-setup#the-login-banner).

The IP endpoint stays available afterwards as your way back in if DNS or the certificate ever breaks — see [Accessing the panel by IP](https://www.corepanel.net/docs/initial-setup#accessing-the-panel-by-ip).

### Choosing an edition

The first sign-in asks which edition this server is going to be: **Personal** (free, up to
20 websites), or a **14-day free trial** of **Pro** or **Business** with no card and
nothing to cancel. Whatever you pick can be changed later from **Server → License** — see
[Choosing an edition](https://www.corepanel.net/docs/licensing#choosing-an-edition).

> **Installation Time**
>
>
> The installation process typically takes 10-15 minutes depending on your server's specifications and network speed.
## Core Concepts

Understanding these key concepts will help you make the most of CorePanel:

### Accounts and Isolation

Each account in CorePanel runs in a completely isolated environment:

| Feature | Description | Security Benefit |
|---------|-------------|------------------|
| Dedicated PHP-FPM Pool | Each account has its own PHP process | Prevents cross-account PHP exploits |
| Separate Linux User | Each account is a separate system user | Operating system-level isolation |
| Disk Quotas | Per-account storage limits | Prevents storage abuse |
| File Permissions | Strict permission enforcement (0600 isolation) | No unauthorized file access |

### WordPress Optimization

CorePanel includes built-in WordPress optimizations:

- **Early Hints (HTTP 103)**: Pre-load critical resources before the page loads (all editions, on by default)
- **Image Optimization**: On-the-fly WebP conversion (all editions, on by default)
- **Dynamic Caching**: Intelligent caching with automatic cache invalidation (Pro and up)
- **JS/CSS Minification**: On-the-fly asset minification (Pro and up)

### Backup System

CorePanel's backup system provides:

1. **Full Account Backups**: A self-describing archive with the home directory, MySQL databases, mailboxes, and credentials
2. **Scheduled Backups**: Recurring per-account or server-wide schedules (daily/weekly/monthly presets or custom cron) with retention pruning
3. **Full Restore**: Recreate an entire account — domains, DNS, mail, databases, and files — from a single archive

## Common Operations

Here are some common tasks you'll perform with the `corepanel` CLI:

### Creating a New Account

Accounts are created from their primary domain. The CLI prompts for the account password (at least 12 characters, with lower-case, upper-case, and digit):

```bash
corepanel account create example.com --owner-email john@example.com
```

### Finding an Account ID

Most commands identify accounts by their numeric id. Resolve a domain to its id with:

```bash
corepanel account list --search example.com
```

### Adding a Domain

Add an alias (parked) or addon domain to an existing account, using its account id:

```bash
corepanel domain add 12 shop.example.net --type addon
```

### Checking Service Status

```bash
corepanel status
```

> **Full CLI Reference**
>
>
> See the [CLI Reference](https://www.corepanel.net/docs/cli) for the complete list of commands, flags, and examples — accounts, domains, subdomains, mail, cron, backups, and more.
## Next Steps

Now that you understand the basics, explore these topics:

- **[Initial Server Setup](https://www.corepanel.net/docs/initial-setup)**: The `corepanel system init` wizard in detail
- **[CLI Reference](https://www.corepanel.net/docs/cli)**: Every `corepanel` command, flag, and example
- **[Mail System](https://www.corepanel.net/docs/mail-system)**: Learn about the email stack, SPF, DKIM, and authentication

> **Need Help?**
>
>
> If the docs don't cover what you're after, [write to us](https://www.corepanel.net/contact) — we answer every message.
## Automation

Everything the panel does goes through CorePanel's JSON-RPC 2.0 API — the same interface used by the web UI and the `corepanel` CLI. For scripted provisioning today, use the CLI, which supports non-interactive usage and JSON output:

```bash
# Scripted account provisioning
printf '%s' "$ACCOUNT_PASSWORD" | corepanel account create example.com --password-stdin --php 8.4 --quota 5120

# JSON output for scripting
corepanel account list --search example.com --json | jq '.[0].accountId'
```
