Tags: homelab docker ugreen nas
Setup-Übersicht
- NAS: UGREEN DXP2800, UGOS
- User:
dominik, UID1000, primäre Gruppeadmin(GID10) - Volume 1: RAID1-HDD-Pool → Bulk-Daten (
media,documents,ebooks,backups) - Volume 2: SSD-Pool → Docker-Engine +
appdata+docker-compose-Configs
Faustregel
Ordner, die ich selbst per
mkdirüber SSH anlege, gehören automatisch mir (dominik:admin) — keinchownnötig. Nur Ordner, die UGOS/App Center selbst erstellt (z.B. bei App-Installation), gehören oftrootoder einer Systemgruppe und müssen manuell korrigiert werden.
Neuen Stack anlegen – Workflow
# 1. Ordner selbst anlegen (automatisch korrekte Rechte)
mkdir -p /volume2/docker-compose/<kategorie>/<stack-name>
mkdir -p /volume2/appdata/<stack-name>
# 2. compose.yml im Stack-Ordner erstellen (siehe unten)
# 3. Erst danach starten
cd /volume2/docker-compose/<kategorie>/<stack-name>
docker compose up -dFalls ein Ordner falsche Berechtigungen hat
Prüfen:
ls -la /volume2/docker-composeKorrigieren (UID:GID oder Name:Name funktionieren beide):
sudo chown -R dominik:admin /pfad/zum/ordnerFalls die Gruppe dominik:dominik nicht existiert (bei UGOS oft der Fall, keine dedizierte User-Gruppe):
id dominik
# zeigt z.B.: uid=1000(dominik) gid=10(admin) groups=10(admin),100(users),133(ughomeusers)→ Dann admin (oder die passende Gruppe aus der Ausgabe) statt dominik als Gruppennamen verwenden.
PUID/PGID in Compose-Files
Container, die PUID/PGID unterstützen (z.B. linuxserver.io-Images oder Dockhand), schreiben Dateien dann automatisch mit den richtigen Rechten:
environment:
- PUID=1000 # dominik
- PGID=10 # admin (NICHT 1000, das ist bei UGOS oft falsch!)Falls ein Image das nicht unterstützt, alternativ per user:-Direktive erzwingen (nur wenn der Prozess keine root-Rechte braucht):
user: "1000:10"Docker-Socket-Zugriff für Management-Tools (z.B. Dockhand, Portainer)
GID des Docker-Sockets ermitteln:
stat -c '%g' /var/run/docker.sockIm Compose-File eintragen:
group_add:
- "<DOCKER-GID>" # z.B. 121Optional: Automatische Vererbung per Default-ACL
Falls auch Ordner, die NICHT von mir selbst angelegt werden (z.B. spätere App-Center-Installationen), automatisch die richtige Gruppe bekommen sollen:
sudo setfacl -d -m g:admin:rwx /volume2/docker-compose
sudo setfacl -d -m g:admin:rwx /volume2/appdatadocker-Gruppe für dominik (einmalig, damit docker ohne sudo läuft)
sudo usermod -aG docker dominik
# danach SSH-Session neu aufbauen (exit + neu einloggen)
docker ps # sollte jetzt ohne sudo funktionierenTest, ob eigene mkdir-Ordner korrekt sind
mkdir /volume2/docker-compose/test-ordner
ls -la /volume2/docker-compose/ | grep test-ordner
# Erwartung: dominik admin
rmdir /volume2/docker-compose/test-ordner