Markus Michalski FAQ

Server Tools: Konfiguration

Konfiguration von Server Tools: Config-Datei und Dateirechte, alle ST_*-Variablen mit Standardwerten, Prüfregeln mit automatischem Zurücksetzen, Umgebungsvariablen und eine Beispiel-Config.

English Version

Zurück zur Übersicht


Konfiguration

Config-Datei

Die Datei liegt unter /etc/server-tools/config. Den Pfad ändert die Umgebungsvariable ST_CONFIG_FILE. Die Vorlage conf/server-tools.conf.example enthält die meisten Optionen auskommentiert, nur was du ändern willst, nimmst du heraus. ST_INSTALL_DIR, ST_BIN_DIR und ST_PROXY_PRESERVE_HOST stehen nicht in der Vorlage, du kannst sie bei Bedarf selbst eintragen.

sudo cp conf/server-tools.conf.example /etc/server-tools/config
sudo chmod 600 /etc/server-tools/config

Die Datei wird per source als Bash-Code eingelesen und läuft damit als root. Wer sie schreiben kann, führt Code als root aus.

Vor dem Einlesen prüft das Tool die Datei und bricht ab, wenn

Erlaubt sind damit unter anderem 600, 400 und 640. Existiert die Datei nicht, gelten die Standardwerte.

Die Werte werden in dieser Reihenfolge bestimmt: Standardwert, danach eine bereits gesetzte Umgebungsvariable gleichen Namens, danach die Config-Datei. Die Config-Datei gewinnt.

Variablen

Pfade

Variable Standard Bedeutung
ST_CREDENTIAL_DIR /root/db-credentials Ablage der Credential-Dateien je Datenbank
ST_AUDIT_LOG /var/log/server-tools-audit.log Audit-Log
ST_BACKUP_DIR /root/server-tools-backups Backups vor dem Löschen (.tar.gz)
ST_DB_BACKUP_DIR /root/db-backups Datenbank-Dumps von db backup, Standardziel von db export
ST_INSTALL_DIR /usr/local/lib/server-tools Ziel für die Libraries bei install und uninstall
ST_BIN_DIR /usr/local/bin Ziel für Binary und Shortcuts bei install und uninstall

Webserver

Variable Standard Bedeutung
ST_WEBSERVER apache Backend für VHosts, Logs und Status: apache oder nginx. Gilt global, nicht pro VHost
ST_APACHE_SITES_AVAILABLE /etc/apache2/sites-available Ablage der Apache-VHost-Dateien
ST_APACHE_SITES_ENABLED /etc/apache2/sites-enabled Wird für Listen und Status-Anzeige gelesen, aktiviert wird über a2ensite
ST_NGINX_SITES_AVAILABLE /etc/nginx/sites-available Ablage der Nginx-Server-Blöcke
ST_NGINX_SITES_ENABLED /etc/nginx/sites-enabled Ziel der Symlinks beim Aktivieren
ST_APACHE_SERVER_ADMIN webmaster@localhost ServerAdmin in erzeugten Apache-VHosts
ST_ALLOWED_DOCROOT_PATHS /var/www:/srv/www Doppelpunkt-getrennte Basispfade, unter denen ein eigenes --docroot liegen muss
ST_PROXY_PRESERVE_HOST true Standard für ProxyPreserveHost bei Proxy-VHosts. Nur der Wert false schaltet es ab

PHP

Variable Standard Bedeutung
ST_DEFAULT_PHP_VERSION 8.3 PHP-Version für neue VHosts, wenn --php fehlt
ST_PHP_VERSIONS_TO_SCAN 7.4 8.0 8.1 8.2 8.3 8.4 Versionen, für die nach FPM-Sockets und -Services gesucht wird

Die Versionsprüfung beim Anlegen oder Ändern eines VHosts erlaubt fest nur 7.4, 8.0, 8.1, 8.2, 8.3 und 8.4. Eine weitere Version in ST_PHP_VERSIONS_TO_SCAN ändert daran nichts.

Datenbank und Passwörter

Variable Standard Bedeutung
ST_MYSQL_CONFIG_FILE /root/.my.cnf Options-Datei mit den Root-Zugangsdaten, wird als --defaults-file übergeben
ST_DEFAULT_CHARSET utf8mb4 Zeichensatz neuer Datenbanken
ST_DEFAULT_COLLATION utf8mb4_unicode_ci Kollation neuer Datenbanken
ST_PASSWORD_LENGTH 25 Länge erzeugter Passwörter
ST_PASSWORD_MIN_LENGTH 12 Mindestlänge für selbst vergebene Passwörter
ST_CREDENTIAL_FILE_PERMISSIONS 600 Dateirechte der Credential-Dateien, erlaubt sind 600 und 400

Erzeugte Passwörter bestehen aus Buchstaben und Ziffern und sind höchstens 43 Zeichen lang, auch wenn ST_PASSWORD_LENGTH größer ist.

Backup und Audit

Variable Standard Bedeutung
ST_AUTO_BACKUP true Sicherung vor dem Löschen eines VHosts oder einer Datenbank. Nur der Wert true schaltet sie ein
ST_BACKUP_RETENTION_DAYS 30 Wird in der Backup-Übersicht als Aufbewahrungsfrist angezeigt. Das Tool löscht alte Backups nicht selbst
ST_AUDIT_LOGGING true Audit-Log schreiben. Nur der Wert true schaltet es ein

SSL

Variable Standard Bedeutung
ST_CERTBOT_EMAIL leer E-Mail für Let's Encrypt. Leer: webmaster@<domain>
ST_DNS_PROVIDER leer DNS-Provider für Wildcard-Zertifikate
ST_DNS_CREDENTIALS_FILE leer Datei mit den DNS-API-Zugangsdaten. Leer: /root/.certbot-dns-<provider>.ini

Logs und Logrotate

Variable Standard Bedeutung
ST_APACHE_LOG_DIR /var/log/apache2 Globales Log-Verzeichnis bei ST_WEBSERVER=apache
ST_NGINX_LOG_DIR /var/log/nginx Globales Log-Verzeichnis bei ST_WEBSERVER=nginx
ST_MYSQL_LOG_FILE /var/log/mysql/error.log MySQL-Error-Log
ST_LOG_LINES 50 Standardanzahl angezeigter Zeilen
ST_LOGROTATE_ROTATE 52 rotate in der erzeugten Logrotate-Datei
ST_LOGROTATE_DAYS 14 maxage in der erzeugten Logrotate-Datei

SSH-User

Variable Standard Bedeutung
ST_USER_DEFAULT_SHELL /bin/bash Login-Shell neuer Domain-User. Muss ein absoluter Pfad und ausführbar sein

Prüfregeln

Nach dem Einlesen korrigiert das Tool ungültige Werte mit einer Warnung:

Variable Gültig Sonst zurückgesetzt auf
ST_WEBSERVER apache oder nginx apache
ST_PASSWORD_LENGTH 12 bis 64 25
ST_PASSWORD_MIN_LENGTH mindestens 8 12
ST_CREDENTIAL_FILE_PERMISSIONS 600 oder 400 600
ST_BACKUP_RETENTION_DAYS 1 bis 365 30

Umgebungsvariablen

Variable Wirkung
ST_CONFIG_FILE Pfad der Config-Datei
ST_DEBUG=1 Gibt zusätzliche [DEBUG]-Zeilen aus
NO_COLOR Schaltet farbige Ausgabe ab
ST_AUTO_CONFIRM=true Wirkt wie --yes, siehe Verwendung

Aktive Konfiguration anzeigen

sudo server-tools --config

Zeigt Pfade, Standardwerte, Webserver-Backend, Passwort-Längen, Auto-Backup, Audit-Logging und ob die Config-Datei gefunden wurde. Das Beispiel zeigt das Format, die Werte hängen von deiner Installation ab:

=== Current Configuration ===

Paths:
  Credentials:   /root/db-credentials
  Audit log:     /var/log/server-tools-audit.log
  Backups:       /root/server-tools-backups
  DB backups:    /root/db-backups
  Config file:   /etc/server-tools/config

Defaults:
  PHP version:   8.3
  DB charset:    utf8mb4 / utf8mb4_unicode_ci

Webserver:
  Backend:       apache

Passwords:
  Auto length:   25
  Min length:    12

Features:
  Auto-backup:   true
  Audit logging: true

Config file:     loaded from /etc/server-tools/config

Beispiel

# /etc/server-tools/config
ST_WEBSERVER="nginx"
ST_DEFAULT_PHP_VERSION="8.3"
ST_CERTBOT_EMAIL="admin@example.com"
ST_PASSWORD_LENGTH=30
ST_AUTO_BACKUP=true
ST_USER_DEFAULT_SHELL="/bin/bash"