
// Get started
Install SmashPanel on your server
Ubuntu 22.04 or 24.04 LTS, a domain you control, and the commands below. The examples use example.com. There is no default admin password.
Requirements
| Requirement | Detail |
|---|---|
| Operating system | Ubuntu 22.04 LTS or Ubuntu 24.04 LTS. |
| CPU architecture | 64-bit x86 (amd64). |
| Memory | 8 GB of RAM when you install mail. The installer warns below 4 GB. |
| Disk | 100 GB is a practical starting size. The installer warns below 50 GB free. |
| CPU | 2 vCPU or more. |
| Access | Root SSH, a public IPv4 address, and a domain you control. |
| Port 53 | Must be free for authoritative DNS. On Ubuntu the installer releases it if the local resolver is holding it. |
| Dedicated IPs | Optional, for accounts that need their own address. |
Copy the SmashPanel files onto the server. This website does not offer a separate download package. The commands below run from the directory you copied them into, shown here as <install-dir>.
Don't have the SmashPanel files yet? Contact support@smashhithosting.com for access.
DNS records
Create these before or just after install. SSL and public DNS work once the registrar points the names at the server.
| Record | Purpose |
|---|---|
| panel.example.com | Admin, reseller and client portals. |
| mail.example.com | Mailcow, if you install mail. |
| docker.example.com | Portainer. It redirects into the panel. |
| status.example.com | The bundled uptime tool. Monitors are not created for you. |
| host1.example.com | The server's own hostname. |
| ns1 and ns2 | Optional glue records, when customer domains will use your nameservers. |
| PTR | Set at the server provider: the server IP address points at the mail hostname. |
Ports
| Port | Service |
|---|---|
| SSH | 22 by default, or the port you choose in the wizard. |
| 80 and 443 | HTTP and HTTPS. Certificate issuance needs port 80. |
| 53 | DNS, TCP and UDP, on the primary address. |
| 22000–22999 | One SFTP port per hosting account. |
| 25, 465, 587, 993, 995, 4190, 143, 110 | Mail, only when Mailcow is installed. |
| 51820/udp | WireGuard, when VPN is in use. |
| 1194/udp and 1195/tcp | OpenVPN, when VPN is in use. |
| 500, 4500 and 1701/udp | IPsec and L2TP, when VPN is in use. |
Install
Go to the directory that holds the SmashPanel files and start the installer.
cd <install-dir> sudo bash scripts/host-setup/install.shOnly needed if you copied the files from a Windows machine:
sudo bash scripts/fix-line-endings.shAnswer the wizard. It asks for the base domain (
example.com), the panel hostname (defaultpanel.example.com), the server hostname (defaulthost1.example.com), an admin email address for Let's Encrypt, the public IPv4 address, the network interface, the gateway, any extra dedicated IPs, whether to install Mailcow and its hostname, and the SSH port.If the server's network is already correct, you can skip the network and package-upgrade steps.
sudo bash scripts/host-setup/install.sh --skip-network --skip-upgradesOther flags:
--yes,--reconfigure,--dry-run,--skip-mailcow,--skip-upgrades,--skip-network,--skip-dns-check, and--config FILE.The installer runs twelve steps: preflight, base packages, SSH settings with fail2ban and time sync, network, firewall, Docker, system limits, directories, the host agent, the platform stack, post-install wiring (DNS, certificates, mail if you chose it, and the admin login), then a verify step. If a step fails, resume it:
sudo bash scripts/host-setup/setup.sh --step <step>For an unattended run, write the answers first, check them, then install:
sudo bash scripts/host-setup/configure-host.sh --non-interactive sudo bash scripts/host-setup/setup.sh --strict --validate-only sudo bash scripts/host-setup/setup.sh
First login
Open the panel:
- Admin:
https://panel.example.com/admin - Client:
https://panel.example.com/client - Reseller:
https://panel.example.com/reseller
The generated admin username and password are written to a root-only file on the server. There is no default password. Read that file as root, sign in, and enrol two-factor authentication before you create hosting accounts. Admin two-factor authentication cannot be turned off.
After install
- Sign in and enrol two-factor authentication. You need it before the panel will create clients.
- Point the registrar A and NS records at the server so public DNS and certificates work.
- Set the PTR record at the provider so the server IP address resolves to the mail hostname.
- Optional: limit who can open the admin area by IP address.
- If mail was installed and the admin health check for it is not OK, run the mail setup script, then reset the mail admin password from the panel:
sudo bash scripts/mailcow/ensure-panel-api-key.sh- Optional: connect GitHub under Admin, System, Integrations, so accounts can deploy from a repository.
- Create the first hosting account under Admin, Clients, or from the shell:
bash scripts/clients/create-client.sh --username acme --domain example.com --with-dbNext
Moving a site from cPanel?
The backup upload, the live SSH transfer and the command-line import are on the migrations page.