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.
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
sourceals 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
- sie nicht root gehört (
Config file not owned by root), - irgendein Recht für "andere" gesetzt ist, zum Beispiel 644 (
Config file has unsafe permissions), - sie für die Gruppe beschreibbar ist, zum Beispiel 660 (
Config file is group-writable).
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"