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
+1 -1
View File
@@ -1,4 +1,4 @@
# Audiofy – Caddy-Konfiguration (erzeugt von install-server.sh)
# Playwish – Caddy-Konfiguration (erzeugt von install-server.sh)
{
email {{ACME_EMAIL}}
servers {
-30
View File
@@ -1,30 +0,0 @@
[Unit]
Description=Audiofy – Website, Admin-Bereich und Player-API
After=network-online.target
Wants=network-online.target
[Service]
User={{AUDIOFY_USER}}
Group={{AUDIOFY_USER}}
WorkingDirectory={{AUDIOFY_DIR}}/app
Environment=AUDIOFY_ENV={{AUDIOFY_DIR}}/.env
ExecStart={{AUDIOFY_DIR}}/.venv/bin/uvicorn app.main:app --host 127.0.0.1 --port {{APP_PORT}} --workers 1 --no-access-log --proxy-headers --forwarded-allow-ips 127.0.0.1
Restart=always
RestartSec=3
UMask=0077
# Härtung
NoNewPrivileges=yes
ProtectSystem=strict
ProtectHome=yes
ReadWritePaths={{AUDIOFY_DIR}}/data {{AUDIOFY_DIR}}/.env
PrivateTmp=yes
PrivateDevices=yes
ProtectKernelTunables=yes
ProtectKernelModules=yes
ProtectControlGroups=yes
RestrictAddressFamilies=AF_INET AF_INET6 AF_UNIX
LockPersonality=yes
MemoryMax=300M
[Install]
WantedBy=multi-user.target
@@ -1,4 +1,4 @@
# Audiofy – SSH gegen Passwort-Raten schützen
# Playwish – SSH gegen Passwort-Raten schützen
[sshd]
enabled = true
port = {{SSH_PORT}}
@@ -1,15 +1,15 @@
[Unit]
Description=Audiofy – Controller (Spotify-Steuerung, Wünsche vom Server)
Description=Playwish – Controller (Spotify-Steuerung, Wünsche vom Server)
After=network-online.target bluetooth.target raspotify.service
Wants=network-online.target raspotify.service
# nie aufgeben, immer wieder neu starten
StartLimitIntervalSec=0
[Service]
User={{AUDIOFY_USER}}
Group={{AUDIOFY_USER}}
WorkingDirectory={{AUDIOFY_DIR}}/app
ExecStart={{AUDIOFY_DIR}}/.venv/bin/python -u {{AUDIOFY_DIR}}/app/controller.py --env {{AUDIOFY_DIR}}/config/.env
User={{PLAYWISH_USER}}
Group={{PLAYWISH_USER}}
WorkingDirectory={{PLAYWISH_DIR}}/app
ExecStart={{PLAYWISH_DIR}}/.venv/bin/python -u {{PLAYWISH_DIR}}/app/controller.py --env {{PLAYWISH_DIR}}/config/.env
Restart=always
RestartSec=5
UMask=0077
@@ -17,7 +17,7 @@ UMask=0077
NoNewPrivileges=yes
ProtectSystem=strict
ProtectHome=yes
ReadWritePaths={{AUDIOFY_DIR}}/config
ReadWritePaths={{PLAYWISH_DIR}}/config
PrivateTmp=yes
PrivateDevices=yes
ProtectKernelTunables=yes
+30
View File
@@ -0,0 +1,30 @@
[Unit]
Description=Playwish – Website, Admin-Bereich und Player-API
After=network-online.target
Wants=network-online.target
[Service]
User={{PLAYWISH_USER}}
Group={{PLAYWISH_USER}}
WorkingDirectory={{PLAYWISH_DIR}}/app
Environment=PLAYWISH_ENV={{PLAYWISH_DIR}}/.env
ExecStart={{PLAYWISH_DIR}}/.venv/bin/uvicorn app.main:app --host 127.0.0.1 --port {{APP_PORT}} --workers 1 --no-access-log --proxy-headers --forwarded-allow-ips 127.0.0.1
Restart=always
RestartSec=3
UMask=0077
# Härtung
NoNewPrivileges=yes
ProtectSystem=strict
ProtectHome=yes
ReadWritePaths={{PLAYWISH_DIR}}/data {{PLAYWISH_DIR}}/.env
PrivateTmp=yes
PrivateDevices=yes
ProtectKernelTunables=yes
ProtectKernelModules=yes
ProtectControlGroups=yes
RestrictAddressFamilies=AF_INET AF_INET6 AF_UNIX
LockPersonality=yes
MemoryMax=300M
[Install]
WantedBy=multi-user.target
@@ -1,4 +1,4 @@
# Audiofy: raspotify nie endgültig aufgeben (z. B. wenn der Lautsprecher kurz fehlt
# Playwish: raspotify nie endgültig aufgeben (z. B. wenn der Lautsprecher kurz fehlt
# oder das Netz beim Start noch nicht da ist)
[Unit]
StartLimitIntervalSec=0
@@ -1,4 +1,4 @@
# Audiofy – SSH-Härtung (NICHT automatisch installiert, siehe README „Server härten“)
# Playwish – SSH-Härtung (NICHT automatisch installiert, siehe README „Server härten“)
# Erst einsetzen, wenn der Login per Schlüssel für {{ADMIN_USER}} nachweislich klappt!
Port {{SSH_PORT}}
PermitRootLogin no