Mit Docker Compose installieren
Labelyard kommt als ein Image, ghcr.io/strausmann/labelyard (auch auf Docker Hub als docker.io/bstrausmann/labelyard), für linux/amd64 und linux/arm64. Ein Prozess liefert die REST-API, den Live-Ereignisstrom und die Weboberfläche aus.
Was du brauchst
Abschnitt betitelt „Was du brauchst“- Docker Engine 24 oder neuer (oder Docker Desktop, oder Podman mit dem Compose-Plugin).
- Deine Drucker im selben Netz wie der Host, mit ihren Adressen notiert. Siehe Drucker anschließen.
- Für den Zugriff von außerhalb deines LANs: einen Reverse Proxy und einen Domainnamen. Siehe Reverse Proxy.
Die Compose-Datei
Abschnitt betitelt „Die Compose-Datei“Das ist die eigenständige Variante ohne Reverse Proxy, für ein vertrauenswürdiges LAN, gekürzt auf das, was ein erster Start braucht. examples/compose.standalone.yml im Repository ist die ausführlichere Fassung mit mehr Variablen (Port, vertrauenswürdige Proxys, Datenbank, Log-Level); die Proxy-Varianten liegen daneben.
services: labelyard: image: ghcr.io/strausmann/labelyard:${HUB_VERSION:-1.6.0} container_name: labelyard user: "1000:1000" ports: - "${HUB_PORT:-8000}:8000" environment: - "LABELYARD_SECRET_KEY=${LABELYARD_SECRET_KEY:?set LABELYARD_SECRET_KEY}" - "LABELYARD_PUBLIC_URL=${LABELYARD_PUBLIC_URL:?set LABELYARD_PUBLIC_URL}" - LABELYARD_WEBHOOK_API_KEY=${LABELYARD_WEBHOOK_API_KEY:-} volumes: - ./data:/data restart: unless-stopped healthcheck: test: ["CMD", "curl", "-fsS", "http://localhost:8000/healthz"] interval: 30s timeout: 5s retries: 3 start_period: 30sDie zwei Pflichtwerte
Abschnitt betitelt „Die zwei Pflichtwerte“Leg sie in eine Datei .env neben der Compose-Datei:
# base64url aus 32 Zufallsbytes; bewahre ihn auf, ohne ihn lassen sich gespeicherte Geheimnisse nicht lesenLABELYARD_SECRET_KEY= # openssl rand -base64 32 | tr '+/' '-_'# die Adresse, unter der du den Hub öffnest; eine lokale wie http://localhost:8000 reichtLABELYARD_PUBLIC_URL=http://localhost:8000Leg zuerst das Datenverzeichnis an und gib es dem Benutzer, unter dem der Container läuft; ein Verzeichnis, das Docker selbst anlegt, gehört root, und der Hub kann nicht hineinschreiben:
mkdir -p data && sudo chown 1000:1000 dataDann startest du ihn und prüfst, ob er antwortet:
docker compose up -dcurl http://localhost:8000/healthzAlle anderen Einstellungen sind optional und stehen in der Konfigurationsreferenz.
Erste Anmeldung
Abschnitt betitelt „Erste Anmeldung“Eine frische Installation hat noch keinen API-Schlüssel, und die Weboberfläche meldet sich mit einem an. Du hast zwei Wege:
-
Im Browser. Setz
LABELYARD_BOOTSTRAP_ADMIN_KEYauf einen Einmalschlüssel mit mindestens 32 Zeichen (openssl rand -hex 32) und starte neu. Melde dich damit an; die Bootstrap-Sitzung kann nur den ersten echten Admin-Schlüssel anlegen. Danach meldest du dich mit dem neuen Schlüssel an und entfernst die Variable. -
Im Container. Leg den Schlüssel auf der Kommandozeile an; er wird einmal ausgegeben:
Terminal-Fenster docker compose exec labelyard labelyard admin create-key --scope admin --name first-admin
Danach fügst du deine Drucker unter Einstellungen > Drucker hinzu. Ein Neustart ist nicht nötig.
Daten und Aktualisierungen
Abschnitt betitelt „Daten und Aktualisierungen“Der gesamte Zustand liegt im Volume ./data: die Datenbank, die Bögen und die Einstellungen. Sichere es zusammen mit LABELYARD_SECRET_KEY (siehe Sicherungen). Zum Aktualisieren änderst du den Image-Tag und führst docker compose pull && docker compose up -d aus. Die Tags erklärt Aktualisieren.