How to Install ISPConfig 3 on a Linux VPS
ISPConfig 3 is a powerful open-source hosting control panel that allows you to manage multiple servers through a web-based interface. This guide will walk you through the automated installation process on a Debian (v. 10+) or Ubuntu (v. 20 something +) VPS.
Prerequisites
- A fresh installation of Debian 11+ or Ubuntu 22.04+. Lower versions may/should work but I haven’t tested them.
- Root access to your VPS
- A DNS “A Record” pointing a subdomain of your primary domain to the VPS IP.
- E.g. If your domain is example.com, and your VPS IP is 123.456.78.90, you can create an A record for “server” with your registrar (or DNS provider like Cloudflare) and point it to your VPS IP. This way you will have a separate subdomain “server.example.com” pointing to your VPS IP.
- Basic knowledge of Linux command line and navigating SSH.
- I.e. don’t be a complete idiot and expect this guide to magically help. Use chat GPT if you need, but please please please verify the code before you blindly paste it into your terminal.
Color Codes for this guide:
code in green text you can paste directly
code in blue text requires modification or is an example only
Code in plain text like this is not SSH/terminal code, just example text or stuff you need to place outside of the terminal
Step 1: Prepare Your System
Log in to your VPS as root via SSH. Yes, root. You can use a tool like PuTTY.
Update your system because that is what you’re ‘supposed’ to do.
apt update && apt upgrade -y
Configure your hostname
The hostname should be a subdomain like server.example.com
and not your parent domain, example.com
Type the following to open your hosts file:
nano /etc/hosts
Alternatively, some users feel more comfortable doing this via FTP. You can use a program like FileZilla and navigate to ‘/etc/hosts‘.
It should look something like the top three lines. Do not paste verbatim. I am not including IPv6 capability data since this is more of a simple guide, and if you need that stuff you are probably better at this than I am.
# Generated by Your VM
127.0.0.1 localhost localhost.localdomain
::1 localhost localhost.localdomain
123.456.78.90 server.example.com
On the last line, replace 123.456.78.90
with your IP and server.example.com
with your actual Fully Qualified Domain Name (FQDN) I.e. your subdomain.
Then exit and save: (CTRL+O, then CTRL+X and “Y” to save if using PuTTY).
Set your hostname
Type the following to open your hostname file:
/etc/hostname
You only need to add one line of text at the top, which is your FQDN, I.e. your subdomain. Do not paste the example below.
Some other guides may say it should just contain the sub part, I.e. “server” instead of “server.example.com” but I am a noob and couldn’t figure out how to fix it to do that, but this worked fine for me, and if you are reading this right now, clearly it works just fine. This seems to be a trivial detail, and if you are doing something important enough where you conceptually understand why this may not be the best practice, then perhaps my guide is not the best reference to use for your particular case.
server.example.com
Alternatively, some users feel more comfortable doing this via FTP. You can use a program like FileZilla and navigate to ‘/etc/hostname‘.
Reboot the VPS
systemctl reboot
Verify changes with hostname
Enter the following via SSH
hostname
It should say your subdomain E.g. “server.example.com
” or if you somehow managed to do it ‘properly’, just the subdomain prefix “server
“.
Then enter
hostname -f
It should say your FQDN (full subdomain) E.g. “server.example.com
“.
Install ISPConfig
Check for updates
Again because you are good, follow directions, and do things properly.
Enter:
apt update && apt upgrade
Run the ISPConfig autoinstaller
For Apache servers enter:
wget -O - https://get.ispconfig.org | sh -s -- --use-ftp-ports=40110-40210 --unattended-upgrades
For Nginx servers enter:
wget -O - https://get.ispconfig.org | sh -s -- --use-nginx --use-ftp-ports=40110-40210 --unattended-upgrades
For TellyMishka servers or any VPS hosted on the TelMis station, do not enter anything. The Station chief should have this configured already with an auto wget -O https://get.ispconfig.org/
command.
Wait and answer some questions
Once you run the installation code, it will be a little while (5-30 minutes depending on how much you shelled out for that VPS), so be patient. You will see various prompts requiring you to answer. The first one you will see is something like:
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:
Type yes and press enter. It’s gonna be a little while now, so grab a coffee or whatever you like to drink. If any additional questions pop up, answer them accordingly, as each server is different.
[INFO] Your ISPConfig admin password is: password1
[INFO] Your MySQL root password is: password2
Once the installation is finished, you will see a message telling you your admin and database root passwords (see above). Make sure to write them down, as you will need these when logging into the panel. Just don’t lose them because you will create another headache and that will be all on you. Put them in a .txt file on your desktop or a secure password manager, I’m not here to judge.
Change your Admin username and pass
Once the installation is complete, log in to your admin panel. this will usually be at “server.example.com:8080
“, essentially the URL is your FQDN (subdomain) followed by a colon “:” and port 8080. Type ‘admin’ and paste the password that you hopefully saved. Then immediately change it so non of the annoying bot farms try to log in endlessly.
System >>> CP Users >>> Admin
Navigate to the menu at the top right (desktop version) of the ISPConfig control panel and click “system”
Then on the right, click “CP Users” and click on the admin account. Change the username AND password, and of course, don’t forget to save it. I use Proton Pass, but since they aren’t paying me, you can use whatever password manager you want. Just make sure it is reputable or you will have an entirely different issue to deal with.
Set up the toasty firewall
Now we need to set up that firewall. On that same page under the system tab, click the “Firewall” tab on the left (if using desktop) and click the green button that says “Add Firewall record”
Make sure the server is listed as your FQDN (that subdomain) and then add the following:
Under TCP add the following ports
20,21,22,25,80,443,110,143,465,587,993,995,53,8080,8081,40110:40210
Under UDP add this lonely sorry ass port:
53
If you want an explanation of what these ports are for, just google them. We’re here to get stuff done, not hold your hand through the process.
Also make sure that “Active” box is checked unless you like doing things for nothing.
And, you’re done
There is probably more you can do, but if you are reading this on my website, let’s just keep it real and assume you won’t be doing anything extra.
If this doesn’t work, search on the google for a better guide, I’m going to lunch.