Web hosting panels can also be referred to as control panels. They allow users to manage various servers and hosted services. They provide several features and advantages that include one-click deployment, automated health alerts, mail server support, domain management, backup and security tasks. There are several Web hosting panels in the market today, the most popular ones are cPanel, Plesk, DirectAdmin, ISPConfig, Webmin etc.

ISPConfig is one of the popularly used Web Hosting Panel. It allows users to manage hosting environments using a web UI. It offers several features that make managing aspects of web hosting easier. The cool features make it a suitable choice for system administrators and hosting providers.

The features and benefits associated with ISPConfig are:

  • Multi-Server Management: with ISPConfig, you can easily manage multiple servers from a central control panel. This can be significant to those who want to manage a cluster of servers in their environment.
  • Domain and Website Management: ISPConfig makes it easier to manage domains, subdomains, and websites. It offers tools that can be used for domain registration, DNS management, virtual host configuration and deploying a website. It is also possible to manage email accounts, databases and FTP accounts for each domain
  • Security and Access Control: ISPConfig supports secure FTP (SFTP), firewall, SSL/TLS certificates, firewall configuration, and IP address blacklisting. It also allows you to define the permissions and access levels for users which provides proper security to the systems.
  • User and Reseller Management: You can also create user accounts with permissions and resources allocated to them. You can set up reseller accounts and allow users to resell hosting services under their own brand.
  • Extensibility and Customization: ISPConfig is highly customizable. This means that you can extend its functionality using additional modules and plugins
  • Open-Source and Community Support: As open-source software, ISPConfig benefits a lot from the large community of users and developers who provide support and contribute to its development.

In this guide, we will walk through how to install ISPConfig Web Hosting Panel on Debian 12 (Bookworm)

Step 1: Prepare Debian System

To be able to install ISPConfig Web Hosting Panel on Debian 12 (Bookworm), you need a system that meets the below specifications.

  • CPU: 2 vCores
  • RAM: 2 GB and above
  • Space: 20 GB and above

You need to ensure that the hostname is set:

sudo hostnamectl set-hostname ispconfig.computingforgeeks.com

You need to map the entry in the /etc/hosts file:

$ sudo vim /etc/hosts
192.168.20.11 ispconfig.computingforgeeks.com

Verify the made changes:

$ hostname -f
ispconfig.computingforgeeks.com

Update the system and the available packages:

sudo apt update && sudo apt upgrade -y

If a reboot is required, perform it.

[ -f /var/run/reboot-required ] && sudo reboot -f

Step 2: Install the Required Packages

Update Debian 12 repositories to include non free packages.

sudo tee /etc/apt/sources.list<<EOF
deb http://deb.debian.org/debian bookworm main contrib non-free non-free-firmware
deb http://deb.debian.org/debian bookworm-updates main non-free contrib non-free-firmware
deb http://security.debian.org/debian-security bookworm-security main contrib non-free non-free-firmware
EOF

Install few other dependency packages.

sudo apt update
sudo apt install wget tmux vim rar unrar -y

Step 3: Download and Install ISPConfig

Now download the ISPConfig Web Hosting Panel installer on Debian 12 (Bookworm). You can view all the available config options of the ISPConfig installer by executing:

$ wget -O - https://get.ispconfig.org | sudo sh -s -- --help
******************************************************************************************************************************************************************************************************ISPConfig 3 Autoinstaller
******************************************************************************************************************************************************************************************************

Usage: ispc3-ai.sh [<argument>] [...]

This script automatically installs all needed packages for an ISPConfig 3 setup using the guidelines from the "Perfect Server Setup" howtos on www.howtoforge.com.

Possible arguments are:
    --help          Show this help page.
    --debug         Enable verbose logging (logs each command with the exit code).
    --channel       Choose the channel to use for ISPConfig: --channel=<stable|dev>
                    "stable" is the latest ISPConfig release available on www.ispconfig.org
                    "dev" is the latest dev-branch from the ISPConfig git repository: https://git.ispconfig.org/ispconfig/ispconfig3/tree/develop
                    The dev channel might contain bugs and less-tested features and should only be used in production by very experienced users.
    --lang          Use language for ISPConfig installation. Specify with --lang=en|de (only en (English) and de (German) supported currently).
    --interactive   Don't install ISPConfig in non-interactive mode.
                    This is needed if you want to use expert mode, e.g. to install a slave server that shall be integrated into an existing multiserver setup.
    --use-nginx     Use NGINX webserver instead of Apache2.
    --use-amavis    Use Amavis instead of Rspamd for mail filtering.
    --use-unbound   Use unbound instead of bind9 for local resolving. Only allowed if --no-dns is set.
    --use-php       Use specific PHP versions, comma separated, instead of installing multiple PHP, e.g. --use-php=7.4,8.0 (5.6, 7.0, 7.1, 7.2, 7.3, 7.4, 8.0, 8.1, 8.2 and 8.3 available).
                    --use-php=system disables the sury repository and just installs the system's default PHP version.
                    --use-php while omitting the argument, uses all versions.
    --use-ftp-ports This option sets the passive port range for pure-ftpd. You have to specify the port range separated by hyphen, e.g. --use-ftp-ports=40110-40210.
                    If not provided the passive port range will not be configured.
    --use-certbot   Use Certbot instead of acme.sh for issuing Let's Encrypt certificates. Not advised unless you are migrating from an old server that uses Certbot.
    --no-web        Do not use ISPConfig on this server to manage webserver setting and don't install nginx/apache or pureftpd.
                    This will also prevent installing an ISPConfig UI and implies --no-roundcube as well as --no-pma.
    --no-mail       Do not use ISPConfig on this server to manage mailserver settings.
                    This will install Postfix for sending system mails, but not dovecot and not configure any settings for ISPConfig mail. It implies --no-mailman.
    --no-dns        Do not use ISPConfig on this server to manage DNS entries. Bind will be installed for local DNS caching / resolving only.
    --no-local-dns  Do not install local DNS caching / resolving via bind.
    --no-firewall   Do not install ufw and tell ISPConfig to not manage firewall settings on this server.
    --no-roundcube  Do not install roundcube webmail.
    --roundcube     Install Roundcube even when --no-mail is used. Manual configuration of Roundcube config is needed.
    --no-pma        Do not install phpMyAdmin on this server.
    --no-mailman    Do not install Mailman mailing list manager.
    --no-quota      Disable file system quota.
    --no-ntp        Disable NTP setup.
    --no-jailkit    Do not install jailkit.
    --no-ftp        Do not install Pure-FTPd server.
    --monit         Install Monit and set it up to monitor installed services. Supported services: Apache2, NGINX, MariaDB, pure-ftpd-mysql, php-fpm, ssh, named, Postfix, Dovecot, rspamd.
    --monit-alert-email
                    Set up alerts for Monit to be sent to given e-mail address. e.g. [email protected].
    --ssh-port      Configure the SSH server to listen on a non-default port. Port number must be between 1 and 65535 and can not be in use by other services. e.g. --ssh-port=64.
    --ssh-permit-root
                    Configure the SSH server whether or not to allow root login: --ssh-permit-root=<yes|without-password|no>, e.g. --ssh-permit-root=without-password.
    --ssh-password-authentication
                    Configure the SSH server whether or not to allow password authentication: --ssh-password-authentication=<yes|no>, e.g. -ssh-password-authentication=no.
    --ssh-harden    Configure the SSH server to have a stronger security config.
    --unattended-upgrades
                    Install UnattendedUpgrades. You can add extra arguments for automatic cleanup and automatic reboots when necessary: --unattended-upgrades=autoclean,reboot (or only one of them).
    --i-know-what-i-am-doing
                    Prevent the autoinstaller to ask for confirmation before continuing to reconfigure the server.
......

When running, the installer, there are several config options you can use. Here, we will use Apache, PHP 8.x, MariaDB, Postfix, Dovecot, Rspamd, BIND, Jailkit, Roundcube, PHPMyAdmin, Mailman, Webalizer, AWStats, GoAcces.

I recommend you begin setup in a tmux session when working on remote system.

tmux
wget -O - https://get.ispconfig.org | sudo sh -s --  --lang=en --unattended-upgrades

You can specify PHP version instead of going with the default. For example;

wget -O - https://get.ispconfig.org | sudo sh -s --  --use-php=8.3 --lang=en --unattended-upgrades

Proceed with the installation:

WARNING! This script will reconfigure your complete server!
It should be run on a freshly installed server and all current configuration that you have done will most likely be lost!
Type 'yes' if you really want to continue: yes

Once complete, you will see the below output. You have the Admin and MySQL password. Save them as you may need them later.

Install ISPConfig Web Hosting Panel on Debian 12 Bookworm

Step 4: Access ISPConfig Web Hosting Panel

The ISPConfig Web Hosting Panel web interface can be accessed on port 8080. But first, ensure that the port is allowed through the firewall:

sudo ufw allow 8080/tcp

Then proceed and access the ISPConfig Web UI using the URL https://domain_name:8080

Install ISPConfig Web Hosting Panel on Debian 12 Bookworm 1

Login using the admin credential provided earlier. If everything is okay, you will see the below dashboard.

Install ISPConfig Web Hosting Panel on Debian 12 Bookworm 2

Now here, you can perform several management tasks. One of them is changing the admin password. Navigate to Tools and set your preferred password:

Install ISPConfig Web Hosting Panel on Debian 12 Bookworm 3

Step 5: Get Started with ISPConfig Web Hosting Panel

With ISPConfig Web Hosting Panel, there are several tasks you can perform. In this guide, I will demonstrate a few of these tasks.

The first task is configuring the firewall. This can be done by navigating to System ->Firewall ->Add Firewall record

Install ISPConfig Web Hosting Panel on Debian 12 Bookworm 19

You can add a new firewall rule as shown.

Install ISPConfig Web Hosting Panel on Debian 12 Bookworm 4

Another this you can do with the ISPConfig Web hosting panel is create and manage DNS zones. This can be done in the DNS tab as shown.

Install ISPConfig Web Hosting Panel on Debian 12 Bookworm 6

Create a DNS zone by providing the required information.

Install ISPConfig Web Hosting Panel on Debian 12 Bookworm 7

Once created, the zone will be available as shown:

Install ISPConfig Web Hosting Panel on Debian 12 Bookworm 20

To add a user on ISPConfig Web Hosting Panel, navigate to System->CP users then add the user as desired.

Install ISPConfig Web Hosting Panel on Debian 12 Bookworm 9

Provide the user details:

Install ISPConfig Web Hosting Panel on Debian 12 Bookworm 8

To add a client, navigate to the clients tab.

Install ISPConfig Web Hosting Panel on Debian 12 Bookworm 10

Provide the required details.

Install ISPConfig Web Hosting Panel on Debian 12 Bookworm 14

We can also create a website on this panel in the sites tab

Install ISPConfig Web Hosting Panel on Debian 12 Bookworm 12

Provide the required details:

Install ISPConfig Web Hosting Panel on Debian 12 Bookworm 15

Once created, you can access the site using the icon provided.

Install ISPConfig Web Hosting Panel on Debian 12 Bookworm 16

Disable the default page for Apache:

sudo a2dissite 000-default.conf
sudo systemctl restart apache2

You will see the page as shown:

Install ISPConfig Web Hosting Panel on Debian 12 Bookworm 17

You can also manage your databases for the site in the sites tab:

Install ISPConfig Web Hosting Panel on Debian 12 Bookworm 11

Add the database as shown.

Install ISPConfig Web Hosting Panel on Debian 12 Bookworm 18

Verdict

That marks the end of this guide on how to install ISPConfig Web Hosting Panel on Debian 12 (Bookworm). Now you can easily manage your web hosting platform. I hope this was of help to you.

See more:

1 COMMENT

LEAVE A REPLY

Please enter your comment!
Please enter your name here