DEV Community

Siswoyo Siswoyo
Siswoyo Siswoyo

Posted on • Edited on

Install ISPConfig with Nginx Webserver on Ubuntu 22.04

Introduction

ISPConfig is a very popular open‑source hosting control panel that lets
you manage websites, email accounts, DNS records, FTP, and more. Using
Nginx as the web server is typically more performant than Apache for
many scenarios (especially static content, reverse‑proxying etc). This
guide shows how to install ISPConfig 3 + Nginx on Ubuntu 22.04, starting
from a fresh system.

Important: This setup assumes a fresh, clean OS install with
minimal/no prior custom configuration. Doing this on a server with
many existing services/configs may lead to conflicts.
(howtoforge.com)

Prerequisites

Before you begin: - A server running Ubuntu 22.04 (64‑bit) with internet
access. - A hostname set correctly (see below). - A public IP address,
reachable, DNS configured (so your hostname resolves). - Ports such as
HTTP (80), HTTPS (443), and the ISPConfig panel port (8080) must not be
blocked. - You'll be logged in as root (or using sudo). - The OS should
be essentially "clean" (no major services already installed or
customised that the auto‑installer will clobber).

Step 1: Log in to the server

sudo -s 
Enter fullscreen mode Exit fullscreen mode

Step 2: Configure the hostname and hosts file

  1. Pick a fully qualified domain name (FQDN) for your server such as
    server1.example.com. Do not just use example.com.

  2. Edit /etc/hosts:

    nano /etc/hosts 

    and ensure you have a line like:

    127.0.1.1 server1.example.com server1 
  3. Edit /etc/hostname:

    nano /etc/hostname 

    Put only the short hostname (e.g., server1).

  4. Reboot the server:

    systemctl reboot 

    After reboot, verify:

    hostname hostname -f 
  5. Ensure your DNS provider has an A (and/or AAAA) record for

    server1.example.com pointing to your server's public IP.

Step 3: Update the system

apt update && apt upgrade -y 
Enter fullscreen mode Exit fullscreen mode

Step 4: Run the auto‑installer for ISPConfig with Nginx

Now is the key part: installing ISPConfig and choosing Nginx as the web
server.

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

What the arguments mean

  • --use-nginx → use Nginx instead of Apache.
  • --use-ftp-ports=40110-40210 → set passive FTP port range for Pure‑FTPd.
  • --unattended-upgrades → enables automatic updates/upgrades.

After installation completes

You'll see the generated passwords, e.g.:

[INFO] Your ISPConfig admin password is: <password> [INFO] Your MySQL root password is: <password> 
Enter fullscreen mode Exit fullscreen mode

Ensure you record these.

Step 5: Setting up the firewall

Allow necessary ports through UFW or within ISPConfig UI → System →
Firewall.

TCP ports:

20,21,22,25,80,443,40110:40210,110,143,465,587,993,995,53,8080,8081 
Enter fullscreen mode Exit fullscreen mode

UDP:

53 
Enter fullscreen mode Exit fullscreen mode

Step 6: Finalizing

Log into ISPConfig panel:

https://server1.example.com:8080 
Enter fullscreen mode Exit fullscreen mode

Login user: admin

Step 7: Adding Your Website

Once you are inside the ISPConfig panel, you can start adding new
websites under Sites → Add new site.

Before you add a website: - Ensure your domain name (e.g.,
example.com) is already pointing to your server's public IP
address. - You can check your DNS propagation and record setup using
https://dnschecker.org/.

If your domain is not yet propagated or pointing to the correct IP, the
site might not load correctly.

Steps to add a site:

  1. Go to Sites → Add new website.
  2. Enter your domain name (e.g., example.com).
  3. Choose the IP address of your server (you can leave it as * if you want ISPConfig to use all available IPs).
  4. Set PHP version, SSL (Let's Encrypt), and other options.
  5. Save your configuration.

After saving, ISPConfig will create the Nginx virtual host configuration
automatically.

Step 8: Advanced options

  • --channel=<stable|dev> → choose branch
  • --lang=en|de → choose language
  • --use-php=7.4,8.1 → install specific PHP versions
  • --no-mail → skip mail server
  • --no-dns → skip DNS server
  • --debug → detailed log in /tmp/ispconfig-ai/var/log/ispconfig.log

Example for minimal install:

wget -O - https://get.ispconfig.org | sh -s -- --use-nginx --no-dns --no-mail --use-ftp-ports=40110-40210 --unattended-upgrades 
Enter fullscreen mode Exit fullscreen mode

Step 9: Troubleshooting

  • Rerun with --debug if installation fails.
  • Check /tmp/ispconfig-ai/var/log/ispconfig.log for details.
  • Ensure fresh OS install to avoid config conflicts.

Summary

You can now manage websites, email, DNS, databases, and FTP through
ISPConfig 3 with Nginx on Ubuntu 22.04.

Before adding sites, make sure your domain and public IP setup are
verified using DNSChecker.org.

Reference:

Top comments (0)