The installer sets up ArcPanel and the services you choose on a fresh Debian or Ubuntu server in 10 to 15 minutes. Check the Requirements first.
Tip
The install page builds the command for you: pick a preset and the services, then copy the command. This guide explains each step and option.
Download the installer
Log in to the server over SSH as root, or as a user that can use sudo:
wget https://arcpanel.org/install.sh
No wget? Use curl -fsSLo install.sh https://arcpanel.org/install.sh. An SSL error means the server lacks CA certificates: run apt-get update && apt-get install ca-certificates and try again.
install.sh detects Debian or Ubuntu and runs the installer of the current stable release with the options you give it.
Run it
With the defaults:
sudo bash install.sh
The installer shows what it will install and asks you to confirm. It then asks for:
- the administrator username: 2 to 30 letters, digits, dots, hyphens or underscores, starting and ending with a letter or digit;
- the administrator e-mail address, which receives the login details and notifications;
- the host name of the server, such as
panel.example.com; - the administrator password.
You can give the first three as options, for example --username, --email and --hostname, and skip the confirmation with --interactive no. Let the installer ask for the password: a password on the command line stays in your shell history.
sudo bash install.sh --interactive no --hostname panel.example.com --email admin@example.com --username arcadmin
Choose the services
Every option takes yes or no. Leave out an option to keep its default.
| Option | Default | What it does |
|---|---|---|
--apache |
yes | Apache behind NGINX, for .htaccess support |
--phpfpm |
yes | PHP through PHP-FPM; always on without Apache |
--multiphp |
no | Several PHP versions; also takes a list such as 8.3,8.4 |
--vsftpd |
yes | The VSFTPD FTP server |
--proftpd |
no | ProFTPD instead of VSFTPD |
--named |
yes | BIND, to host the DNS zones of your domains |
--mysql |
yes | MariaDB |
--mysql8 |
no | Oracle MySQL 8 instead of MariaDB |
--postgresql |
no | PostgreSQL with phpPgAdmin |
--exim |
yes | The Exim mail server |
--dovecot |
yes | IMAP and POP3; needs Exim |
--sieve |
no | Server-side mail filters; needs Dovecot |
--clamav |
by memory | Virus scanning of mail; yes with 3 GB of memory or more |
--spamassassin |
by memory | Spam filtering; yes with about 1.5 GB of memory or more |
--iptables |
yes | The firewall managed by the panel |
--fail2ban |
yes | Bans brute-force attempts; needs iptables |
--quota |
no | Disk quotas per user |
--resourcelimit |
no | CPU and memory limits per user |
--webterminal |
no | A shell in the browser |
--api |
yes | Access keys and REST API v2 |
--port |
8083 | The port of the panel |
--lang |
en | The panel language, for example vi, de, fr or ja |
Common choices:
- Web without mail:
--exim no. - Apps only (Node.js, Docker and app processes):
--apache no --vsftpd no --named no --exim no.
--force skips the checks for a fresh server. Use it only when you know why the check fails, for example on a test machine without netplan.
When it finishes
The installer ends with Congratulations! and prints:
- the Admin URL,
https://panel.example.com:8083, and a backup URL with the IP address; - the administrator username;
- a note that automatic updates are on.
The same message goes to the administrator e-mail address. Restart the server when the installer asks: in interactive mode it waits for a key and reboots; otherwise reboot it yourself.
sudo reboot
On that first restart, ArcPanel asks Let's Encrypt for a certificate for the host name, so the panel stops showing a certificate warning once the host name resolves.
Where things are
| What | Where |
|---|---|
| The installation log | /root/arcpanel_install_backups/arc_install-<date>.log |
| Configuration replaced by the installer | /root/arcpanel_install_backups/<date>/ |
| ArcPanel itself | /usr/local/arcpanel |
| Sites, mail and files of users | /home/<user> |
| Backups | /backup |
Warning
The installation log contains the administrator password. Keep it readable by root only, or delete it once the panel works.
If it fails
- "Install script version does not match package version!" A new release came out while you were downloading. Download
install.shagain and rerun it. - "ArcPanel should be installed on a clean server." The installer found other services. Start again on a fresh server; see Requirements.
- Anything else: read the end of the installation log, and ask on GitHub Discussions with the error and your system version.
Next steps
Open the Admin URL and sign in: First login.