Markus Michalski FAQ

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ü.

GitHub
License
Bash

English Version

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 --yes entfallen 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:

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