Skip to main content

How to install ISPConfig on Ubuntu/Debian

In this guide we will install ISPConfig on Ubuntu (starting from 20.04 version) and Debian (starting from 11 version).

Updated over a week ago

ISPConfig is a free control panel for servers with the Linux operating system. With ISPConfig you can manage sites on the server via a convenient web interface, work with mail, FTP, web servers and solve other tasks.

Important Warning

Installing ISPConfig on your server may alter existing configurations and potentially affect the operation of other services. For best results and to avoid conflicts with existing data or software, it is highly recommended to install ISPConfig on a fresh, empty server that does not contain any important data. This will help ensure that ISPConfig can configure the system properly without interfering with your current setup.

If you must install ISPConfig on a server that already hosts other data or services, please be aware that certain configurations may be overwritten, and it is strongly advised to back up all critical data before proceeding with the installation.

Also, during installation, a lot of components, required to run ISPConfig, will be installed on your server automatically:

  • Apache or Nginx;

  • PHP;

  • MySQL/MariaDB;

  • Postfix;

  • Dovecot;

  • ClamAV;

  • BIND9;

  • Fail2Ban;

  • rsync;

  • Cron;

  • Logrotate;

  • ISPConfig Control Panel;

  • OpenSSL.

The versions of installed components depend on the OS repository. You will able to upgrade them later (for example PHP) but make sure the versions you are upgrading to are supported by your current ISPConfig version. Always back up your server and its data before upgrading any component.

Please note: ISPConfig cannot be installed on OpenVZ servers, including Container or Storage VPS. It can only be installed on a Linux VPS (KVM).

1. Installation Guide

1.1. Update the system

Start by ensuring your system is up to date:

apt update && apt upgrade -y

1.2. Install ISPConfig and required components

Run this script to install ISPConfig with Apache:

wget -O - https://get.ispconfig.org | sh -s -- --use-ftp-ports=40110-40210 --unattended-upgrades

If you want to install ISPConfig with NGINX, use this command:

wget -O - https://get.ispconfig.org | sh -s -- --use-nginx --use-ftp-ports=40110-40210 --unattended-upgrades

After executing the above command, the ISPConfig installation process will begin. The installation will take some time.

Once the installation is complete, the ISPConfig admin and MySQL root passwords will be displayed. Make sure to save them for the future.

1.3. Remove log file

Next delete the temporary ISPConfig log file:

rm -rf /tmp/ispconfig-ai/var/log/setup-*

1.4. Connect to ISPConfig

To access ISPConfig, enter your server's hostname followed by port 8080 (the default ISPConfig port), as shown in the example below:

https://your_hostname:8080

The login page will appear. Use "admin" as the username and enter the password you saved earlier (the ISPConfig admin password).

Once connected, the ISPConfig dashboard will appear, allowing you to manage your server:

2. Post-Installation Configuration

2.1. Change the default admin password

For security reasons, changing the default ISPConfig password is highly recommended. Once you connected to the ISPConfig, navigate to the Tools--> User Settings:

Next, click "Generate password". We recommend you to generate strong password by clicking β€œGenerate Password”. Repeat your new password and click "Save".

2.2. Setup ISPConfig firewall

The auto-installer enables the required ports by default through UFW (Uncomplicated Firewall).

The allowed ports are: 21, 22, 25, 80, 443, 40110-40210, 110, 143, 465, 587, 993, 995, 53, 8080, 8081.

However, to apply this setting, you should open firewall via ISPConfig interface. Navigate to Systems --> Firewall:

Next click β€œAdd Firewall record”:

In this section, you will see all the ports that are open by default. To open additional ports, simply add the required ports, separated by commas, in the 'Open TCP ports' or 'Open UDP ports' fields (depending on the type of port). Then click "Save".

Next, make sure UFW is enabled. You can check the status with this command:

ufw status

If UFW is not enabled, use the following command to start it:

ufw enable

Then you can check all open ports via SSH by running the following command:

ufw status verbose

Did this answer your question?