deploy/compose.standalone.yml
Rama main · réplica de lectura del repositorio original.
# Nodvard Deck ohne das Repository installieren:
# 1. Diese Datei als compose.yml in einen leeren Ordner laden:
# curl -fsSL -o compose.yml https://raw.githubusercontent.com/nodvard/deck/main/deploy/compose.standalone.yml
# 2. In diesem Ordner: docker compose up -d
# 3. Browser öffnen: http://<Adresse-des-Rechners>:8080 und der Anleitung auf dem Bildschirm folgen.
# (Der Einrichtungscode steht im Protokoll: docker compose logs nodvard-deck)
#
# Aktualisieren: docker compose pull && docker compose up -d
# (Unter anderem Dateinamen gespeichert? Dann überall -f <datei> ergänzen.)
# Anderer Port: Umgebungsvariable NODVARD_DECK_PORT setzen (z. B. in einer Datei .env neben dieser Datei).
# Portainer: Stacks -> Add stack, entweder "Repository" (URL https://github.com/nodvard/deck, Compose path
# deploy/compose.standalone.yml) oder "Web editor" mit dem INHALT dieser Datei, nicht mit den Befehlen oben.
# Fester Projektname: Der Ordnername bestimmt sonst den Namen des Datenspeichers.
name: nodvard-deck
services:
nodvard-deck:
# Lieber nicht automatisch auf die nächste Reihe? Statt "latest" ghcr.io/nodvard/deck:X.Y eintragen (die ersten
# beiden Zahlen deiner Version): Dann kommen nur noch Fehler- und Sicherheitskorrekturen dieser Reihe. Eine genaue
# Version (X.Y.Z) bleibt, bis du sie hier änderst; dann gibt es kein Update per Knopf.
image: ghcr.io/nodvard/deck:latest
restart: unless-stopped
ports:
# Der alte Name LATTICE_PORT gilt nur noch übergangsweise (spätestens bis 1.0).
- "${NODVARD_DECK_PORT:-${LATTICE_PORT:-8080}}:8080"
volumes:
# Alle Daten (Datenbank, Schlüssel, Dokumente). Ein benannter Datenspeicher braucht keine
# Rechte-Einstellungen. Lieber einen Ordner? "./daten:/app/data" -- der Container setzt die
# Besitzrechte an diesem Ordner beim Start selbst.
- nodvard_deck_data:/app/data
# Optional: Ordner für die Sicherungen aus Einstellungen -> System -> Sicherung, AUSSERHALB
# des Datenspeichers (am besten ein anderes Laufwerk oder ein NAS). Zeile einkommentieren,
# Ordner anlegen und dem Nutzer 1000 geben (`mkdir sicherungen && sudo chown 1000:1000 sicherungen`),
# dann in der Oberfläche als Ordner `/backups` wählen. Nur `/backups` (und darunter) ist
# als Ziel erlaubt, neben dem Standard /app/data/backups.
# - ./sicherungen:/backups
# NAS oder NFS: den eingehängten Ordner eintragen, Rechte für 1000 und Reihenfolge beim Start siehe
# docs/16-SICHERUNG.md, Abschnitt "Sicherungen auf ein NAS oder NFS".
# - /pfad/zum/nas:/backups
# Eigener Namensserver nur für diesen Container. Nötig nur, wenn interne Namen des Heimnetzes
# (z. B. von einem Pi-hole) nicht gefunden werden. Zum Einschalten die Zeilen einkommentieren:
# dns:
# - 192.168.1.10
# - 1.1.1.1
# Begrenzt die Docker-Logdatei (3 x 10 MB), damit sie nicht ungebremst wächst.
logging:
driver: json-file
options:
max-size: "10m"
max-file: "3"
healthcheck:
test: ["CMD", "python", "-I", "-c", "import urllib.request; urllib.request.urlopen('http://127.0.0.1:8080/api/v1/health', timeout=2)"]
interval: 30s
timeout: 3s
# Vor dem Start läuft die Migration samt Kopie der Datenbank (`nodvard_deck.boot`) -- bei einer großen Datenbank auf einem Pi
# Minuten. Während dieser Zeit zählen Fehlschläge nicht. Die Notseite antwortet mit 503; der Check schlägt dann an.
start_period: 300s
retries: 3
volumes:
nodvard_deck_data:
name: nodvard-deck-data