- Update all volume paths from /home/doc/swarm-data to /home/doc/projects/swarm-data - Add Traefik local entrypoint on port 8443 with host mode networking - Add Adminer local route with Traefik labels - Configure Vikunja OIDC integration with Authentik - Add Outline stack configuration - Add traefik-local stack for local network routing - Update .gitignore with backup files and dynamic configs 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
61 lines
2.2 KiB
YAML
61 lines
2.2 KiB
YAML
services:
|
|
vikunja:
|
|
image: vikunja/vikunja:latest
|
|
environment:
|
|
VIKUNJA_DATABASE_TYPE: postgres
|
|
VIKUNJA_DATABASE_HOST: 10.0.4.10
|
|
VIKUNJA_DATABASE_USER: admin
|
|
VIKUNJA_DATABASE_PASSWORD_FILE: /run/secrets/postgres-master
|
|
VIKUNJA_DATABASE_DATABASE: vikunja
|
|
VIKUNJA_SERVICE_PUBLICURL: https://tasks.frostlabs.me
|
|
VIKUNJA_SERVICE_JWTSECRET_FILE: /run/secrets/vikunja-jwt
|
|
# OIDC/SSO Configuration for Authentik
|
|
OIDC_CLIENT_ID: fAkamae10Kz4QnqhAW2pqvyIEpCQWz9yiNVUEcNf
|
|
OIDC_CLIENT_SECRET: FpLWS72MXH9vReiNEQFCxybUe4OOdiiNPmKNeg6iY7GICpLupF0CQaqqTEzPnwvrDUNEz9I2nwsI3BUP23AQ49ESquhn6d5IZfqRMVSKC7FTzVSLqkQzDCW5SkyJyo83
|
|
OIDC_AUTH_URI: https://auth.frostlabs.me/application/o/authorize/
|
|
OIDC_TOKEN_URI: https://auth.frostlabs.me/application/o/token/
|
|
OIDC_USERINFO_URI: https://auth.frostlabs.me/application/o/userinfo/
|
|
OIDC_LOGOUT_URI: https://auth.frostlabs.me/application/o/vikunja/end-session/
|
|
OIDC_USERNAME_CLAIM: preferred_username
|
|
OIDC_DISPLAY_NAME: Authentik
|
|
OIDC_SCOPES: openid profile email
|
|
secrets:
|
|
- postgres-master
|
|
- vikunja-jwt
|
|
volumes:
|
|
- /home/doc/projects/swarm-data/appdata/vikunja/files:/app/vikunja/files
|
|
- /home/doc/projects/swarm/swarm-production/stacks/apps/vikunja/config.yml:/etc/vikunja/config.yml:ro
|
|
networks:
|
|
- homelab
|
|
# healthcheck:
|
|
# test: ["CMD", "wget", "--quiet", "--tries=1", "--spider", "http://localhost:3456/api/v1/info"]
|
|
# interval: 30s
|
|
# timeout: 5s
|
|
# retries: 3
|
|
# start_period: 30s
|
|
deploy:
|
|
replicas: 1
|
|
resources:
|
|
limits:
|
|
memory: 1G
|
|
cpus: '1.0'
|
|
reservations:
|
|
memory: 512M
|
|
labels:
|
|
- "traefik.enable=true"
|
|
- "traefik.http.routers.vikunja.rule=Host(`tasks.frostlabs.me`)"
|
|
- "traefik.http.routers.vikunja.entrypoints=websecure"
|
|
- "traefik.http.routers.vikunja.tls.certresolver=cloudflare"
|
|
- "traefik.http.services.vikunja.loadbalancer.server.port=3456"
|
|
- "traefik.swarm.network=homelab"
|
|
|
|
networks:
|
|
homelab:
|
|
external: true
|
|
|
|
secrets:
|
|
postgres-master:
|
|
external: true
|
|
vikunja-jwt:
|
|
external: true
|