- Flask session-based login with styled dark-theme login page - All routes gated behind password (configurable via SITE_PASSWORD env) - /login and /api/health are public - Wrong password shows red error, correct redirects to original page - 30-day session persistence - /logout to clear session - Password: jv2026 (set in docker-compose.yml)
57 lines
1.3 KiB
YAML
57 lines
1.3 KiB
YAML
version: "3.8"
|
|
|
|
services:
|
|
justvitamin:
|
|
image: justvitamin:latest
|
|
build: .
|
|
environment:
|
|
- GEMINI_API_KEY=AIzaSyCHnesXLjPw-UgeZaQotut66bgjFdvy12E
|
|
- DATABASE_URL=postgresql://jv:jvpass@tasks.db:5432/justvitamin
|
|
- SECRET_KEY=c4f8a2e91b0d7f3e5a6c9d2b8e1f4a7d
|
|
- SITE_PASSWORD=jv2026
|
|
volumes:
|
|
- jv-generated:/app/generated
|
|
networks:
|
|
- dokploy-network
|
|
- jv-internal
|
|
depends_on:
|
|
- db
|
|
deploy:
|
|
labels:
|
|
- "traefik.enable=true"
|
|
- "traefik.http.routers.justvitamin.rule=Host(`justvitamin.quikcue.com`)"
|
|
- "traefik.http.routers.justvitamin.entrypoints=websecure"
|
|
- "traefik.http.routers.justvitamin.tls.certResolver=letsencrypt"
|
|
- "traefik.http.services.justvitamin.loadbalancer.server.port=5050"
|
|
replicas: 1
|
|
restart_policy:
|
|
condition: on-failure
|
|
|
|
db:
|
|
image: postgres:16-alpine
|
|
environment:
|
|
- POSTGRES_USER=jv
|
|
- POSTGRES_PASSWORD=jvpass
|
|
- POSTGRES_DB=justvitamin
|
|
volumes:
|
|
- jv-pgdata:/var/lib/postgresql/data
|
|
networks:
|
|
- jv-internal
|
|
deploy:
|
|
replicas: 1
|
|
restart_policy:
|
|
condition: on-failure
|
|
resources:
|
|
limits:
|
|
memory: 512M
|
|
|
|
volumes:
|
|
jv-generated:
|
|
jv-pgdata:
|
|
|
|
networks:
|
|
dokploy-network:
|
|
external: true
|
|
jv-internal:
|
|
driver: overlay
|