services:
  vikunja:
    image: vikunja/vikunja:latest
    restart: unless-stopped
    environment:
      - VIKUNJA_DATABASE_HOST=db
      - VIKUNJA_DATABASE_PASSWORD=vikunja
      - VIKUNJA_DATABASE_TYPE=postgres
      - VIKUNJA_DATABASE_USER=vikunja
      - VIKUNJA_DATABASE_DATABASE=vikunja
      - VIKUNJA_SERVICE_FRONTENDURL=https://tasks.jakehoward.tech
      - VIKUNJA_SERVICE_JWTSECRET="{{ vault_jwt_secret }}"
      - VIKUNJA_SERVICE_ENABLEREGISTRATION=false
      - VIKUNJA_SERVICE_TIMEZONE={{ timezone }}
      - VIKUNJA_REDIS_HOST=redis:6379
      - VIKUNJA_REDIS_ENABLED=true
      - VIKUNJA_LOG_PATH=/dev/stdout
      - VIKUNJA_KEYVALUE_TYPE=redis
      - VIKUNJA_MAILER_ENABLED=true
      - VIKUNJA_MAIL_FROMEMAIL={{ vault_from_email }}
      - VIKUNJA_MAILER_USERNAME={{ vault_smtp_username }}
      - VIKUNJA_MAILER_PASSWORD={{ vault_smtp_password }}
      - VIKUNJA_MAILER_HOST=smtp.eu.mailgun.org
      - VIKUNJA_SENTRY_DSN=
      - TZ={{ timezone }}
      - PUID={{ docker_user.id }}
      - PGID={{ docker_user.id }}
    labels:
      - traefik.enable=true
      - traefik.http.routers.vikunja.rule=Host(`tasks.jakehoward.tech`)
    volumes:
      - /mnt/tank/app-data/vikunja/files:/app/vikunja/files
    depends_on:
      - db
      - redis
    networks:
      - default
      - traefik

  db:
    image: postgres:14-alpine
    restart: unless-stopped
    volumes:
      - /mnt/speed/dbs/postgres/vikunja/:/var/lib/postgresql/data
    environment:
      - POSTGRES_PASSWORD=vikunja
      - POSTGRES_USER=vikunja

  redis:
    image: redis:7-alpine
    restart: unless-stopped
    volumes:
      - /mnt/speed/dbs/redis/vikunja/:/data

networks:
  traefik:
    external: true