Betrieb mit Docker#

Die einfachste Methode, einen Server zu starten, ist diesen als Container laufen zu lassen. Verwenden Sie dazu entweder Docker oder Podman oder eine andere OCI-konforme Engine.

In diesen Beispielen verwenden wir Docker, zum Beispiel mit Docker Desktop.

Die jeweils verfügbaren Tags finden Sie hier, bzw. ganz aktuell im git. (Hier ist ggf. eine Anmeldung erforderlich)

Für den eigenen Betrieb sind zwei Tags relevant (Details unter Versionen und Pinning):

  • :latest — die jeweils neueste freigegebene Version (beweglich). Praktisch für Test-/Auswertungssysteme, die automatisch aktuell bleiben sollen.
  • :1.5.x — eine konkret gepinnte, unveränderliche Version (z. B. :1.5.1001). Für den produktiven Betrieb empfohlen, damit ein Versionswechsel immer bewusst und vorab getestet erfolgt.

Das Image basiert auf einem schlanken debian:bookworm-slim und steht für amd64 und arm64 zur Verfügung.

Der Server benötigt eine erreichbare CouchDB (Version 3). Geben Sie deren Verbindungs-URL über die Umgebungsvariable LIVE_DATABASE_URL an. Ohne Datenbank verweigert der Server Import, Sync und Anhänge. Am bequemsten betreiben Sie beide Dienste zusammen mit Docker Compose.

Starten des Servers#

Mit einer bereits erreichbaren CouchDB genügt für die App ein einzelner Container:

$ docker run -d -p 8080:8080 \
    -e LIVE_DATABASE_URL=http://live:live@couch:5984/live \
    git.42i.org/live/live:latest

Nun können Sie den Server per http://localhost:8080 aufrufen.

Erklärung:

  • -p 8080:8080
    Leiten Sie den lokalen Port 8080 an den Port 8080 im Container weiter
  • -e LIVE_DATABASE_URL=…
    Verbindungs-URL zur CouchDB (Benutzer, Passwort, Host, Port und Datenbankname).

In den meisten Fällen ist es jedoch praktischer, die CouchDB gleich mitzustarten — siehe Docker Compose unten.

Stoppen des Servers#

Beenden Sie den Server mit dem Befehl docker stop <container_id>:

$ docker ps
CONTAINER ID   IMAGE                          COMMAND   CREATED              STATUS              PORTS                    NAMES
762d22ceda1c   git.42i.org/live/live:latest   "live serve"   About a minute ago   Up About a minute   0.0.0.0:8080->8080/tcp   boring_kilby
$ docker stop 76
76

Nun ist der Container gestoppt.

Betrieb mit Docker Compose#

Mit Docker Compose starten Sie den live-Server und die benötigte CouchDB in einem Schritt. Die Konfiguration erfolgt über Umgebungsvariablen, wie bei Containern üblich. Legen Sie dazu eine compose.yaml Datei an:

services:
  db:
    image: couchdb:3
    restart: unless-stopped
    environment:
      COUCHDB_USER: live
      COUCHDB_PASSWORD: live
    volumes:
      - ./data/db:/opt/couchdb/data

  app:
    image: git.42i.org/live/live:latest
    restart: unless-stopped
    depends_on:
      - db
    ports:
      - "8080:8080"
    environment:
      LIVE_DATABASE_URL: http://live:live@db:5984/live
      # optional:
      # LIVE_SERVER_URL: https://mein.server.de
      # LIVE_SYSTEM_LICENSE: "ABCD-..."
    volumes:
      - ./data/config:/app/config:ro

Erklärung:

  • Der Dienst db stellt die CouchDB bereit; ihre Daten liegen dauerhaft im Volume ./data/db.
  • Der Dienst app verbindet sich über LIVE_DATABASE_URL mit der CouchDB. Host und Datenbankname (db bzw. live) entsprechen dem CouchDB-Dienst.
  • Das Verzeichnis ./data/config wird schreibgeschützt (:ro) als /app/config eingehängt — hier kann eine optionale config.yaml liegen.
  • Über LIVE_SERVER_URL geben Sie die externe Basis-URL und über LIVE_SYSTEM_LICENSE Ihre Lizenz an (ohne Lizenz: Demo-Modus, max. 50 Aufträge).

Starten Sie den Server mit dem Befehl docker compose up:

$ docker compose up -d
[+] Running 2/2
 ✔ Container live-db-1   Started
 ✔ Container live-app-1  Started

Nun können Sie den Server per http://localhost:8080 aufrufen.

Auf einer frischen Single-Node-CouchDB protokolliert der Server beim Start die Meldung Request to create N=3 DB but only 1 node(s). Das ist normales Start-Rauschen und kein Fehler.

Konfiguration#

Bitte sehen Sie sich die Anleitung für die Konfiguration im folgenden Kapitel an.

Lizenzbedingungen#

Für die Nutzung der Software gelten die beschriebenen Lizenzbedingungen.