Server Tools
Modulares Bash-Toolkit für Debian/Ubuntu-Server: MySQL/MariaDB-Datenbanken, Apache- und Nginx-VHosts, Let's-Encrypt-Zertifikate, SSH-User pro Domain, Cronjobs, UFW, Fail2Ban, Logs und Systemstatus per CLI oder Textmenü.
Zurück zu Bash Scripts & Tools
Server Tools
Server Tools ist ein modulares Bash-Toolkit für die Verwaltung von Debian- und Ubuntu-Servern. Es nimmt wiederkehrende Administrationsaufgaben ab: MySQL/MariaDB-Datenbanken, Apache- oder Nginx-VHosts, Let's-Encrypt-Zertifikate, SSH-User pro Domain, Cronjobs, Firewall, Fail2Ban, Logs und Systemstatus.
Das Tool ändert Konfigurationen, legt Systemuser an und löscht Daten. Mit
--yesentfallen alle Rückfragen, auch die nach dem Löschen eines DocumentRoots und nach dem Überschreiben bestehender VHosts. Lies vor dem Einsatz in Scripten die Seiten Verwendung und Sicherheit und Schutzmechanismen.
Es gibt zwei Bedienwege:
- CLI für Scripte und Automatisierung, zum Beispiel
server-tools db create --name mydb --user myuser. - Interaktives Textmenü für die manuelle Verwaltung:
server-toolsohne Argumente.
Alle Ausgaben, Meldungen und Menütexte sind englisch.
graph TD
A["server-tools (CLI oder Menü)"] --> B["Datenbanken: MySQL/MariaDB"]
A --> C["VHosts: Apache oder Nginx"]
A --> D["SSL: certbot, Wildcard auch mit Nginx"]
A --> E["SSH-User pro Domain: useradd und ACLs"]
A --> F["Cronjobs: /etc/cron.d"]
A --> G["Firewall: UFW"]
A --> H["Fail2Ban"]
A --> I["Logs und Status"]
Dokumentation
| Seite | Inhalt |
|---|---|
| Installation | Installer, Update, Deinstallation, MySQL-Zugang |
| Konfiguration | Config-Datei, ST_*-Variablen mit Standardwerten, Prüfregeln |
| Verwendung | Aufruf, globale Flags, --yes, Menü, Exit-Codes |
| CLI-Referenz | Alle Befehle und Optionen auf einen Blick |
| Datenbanken | Anlegen, Rechte, Backup, Restore, Import, Export |
| Virtual Hosts | PHP- und Proxy-VHosts, Redirects, Audit |
| SSL-Zertifikate | Let's Encrypt, Wildcard, Erneuerung |
| SSH-User | User pro Domain, Schlüssel, ACL-Rechte |
| Cronjobs | Anlegen, Auflisten, Entfernen |
| Firewall, Fail2Ban, Logs, Status | Systemnahe Befehle |
| Sicherheit und Schutzmechanismen | Validierung, Backups, Audit-Log, Rollbacks |
| Fehlerbehebung | Meldungen, Ursachen, bekannte Einschränkungen |
| FAQ | Häufige Fragen |
| Technische Details | Aufbau, Ablauf, erzeugte Konfigurationen, Tests |
Funktionen
| Funktion | Beschreibung |
|---|---|
| Datenbanken | Datenbank und User anlegen, Rechtestufen All, ReadOnly und ReadWrite, Dumps als .sql.gz, Export als .sql oder .sql.gz, Restore und Import von .sql, .sql.gz oder .sql.zip |
| Credential-Dateien | Zugangsdaten je Datenbank mit PDO-DSN und Symfony-DATABASE_URL |
| VHosts | PHP-FPM-VHosts und Reverse-Proxy-VHosts (optional WebSocket), Aliase, Redirects, Security-Header, Logrotate |
| Webserver-Backend | Apache (Standard) oder Nginx, global per ST_WEBSERVER |
| VHost-Audit | Prüft Apache-VHosts auf fehlende Forwarded-Header und abweichende Log-Pfade |
| SSL | Zertifikate per certbot, Wildcard per DNS-Challenge, täglicher Erneuerungs-Cronjob. Erstellen, Löschen und Erneuerung laufen nur mit Apache, Wildcard mit beiden Backends |
| SSH-User | Ein User pro Domain, ACL-basierte Rechte statt chroot, Schlüssel- und Passwortverwaltung |
| Cronjobs | Dateien in /etc/cron.d mit Schedule-Validierung |
| Firewall | UFW: Status, Ports erlauben und sperren; im Menü Regeln löschen und Firewall ein- und ausschalten |
| Fail2Ban | Jail-Status, gesperrte IPs, IP entbannen |
| Logs | Webserver-, MySQL- und Audit-Log anzeigen und durchsuchen |
| Status | Services, Ressourcen, Software-Versionen, Konfiguration, Backups |
| Schutzmechanismen | Eingabevalidierung, Backup der Konfiguration vor dem Löschen, Rollback bei Fehlern, Audit-Log |
Anforderungen
| Voraussetzung | Hinweis |
|---|---|
| Debian oder Ubuntu | Die Scripte rufen apt-get auf und verwenden Debian-Pfade wie /etc/apache2 und /etc/nginx |
| Bash 4.4 oder neuer | |
| root | Alle Befehle außer --version, --help und --config brechen ohne root ab |
Apache (apache2ctl) oder Nginx (nginx) |
Je nach ST_WEBSERVER, wird bei fast allen Befehlen geprüft |
openssl, gzip, systemctl, realpath |
Fehlt eines, bricht das Tool vor dem Befehl ab |
mysql/mariadb und mysqldump/mariadb-dump |
Nur für die Datenbank-Befehle |
unzip |
Nur für Restore und Import von .sql.zip |
| certbot | Nur für SSL, wird bei Bedarf per apt-get installiert |
ufw, fail2ban-client, setfacl/getfacl |
Nur für Firewall, Fail2Ban und SSH-User |
| PHP-FPM | Sockets unter /run/php/php<Version>-fpm.sock für PHP-VHosts |
Lizenz
MIT. Quellcode und Issues: GitHub