Skip to content

Getting Started with CorePanel

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.

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

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.

Installing CorePanel is straightforward. Follow these steps:

  1. Update your system
Terminal window
dnf update -y
  1. Run the installer
Terminal window
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.

  1. 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 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:

Terminal window
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.

  1. 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:

Terminal window
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.

  1. 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.

The IP endpoint stays available afterwards as your way back in if DNS or the certificate ever breaks — see Accessing the panel by IP.

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.

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

Each account in CorePanel runs in a completely isolated environment:

FeatureDescriptionSecurity Benefit
Dedicated PHP-FPM PoolEach account has its own PHP processPrevents cross-account PHP exploits
Separate Linux UserEach account is a separate system userOperating system-level isolation
Disk QuotasPer-account storage limitsPrevents storage abuse
File PermissionsStrict permission enforcement (0600 isolation)No unauthorized file access

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)

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

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

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):

Terminal window
corepanel account create example.com --owner-email john@example.com

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

Terminal window
corepanel account list --search example.com

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

Terminal window
corepanel domain add 12 shop.example.net --type addon
Terminal window
corepanel status

Now that you understand the basics, explore these topics:

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:

Terminal window
# 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'