Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
181 changes: 181 additions & 0 deletions community-tutorials/how-to-install-ispconfig/01-en.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,181 @@
---
title: ISPConfig 3 installation on Debian and Ubuntu
description: Learn how to install ISPConfig on Debian 11, 12 and Ubuntu 22.04, 24.04
updated_at: 2025-02-23
slug: install-ispconfig3
author_name: Finn Weiss
author_url: https://github.com/finnweiss/
author_image: https://f-w.dev/racoon.jpg
author_bio:
tags: [web, mysql, linux, debian, mariadb, ubuntu, ispconfig]
netcup_product_url: https://www.netcup.com/de/server/vps
language: en
available_languages: en, de
---

# Introduction

In this tutorial you will learn how to install ISPConfig on Debian 11, 12 and Ubuntu 22.04, 24.04.

I am currently doing the installation on a VPS 500 G11s under Debain 12, but the installation should also work on any other VPS and with a different version of Debain or Ubuntu.
# Requirements

You need an updated server on which you have root rights.
# Installing ISPConfig3

## 1. Configure the Hostname and Hosts File

Your server’s hostname should be a subdomain like `server1.example.com`. **Do not** use a domain name without a subdomain part (e.g., `example.com`) as your hostname, as this may cause issues with your setup later.

### 1.1 Verify and Update the `/etc/hosts` File

First, check the hostname in the `/etc/hosts` file and modify it if necessary. The line should follow this format:

```
IP address - full hostname (including domain) - subdomain part
```

Edit the file using:

```bash
nano /etc/hosts
```

A correct example for `server1.example.com`:

```
127.0.0.1 localhost.localdomain localhost
# This line should be updated to the correct server name:
127.0.1.1 server1.example.com server1

# The following lines are recommended for IPv6-compatible hosts:
::1 localhost ip6-localhost ip6-loopback
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
```

### 1.2 Edit the `/etc/hostname` File

Next, update the hostname configuration in the `/etc/hostname` file:

```bash
nano /etc/hostname
```

It should contain **only** the subdomain part:

```
server1
```

### 1.3 Apply the Changes

To apply the new hostname, restart the server:

```bash
reboot
```

After rebooting, log in again and verify that the hostname is set correctly:

```bash
hostname
hostname -f
```

The output should match the following:

```
root@server1:~$ hostname
server1
root@server1:~$ hostname -f
server1.example.com
```

## 2. Installing ISPConfig

We can now run the automated ISPConfig installer. The basic setup includes the following software packages (and their dependencies):
**Apache2, PHP (versions 5.6 – 8.3), MariaDB, Postfix, Dovecot, Rspamd, BIND, Jailkit, Roundcube, PHPMyAdmin, Mailman, Webalizer, AWStats, and GoAccess.**

### 2.1 Run the Installation Script

Start the installation by running:

```bash
wget -O - https://get.ispconfig.org | sh -s -- --unattended-upgrades
```

After a while, you will see the following message:

```
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** to proceed. The installation will begin.

### 2.2 Handling Installation Errors

If you encounter the following error:

```
[ERROR] Exception occurred: ISPConfigOSException -> Command mount -o remount / 2>&1 && quotaoff -avug 2>&1 && quotacheck -avugm 2>&1 && quotaon -avug 2>&1 failed. (/ispconfig.ai.php:15)
```

Use this modified installation command instead:

```bash
wget -O - https://get.ispconfig.org | sh -s -- --unattended-upgrades --no-quota
```

### 2.3 Completing the Installation

Once the installation is complete, you will see the ISPConfig administrator password and MySQL root password:

```
[INFO] Your ISPConfig admin password is: 5GvfSSSYsdfdYC
[INFO] Your MySQL root password is: kkAkft82d!kafMwqxdtYs
```

You can now access the ISPConfig web interface at:

```
http://your-server-ip:8080
```

Log in with the username **"admin"** and the password provided during the installation.



# License

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicence, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

# Contributor's Certificate of Origin

By making a contribution to this project, I certify that:

1. The contribution was created in whole or in part by me and I have the right to submit it under the license indicated in the file; or

2. The contribution is based upon previous work that, to the best of my knowledge, is covered under an appropriate license and I have the right under that license to submit that work with modifications, whether created in whole or in part by me, under the same license (unless I am permitted to submit under a different license), as indicated in the file; or

3. The contribution was provided directly to me by some other person who certified (a), (b) or (c) and I have not modified it.

4. I understand and agree that this project and the contribution are public and that a record of the contribution (including all personal information I submit with it, including my sign-off) is maintained indefinitely and may be redistributed consistent with this project or the license(s) involved.
181 changes: 181 additions & 0 deletions community-tutorials/how-to-install-ispconfig/02-de.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,181 @@
---
title: ISPConfig 3 Installation auf Debian und Ubuntu
description: Erfahre, wie du ISPConfig auf Debian 11, 12 und Ubuntu 22.04, 24.04 installierst
updated_at: 2025-02-23
slug: install-ispconfig3
author_name: Finn Weiß
author_url: https://github.com/finnweiss/
author_image: https://f-w.dev/racoon.jpg
author_bio:
tags: [web, mysql, linux, debian, mariadb, ubuntu, ispconfig]
netcup_product_url: https://www.netcup.com/de/server/vps
language: de
available_languages: en, de
---

# Einführung

In diesem Tutorial erfährst du, wie du ISPConfig auf Debian 11, 12 und Ubuntu 22.04, 24.04 installierst.

Ich führe die Installation derzeit auf einem VPS 500 G11s unter Debian 12 durch, aber die Installation sollte auch auf jedem anderen VPS und mit einer anderen Version von Debian oder Ubuntu funktionieren.

# Voraussetzungen

Du benötigst einen aktualisierten Server, auf dem du Root-Rechte hast.

# Installation von ISPConfig3

## 1. Hostname und Hosts-Datei konfigurieren

Der Hostname deines Servers sollte eine Subdomain wie `server1.example.com` sein. **Verwende nicht** einen Domainnamen ohne Subdomain-Teil (z. B. `example.com`) als Hostname, da dies später Probleme verursachen kann.

### 1.1 Überprüfen und Aktualisieren der Datei `/etc/hosts`

Überprüfe den Hostnamen in der Datei `/etc/hosts` und passe ihn falls nötig an. Die Zeile sollte folgendem Format entsprechen:

```
IP-Adresse - vollständiger Hostname (inklusive Domain) - Subdomain-Teil
```

Öffne die Datei mit:

```bash
nano /etc/hosts
```

Ein korrektes Beispiel für `server1.example.com`:

```
127.0.0.1 localhost.localdomain localhost
# Diese Zeile sollte auf den korrekten Servernamen aktualisiert werden:
127.0.1.1 server1.example.com server1

# Die folgenden Zeilen sind für IPv6-kompatible Hosts empfohlen:
::1 localhost ip6-localhost ip6-loopback
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
```

### 1.2 Bearbeiten der Datei `/etc/hostname`

Aktualisiere den Hostnamen in der Datei `/etc/hostname`:

```bash
nano /etc/hostname
```

Der Inhalt sollte **nur** den Subdomain-Teil enthalten:

```
server1
```

### 1.3 Änderungen übernehmen

Um den neuen Hostnamen zu übernehmen, starte den Server neu:

```bash
reboot
```

Nach dem Neustart melde dich erneut an und überprüfe, ob der Hostname korrekt gesetzt ist:

```bash
hostname
hostname -f
```

Die Ausgabe sollte wie folgt aussehen:

```
root@server1:~$ hostname
server1
root@server1:~$ hostname -f
server1.example.com
```

## 2. Installation von ISPConfig

Nun können wir das automatische ISPConfig-Installationsskript ausführen. Die Basisinstallation umfasst die folgenden Softwarepakete (und ihre Abhängigkeiten):
**Apache2, PHP (Versionen 5.6 – 8.3), MariaDB, Postfix, Dovecot, Rspamd, BIND, Jailkit, Roundcube, PHPMyAdmin, Mailman, Webalizer, AWStats und GoAccess.**

### 2.1 Installationsskript ausführen

Starte die Installation mit:

```bash
wget -O - https://get.ispconfig.org | sh -s -- --unattended-upgrades
```

Nach einer Weile erscheint folgende Meldung:

```
WARNUNG! Dieses Skript wird deinen gesamten Server neu konfigurieren!
Es sollte nur auf einem frisch installierten Server ausgeführt werden, da alle aktuellen Konfigurationen verloren gehen können!
Gib 'yes' ein, wenn du wirklich fortfahren möchtest:
```

Gib **"yes"** ein und drücke **Enter**, um fortzufahren. Die Installation beginnt.

### 2.2 Fehler bei der Installation beheben

Falls folgender Fehler auftritt:

```
[ERROR] Exception occurred: ISPConfigOSException -> Command mount -o remount / 2>&1 && quotaoff -avug 2>&1 && quotacheck -avugm 2>&1 && quotaon -avug 2>&1 failed. (/ispconfig.ai.php:15)
```

Verwende stattdessen diesen Installationsbefehl:

```bash
wget -O - https://get.ispconfig.org | sh -s -- --unattended-upgrades --no-quota
```

### 2.3 Abschluss der Installation

Nach Abschluss der Installation siehst du das ISPConfig-Administrator-Passwort und das MySQL-Root-Passwort:

```
[INFO] Dein ISPConfig-Admin-Passwort lautet: 5GvfSSSYsdfdYC
[INFO] Dein MySQL-Root-Passwort lautet: kkAkft82d!kafMwqxdtYs
```

Du kannst nun auf die ISPConfig-Weboberfläche zugreifen unter:

```
http://deine-server-ip:8080
```

Melde dich mit dem Benutzer **"admin"** und dem während der Installation angegebenen Passwort an.

# License

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicence, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

# Contributor's Certificate of Origin

By making a contribution to this project, I certify that:

1. The contribution was created in whole or in part by me and I have the right to submit it under the license indicated in the file; or

2. The contribution is based upon previous work that, to the best of my knowledge, is covered under an appropriate license and I have the right under that license to submit that work with modifications, whether created in whole or in part by me, under the same license (unless I am permitted to submit under a different license), as indicated in the file; or

3. The contribution was provided directly to me by some other person who certified (a), (b) or (c) and I have not modified it.

4. I understand and agree that this project and the contribution are public and that a record of the contribution (including all personal information I submit with it, including my sign-off) is maintained indefinitely and may be redistributed consistent with this project or the license(s) involved.
Loading