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: ${DATABASE_URL} # 2. Ein sicherer Schlüssel für Sessions (z.B. mit `openssl rand -hex 32` generieren) NEXTAUTH_SECRET: ${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: ${KEYCLOAK_ID} AUTH_OAUTH_KEYCLOAK_SECRET: ${KEYCLOAK_SECRET} AUTH_OAUTH_KEYCLOAK_NAME: Keycloak AUTH_OAUTH_KEYCLOAK_ISSUER: ${KEYCLOAK_ISSUER} # 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