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)

Starten des Servers#

$ docker run -d -p 8080:8080 -v ./data:/data git.42i.org/live/live:1.0

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
  • -v ./data:/data
    Verwenden Sie eine lokale Datenbank, die im Verzeichnis data gespeichert wird. Die Datenbank wird über dieses Volume Mapping lokal gespeichert, auch wenn der Container gelöscht wird.

In diesem Beispiel verwenden wir das lab Tag, also die instabile Labor-Version.

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:1.0   "/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#

Legen Sie eine compose.yml Datei an:

services:
  app:
    image: git.42i.org/live/live:1.0
    ports:
      - "8080:8080"
    volumes:
      - ./data:/data

Starten Sie den Server mit dem Befehl docker compose up:

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

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

Ein Beispiel mit separater Postgres Datenbank#

Hier ein Beispiel für eine Compose Datei mit einer separaten Postgres Datenbank. Die Konfiguration erfolgt hier über Umgebungsvariablen, wie bei Containern üblich. Alternativ könnten Sie auch eine Config-Datei verwenden.

services:
  db:
    image: postgres:16
    restart: unless-stopped
    environment:
      POSTGRES_USER: live
      POSTGRES_PASSWORD: live
      POSTGRES_DB: live
    volumes:
      - ./data/db:/var/lib/postgresql/data

  app:
    image: git.42i.org/live/live:1.0
    restart: unless-stopped
    depends_on:
      - db
    ports:
      - "8080:8080"
    environment:
      DATABASE_DRIVER: postgres
      DATABASE_HOST: db
      DATABASE_PORT: 5432
      DATABASE_USER: live
      DATABASE_PASSWORD: live
      DATABASE_NAME: live
      DATABASE_SSLMODE: disable

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.