-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathdocker-compose.yml
More file actions
35 lines (35 loc) · 1.41 KB
/
Copy pathdocker-compose.yml
File metadata and controls
35 lines (35 loc) · 1.41 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
services:
tonus:
image: ghcr.io/madmax1301/tonus:latest
container_name: tonus
restart: unless-stopped
network_mode: host
env_file:
- .env
environment:
- API_HOST=0.0.0.0
- API_PORT=8088
- NAVIDROME_MUSIC_PATH=/music
- NAVIDROME_API_URL=${NAVIDROME_API_URL}
volumes:
- /path/to/music:/music:rw
- ./downloads:/app/downloads:rw
- ./tonus-data:/app/data:rw
# ─── Security-Hardening ─────────────────────────────────────────
# no-new-privileges: blockt SUID-Binaries im Container, sodass selbst
# ein erfolgreicher RCE keine privilege-escalation auslösen kann.
# cap_drop ALL: kein einziger Linux-Capability bleibt — uvicorn als
# Web-Server braucht keine. NET_BIND_SERVICE wäre nur nötig wenn
# API_PORT < 1024 wäre (wir nutzen 8088, also nicht).
security_opt:
- no-new-privileges:true
cap_drop:
- ALL
# Optional read-only root-fs: die rw-mounts oben sind schon dediziert
# für die Daten, der Rest des Containers braucht keine Schreibrechte.
# PYTHONDONTWRITEBYTECODE im Image verhindert __pycache__-Writes.
# Auf manchen NAS-Setups (vor allem mit unklaren tmp-Mount-Pfaden)
# kann das Probleme machen — daher als Kommentar, nicht aktiv.
# read_only: true
# tmpfs:
# - /tmp:size=64M,mode=1777