Umbenennung: Audiofy heißt jetzt Playwish

Name, Seitentitel, Dienste (playwish-web, playwish-controller), Dienst-Benutzer
(playwish), Pfade (/opt/playwish, /usr/local/src/playwish), Vorlagen und
Repository-Adresse. „Audiofy“ war bereits von mehreren Produkten belegt.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
2026-10-17 20:27:59 +01:00
co-authored by Claude Opus 5.5
parent ca8db176ac
commit fc15f2b933
44 changed files with 218 additions and 218 deletions
+26 -26
View File
@@ -1,5 +1,5 @@
#!/usr/bin/env bash
# Audiofy – Installation der Rolle "Server": Website für Gäste, Admin-Bereich, Player-API.
# Playwish – Installation der Rolle "Server": Website für Gäste, Admin-Bereich, Player-API.
#
# install/install-server.sh Neuinstallation (fragt alles Nötige ab)
# install/install-server.sh --update nur Code, Python-Umgebung und Dienst aktualisieren
@@ -18,14 +18,14 @@ for arg in "$@"; do
esac
done
ENV_DATEI="$AUDIOFY_DIR/.env"
export AUDIOFY_DIR AUDIOFY_USER
ENV_DATEI="$PLAYWISH_DIR/.env"
export PLAYWISH_DIR PLAYWISH_USER
export APP_PORT="${APP_PORT:-8000}"
schritt "Audiofy-Server: $([ $UPDATE = 1 ] && echo Update || echo Neuinstallation)"
schritt "Playwish-Server: $([ $UPDATE = 1 ] && echo Update || echo Neuinstallation)"
pruefe_system
if [ $UPDATE = 1 ] && ! $SUDO test -f "$ENV_DATEI"; then
abbruch "Keine bestehende Installation in $AUDIOFY_DIR gefunden – ohne --update ausführen."
abbruch "Keine bestehende Installation in $PLAYWISH_DIR gefunden – ohne --update ausführen."
fi
# ------------------------------------------------------------------ Abfragen
@@ -67,20 +67,20 @@ pakete "${PAKETE[@]}"
# ------------------------------------------------------------------ Benutzer, Ordner, Code
schritt "Dienst-Benutzer, Ordner und Code"
dienst_benutzer
$SUDO install -d -o root -g "$AUDIOFY_USER" -m 750 "$AUDIOFY_DIR"
$SUDO install -d -o "$AUDIOFY_USER" -g "$AUDIOFY_USER" -m 700 "$AUDIOFY_DIR/data"
code_kopieren "$REPO/server" "$AUDIOFY_DIR/app"
$SUDO install -o root -g "$AUDIOFY_USER" -m 640 "$REPO/player/auth.py" "$AUDIOFY_DIR/app/auth.py"
venv_einrichten "$AUDIOFY_DIR/app/requirements.txt"
info "Code in $AUDIOFY_DIR/app, Python-Umgebung in $AUDIOFY_DIR/.venv"
$SUDO install -d -o root -g "$PLAYWISH_USER" -m 750 "$PLAYWISH_DIR"
$SUDO install -d -o "$PLAYWISH_USER" -g "$PLAYWISH_USER" -m 700 "$PLAYWISH_DIR/data"
code_kopieren "$REPO/server" "$PLAYWISH_DIR/app"
$SUDO install -o root -g "$PLAYWISH_USER" -m 640 "$REPO/player/auth.py" "$PLAYWISH_DIR/app/auth.py"
venv_einrichten "$PLAYWISH_DIR/app/requirements.txt"
info "Code in $PLAYWISH_DIR/app, Python-Umgebung in $PLAYWISH_DIR/.venv"
# ------------------------------------------------------------------ Konfiguration
schritt "Konfiguration ($ENV_DATEI)"
$SUDO test -f "$ENV_DATEI" || $SUDO install -o "$AUDIOFY_USER" -g "$AUDIOFY_USER" -m 600 /dev/null "$ENV_DATEI"
VERWALTUNG=("${ALS_DIENST[@]}" "$AUDIOFY_DIR/.venv/bin/python" "$AUDIOFY_DIR/app/verwaltung.py")
$SUDO test -f "$ENV_DATEI" || $SUDO install -o "$PLAYWISH_USER" -g "$PLAYWISH_USER" -m 600 /dev/null "$ENV_DATEI"
VERWALTUNG=("${ALS_DIENST[@]}" "$PLAYWISH_DIR/.venv/bin/python" "$PLAYWISH_DIR/app/verwaltung.py")
"${VERWALTUNG[@]}" geheimnisse --env "$ENV_DATEI" | sed 's/^/ /'
if [ $UPDATE = 0 ]; then
env_setzen "$ENV_DATEI" DB_PATH "$AUDIOFY_DIR/data/audiofy.db"
env_setzen "$ENV_DATEI" DB_PATH "$PLAYWISH_DIR/data/playwish.db"
env_setzen "$ENV_DATEI" PUBLIC_URL "https://$DOMAIN"
env_setzen "$ENV_DATEI" SPOTIFY_CLIENT_ID "$SPOTIFY_CLIENT_ID"
env_setzen "$ENV_DATEI" SPOTIFY_CLIENT_SECRET "$SPOTIFY_CLIENT_SECRET"
@@ -91,7 +91,7 @@ if [ $UPDATE = 0 ]; then
info "Öffne gleich die angezeigte Adresse im Browser, melde dich an und füge danach die"
info "Adresse aus der Adresszeile (http://127.0.0.1:8888/callback?...) hier ein."
if ja_nein "Jetzt anmelden?" j; then
"${ALS_DIENST[@]}" "$AUDIOFY_DIR/.venv/bin/python" "$AUDIOFY_DIR/app/auth.py" --profil server --env "$ENV_DATEI" \
"${ALS_DIENST[@]}" "$PLAYWISH_DIR/.venv/bin/python" "$PLAYWISH_DIR/app/auth.py" --profil server --env "$ENV_DATEI" \
|| warnung "Login fehlgeschlagen – später nachholen (siehe README)."
fi
@@ -103,19 +103,19 @@ if [ $UPDATE = 0 ]; then
fi
# ------------------------------------------------------------------ Dienst
schritt "Dienst audiofy-web"
vorlage audiofy-web.service /etc/systemd/system/audiofy-web.service
schritt "Dienst playwish-web"
vorlage playwish-web.service /etc/systemd/system/playwish-web.service
$SUDO systemctl daemon-reload
$SUDO systemctl enable audiofy-web >/dev/null 2>&1
$SUDO systemctl restart audiofy-web
$SUDO systemctl enable playwish-web >/dev/null 2>&1
$SUDO systemctl restart playwish-web
sleep 3
systemctl is-active --quiet audiofy-web || abbruch "audiofy-web läuft nicht – siehe: journalctl -u audiofy-web"
curl -fsS "http://127.0.0.1:$APP_PORT/healthz" >/dev/null && info "audiofy-web läuft"
systemctl is-active --quiet playwish-web || abbruch "playwish-web läuft nicht – siehe: journalctl -u playwish-web"
curl -fsS "http://127.0.0.1:$APP_PORT/healthz" >/dev/null && info "playwish-web läuft"
# ------------------------------------------------------------------ Caddy & Schutz (nur Neuinstallation)
if [ $UPDATE = 0 ]; then
schritt "Caddy (HTTPS)"
if $SUDO grep -q "Audiofy" /etc/caddy/Caddyfile 2>/dev/null || $SUDO grep -q "/usr/share/caddy" /etc/caddy/Caddyfile 2>/dev/null; then
if $SUDO grep -q "Playwish" /etc/caddy/Caddyfile 2>/dev/null || $SUDO grep -q "/usr/share/caddy" /etc/caddy/Caddyfile 2>/dev/null; then
vorlage Caddyfile /etc/caddy/Caddyfile
$SUDO caddy validate --config /etc/caddy/Caddyfile --adapter caddyfile >/dev/null 2>&1 || abbruch "Caddyfile ungültig"
$SUDO systemctl enable caddy >/dev/null 2>&1
@@ -138,7 +138,7 @@ if [ $UPDATE = 0 ]; then
fi
if [ $FAIL2BAN = 1 ]; then
schritt "fail2ban"
vorlage fail2ban-audiofy.conf /etc/fail2ban/jail.d/audiofy.conf
vorlage fail2ban-playwish.conf /etc/fail2ban/jail.d/playwish.conf
$SUDO systemctl enable fail2ban >/dev/null 2>&1
$SUDO systemctl restart fail2ban
info "SSH-Schutz auf Port $SSH_PORT aktiv"
@@ -150,7 +150,7 @@ if [ $UPDATE = 0 ]; then
fi
schritt "Logs begrenzen"
$SUDO install -d /etc/systemd/journald.conf.d
vorlage journald-10-audiofy.conf /etc/systemd/journald.conf.d/10-audiofy.conf
vorlage journald-10-playwish.conf /etc/systemd/journald.conf.d/10-playwish.conf
$SUDO systemctl restart systemd-journald
info "journald max. 200 MB"
fi
@@ -160,11 +160,11 @@ schritt "Fertig"
URL="$(env_wert "$ENV_DATEI" PUBLIC_URL)"
info "Website: $URL (Gäste nur mit Einladungslink/QR-Code)"
info "Admin: $URL/admin"
info "Logs: journalctl -u audiofy-web -f"
info "Logs: journalctl -u playwish-web -f"
if [ $UPDATE = 0 ]; then
info ""
info "Für die Player-Installation brauchst du:"
info " Server-Adresse: $URL"
info " Player-Token: sudo -u $AUDIOFY_USER grep PLAYER_API_TOKEN $ENV_DATEI"
info " Player-Token: sudo -u $PLAYWISH_USER grep PLAYER_API_TOKEN $ENV_DATEI"
info "Gastzugang ist anfangs aus – im Admin unter „Gäste“ einschalten."
fi