Tags: homelab docker ugreen nas

Setup-Übersicht

  • NAS: UGREEN DXP2800, UGOS
  • User: dominik, UID 1000, primäre Gruppe admin (GID 10)
  • 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) — kein chown nötig. Nur Ordner, die UGOS/App Center selbst erstellt (z.B. bei App-Installation), gehören oft root oder 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 -d

Falls ein Ordner falsche Berechtigungen hat

Prüfen:

ls -la /volume2/docker-compose

Korrigieren (UID:GID oder Name:Name funktionieren beide):

sudo chown -R dominik:admin /pfad/zum/ordner

Falls 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.sock

Im Compose-File eintragen:

group_add:
  - "<DOCKER-GID>"   # z.B. 121

Optional: 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/appdata

docker-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 funktionieren

Test, 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

Praktische Beispiele in dieser NAS

Diese Berechtigungen-Struktur wird verwendet in: