2025-03-11 09:31:32 +01:00

62 lines
2.0 KiB
Bash
Executable File

#!/bin/bash
# Funktion zum Generieren zufälliger Passwörter
generate_password() {
local length=$1
# Verwende /dev/urandom für bessere Zufälligkeit, tr für die Auswahl der Zeichen
# Wir nutzen Buchstaben und Zahlen, um Probleme mit Sonderzeichen zu vermeiden
cat /dev/urandom | tr -dc 'a-zA-Z0-9' | head -c $length
}
# Funktion zum Generieren eines bcrypt Salt für PowerDNS Admin
generate_salt() {
# Prüfen, ob Python und bcrypt installiert sind
if command -v python3 >/dev/null 2>&1 && python3 -c "import bcrypt" >/dev/null 2>&1; then
python3 -c 'import bcrypt; print(bcrypt.gensalt().decode("utf-8"));'
else
echo "WARNUNG: Python3 oder bcrypt nicht gefunden. Verwende Standard-Salt."
echo '$2b$12$xZKJJFAMZ41EFJptSMbZv.'
fi
}
# Zielverzeichnis für die .env-Datei
ENV_FILE=".env"
# Generiere Passwörter (12 Zeichen)
PDNS_DB_PASSWORD=$(generate_password 12)
PDNS_API_KEY=$(generate_password 16)
PDNS_WEBSERVER_PASSWORD=$(generate_password 12)
PDNS_ADMIN_DB_PASSWORD=$(generate_password 12)
# Generiere Salt für PowerDNS Admin
PDNS_ADMIN_SALT=$(generate_salt)
# Erstelle oder überschreibe die .env-Datei
cat > $ENV_FILE << EOF
# PowerDNS Server Konfiguration
PDNS_PORT=53
PDNS_DB_NAME=powerdns
PDNS_DB_PASSWORD=${PDNS_DB_PASSWORD}
PDNS_API_KEY=${PDNS_API_KEY}
PDNS_WEBSERVER_PORT=8081
PDNS_WEBSERVER_PASSWORD=${PDNS_WEBSERVER_PASSWORD}
PDNS_DEFAULT_TTL=1500
# PowerDNS Admin Konfiguration
PDNS_ADMIN_PORT=8080
PDNS_ADMIN_DB_NAME=powerdnsadmin
PDNS_ADMIN_DB_PASSWORD=${PDNS_ADMIN_DB_PASSWORD}
PDNS_ADMIN_SALT=${PDNS_ADMIN_SALT}
PDNS_VERSION="4.9"
EOF
# Ausgabe mit generierten Werten
echo "Die .env-Datei wurde mit folgenden zufälligen Passwörtern erstellt:"
echo "PDNS_DB_PASSWORD: $PDNS_DB_PASSWORD"
echo "PDNS_API_KEY: $PDNS_API_KEY"
echo "PDNS_WEBSERVER_PASSWORD: $PDNS_WEBSERVER_PASSWORD"
echo "PDNS_ADMIN_DB_PASSWORD: $PDNS_ADMIN_DB_PASSWORD"
echo "PDNS_ADMIN_SALT: $PDNS_ADMIN_SALT"
echo "PDNS_VERSION":"4.9"
echo ""
echo "Die Datei wurde als $ENV_FILE gespeichert. Bitte bewahren Sie diese Passwörter sicher auf!"