Install and Configure ISPConfig Control Panel on Ubuntu 22.04. The main task of a Linux system administrator revolves around monitoring the Linux system hardware and software, performing installations and upgrades while maintaining all the essential services and applications. In many scenarios, these activities are executed via the command line.
The ISPConfig control panel is a popular open-source web hosting control panel. It can be used to configure web hosting services and administer domain names, databases, and mail accounts. In this article, we will walk through the process of installing and configuring ISPConfig on Ubuntu 22.04.
This is mainly because the command line(server editions) is lightweight and hence faster as compared to GUI editions. However, this is a limitation since running commands on the command line require one to memorize all the commands for the tasks. For that reason, many organizations around the world have preferred Windows systems where things are managed from a point-and-click GUI.
Before you can begin the installation process, you will need to have a compatible version of Ubuntu installed on the host machine. Ubuntu 22.04 is supported. In addition, you should have a domain name that points to an IP address on the server.
To eliminate this hassle and see Linux adopted by several organizations, developers have developed independent GUI-based tools with abilities to manage some particular system areas and perform associated administrative tasks. These tools include Apache Directory, phpMyAdmin, MySQL Workbench, Webmin, Ajenti, Shorewall, cPanel, Cockpit, CUPS, YaST e.t.c
What is ISPConfig?
ISPConfig is an open-source web hosting control panel for Linux systems. It allows system admins to manage sites, email addresses, FTP accounts, MySQL and MariaDB databases, Shell accounts, DNS records, and Cron jobs through a web-based UI. It supports several Linux distributions such as CentOS, Debian, Ubuntu, Fedora, and OpenSUSE.
The cool features provided by ISPConfig include:
- Complete Web Server management for both Apache and Nginx servers.
- BIND Server and DNS server management.
- Mail server management with spam and antivirus filters using Postfix (MTA) and Dovecot (IMAP).
- Website statistics with Webalizer and AWStats.
- Administrator, Reseller, Client, and Mail-user login accounts.
- Ability to manage single or multiple servers from one control panel. Using the Master/Slave Setup
This tutorial covers how to install and configure ISPConfig Control Panel on Ubuntu 22.04
Getting Started
For this guide, you will require an Ubuntu 22.04 system with the following:
- CPU: 2 vCores
- RAM: 2 GB and above
- Space: 20 GB
You also need to configure a hostname:
sudo hostnamectl set-hostname ispconfig.seoxoom.com
Add the hostname to /etc/hosts
$ sudo vim /etc/hosts
#127.0.0.1 localhost.localdomain localhost
# This line should be changed to the correct servername:
127.0.0.1 ispconfig.computingforgeeks.com
Save the file and verify the changes
$ hostname -f
ispconfig.computingforgeeks.com
Update the system.
sudo apt update && sudo apt upgrade -y
Run the ISPConfig Installer
ISPConfig provides an installer that makes it easy to perform the installation and other underlying configs. To view all the available configuration options for the installation execute the command:
$ 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 and 8.1 available).
--use-php=system disables the sury repository and just
installs the system's default PHP version.
ommiting the argument (use 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 adviced unless you are migrating from a
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
--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 send to given e-mail address.
e.g. [email protected]
--unattended-upgrades
Install UnattendedUpgrades. You can add extra arguments for
automatic cleanup and automatic reboots when necessary with
--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.
For this guide, we will run ISPConfig with Nginx, PHP 8.0, MariaDB, Postfix, Dovecot, Rspamd, BIND, Jailkit, Roundcube, PHPMyAdmin, Mailman, Webalizer, AWStats, GoAcces.
wget -O - https://get.ispconfig.org | sudo sh -s -- --use-nginx --use-php=8.0 --use-ftp-ports=21-22 --lang=en --no-quota --unattended-upgrade
You can also use Apache in the setup
wget -O - https://get.ispconfig.org | sudo sh -s -- --use-php=8.0 --use-ftp-ports=21-22 --lang=en --no-quota --unattended-upgrades
Proceed by confirming 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
You will be granted the Admin and MySQL password. Save these passwords as you may need them later.
Login to ISPConfig Web UI
Once the installation is complete,
log in to the ISPConfig Web UI using the URL https://domain_name:8080
Provide the creds for the admin user. Use the password displayed during the installation. Once authenticated, you will see the below dashboard.
Change the admin password by navigating to Tools
Configure and use ISPConfig
To configure the firewall, click on System ->Firewall ->Add Firewall record
While here, you can update by adding or removing a port on the list and then save the changes
To add a client, navigate to the Client tab and click on Add new client
You will be required to provide the details such as the username, password, email and basic information about the Client
Once created, you can log in using the user
Now add a site by navigating to the sites -> Add new website
Now provide the details such as the Domain, Space, Traffic Quota, and PHP Version, then Save once complete.
The created site will be available as shown.
To access the site, click on the highlighted icon above. For Apache, you need to disable the default page
sudo a2dissite 000-default.conf
sudo systemctl restart apache2
If everything is okay, you should see your website as shown below:
Verdict
That marks the end of this guide on how to install and configure the ISPConfig Control Panel on Ubuntu 22.04. I hope you benefitted from this guide. That’s it! You should now be able to access your ISPConfig control panel and begin configuring your web hosting services.