version: '3' services: linkwarden: image: ghcr.io/linkwarden/linkwarden:latest container_name: linkwarden restart: unless-stopped # Falls Linkwarden Snapshots/Archivierung speichern soll, Volumen mounten volumes: - ./data:/data environment: # 1. Verbindung zur bestehenden PostgreSQL-Datenbank # Format: postgresql://USER:PASSWORD@HOST:PORT/DATABASE_NAME?sslmode=disable # HINWEIS: Wenn die DB auf dem gleichen Host läuft (nicht im Docker), verwende oft 'host.docker.internal' statt localhost DATABASE_URL: postgresql://linkwarden_user:geheimes_passwort@:5432/linkwarden_db?sslmode=disable # 2. Ein sicherer Schlüssel für Sessions (z.B. mit `openssl rand -hex 32` generieren) NEXTAUTH_SECRET: # 3. Deine Domain BASE_URL: https://linkwarden.ljh31.de # Optional: Keycloak / OIDC Konfiguration (falls du es weiter nutzen willst) # AUTH_OAUTH_KEYCLOAK_ID: ... # AUTH_OAUTH_KEYCLOAK_SECRET: ... # Netzwerk-Verbindung zum Traefik-Proxy anpassen (Name oft 'proxy', 'traefik' oder 'web') networks: - infra-traefik_default labels: - "traefik.enable=true" # Router Config - "traefik.http.routers.linkwarden.rule=Host(`linkwarden.ljh31.de`)" - "traefik.http.routers.linkwarden.entrypoints=websecure" - "traefik.http.routers.linkwarden.tls=true" - "traefik.http.routers.linkwarden.tls.certresolver=letsencrypt" # Anpassen falls dein Resolver anders heißt # Service Config (Intern ist Linkwarden auf Port 3000) - "traefik.http.services.linkwarden.loadbalancer.server.port=3000" # Definiere das externe Netzwerk, an dem dein Traefik hängt networks: infra-traefik_default: external: true