# Docker-Laufzeit und Weitere Dienste Decks Webserver besitzt keinen Docker-Socket. Ein kleiner, root-eigener Systemhelfer bietet über `/run/athena-deck-docker/control.sock` ausschließlich zwei feste Aktionen: Status/Inventar und Docker-Erstinstallation. Keine freie Shell, keine Exec-/Mount-/Container-Erstellungsoperationen. Unix-Dateirechte und Linux SO_PEERCRED begrenzen Clients auf root und die eingerichtete Deck-UID. Die öffentliche Deck-API verlangt eine Admin-Sitzung, POST zusätzlich den bestehenden CSRF-Schutz. ## Explizite Container-Zuordnung Nur Container mit **beiden exakten Labels** erscheinen unter Weitere Dienste: ```yaml services: studio: labels: io.athena-deck.managed: "true" io.athena-deck.role: "application" ``` `docker ps -a` wird bereits beim Daemon auf diese Labels gefiltert. Es werden nur ID, Name, Image, Zustand und Status übertragen; keine Umgebungsvariablen, Mounts, Secrets oder Anwendungslogs. Vorhandene Container werden nicht automatisch übernommen. Labels sind eine explizite Zuordnung, keine Sicherheitsgrenze gegenüber jemandem mit eigenem Docker-Administratorzugriff. Die erste Ansicht zeigt nur den Bestand. Ein Anwendungskatalog sowie Installation, Start/Stopp, Öffnen und Deinstallation einzelner Studios folgen separat mit anwendungsspezifischen Rezepten. Keine dekorativen, funktionslosen Aktionsknöpfe. Gewichte und Nutzerdaten werden durch diese Funktion nicht verändert. ## Bestehende Docker-Testinstallation anbinden ```sh sudo ./install.sh --docker-helper --directory /opt/athena-deck-dev/runtime ``` Richtet ausschließlich `athena-deck-docker-helper.service` ein und erneuert Deck, um das private Helfer-Socketverzeichnis einzubinden. Kein Docker-Daemon-Neustart, keine Paketinstallation. Der Helfer läuft hier mit schreibgeschütztem System und **ohne Installationsrecht**. Bestehendes Docker wird nur erkannt und verwendet. Neue Docker-Testinstallationen richten diese lesende Anbindung automatisch ein. ## Optionales Nachinstallieren auf nativem Debian Der native Deck-Basisinstaller muss den Helfer mit der tatsächlichen UID/GID des Deck-Service und ausdrücklich mit Installationsrecht provisionieren: ```sh sudo python3 deploy/setup_docker_helper.py --client-uid DECK_UID --client-gid DECK_GID --allow-install ``` Die Flags DECK_UID/DECK_GID durch die numerischen Werte ersetzen. Der vollständige native Basisinstaller ist weiterhin noch nicht fertig; dieser Bootstrap ist separat. Anschließend bietet Einstellungen → Laufzeiten → Docker die Erstinstallation an. Vor Auslösung zeigt die GUI die konkreten Auswirkungen und verlangt die bewusste Bestätigung der Installation samt Dienst und Docker-Netzwerk-/Firewallregeln. Unterstützt Debian 12/13, amd64/arm64. Installiert aus dem offiziellen signierten Docker-APT-Repository: docker-ce, docker-ce-cli, containerd.io, Buildx und Compose. Vorhandene Docker-/Containerd-Pakete, Konfigurationen oder Daten führen zum Abbruch vor Änderungen. Kein Entfernen von Konfliktpaketen, kein Upgrade bestehender Docker-Installationen, keine Treiberinstallation und kein Host-Reboot. NVIDIA Container Toolkit ist für GPU-Container separat erforderlich. Bereits vorhandenes Docker wird nicht über diese Oberfläche aktualisiert. Paketinstallation läuft serverseitig weiter, wenn die Seite geschlossen wird. Kein Abbrechen mitten in dpkg; Fehler werden angezeigt, Teilinstallationen nicht blind repariert. Der Helfer muss apt und Maintainer-Skripte privilegiert ausführen; diese Berechtigung wird auf vorhandenen Athena-Installationen nicht aktiviert. Tests decken API-Schutz, Label-Filter, verbotene Helferaktionen, feste Paketbefehle, Installationsfehler und Bestandsschutz ab. Ein echter Erstinstallationslauf auf einem frischen Debian-Host steht noch aus; auf Athena wird dafür nichts ersetzt. API: `GET /api/v1/docker`, `POST /api/v1/docker/install` mit `{"confirm": true}`. Referenz: https://docs.docker.com/engine/install/debian/