101 lines
3.7 KiB
YAML
101 lines
3.7 KiB
YAML
---
|
|
# FlexMeasures Stack — Docker Compose
|
|
# Adapté pour Traefik avec sous-domaines digitribe.fr
|
|
|
|
services:
|
|
# ─── PostgreSQL ────────────────────────────────────────────────
|
|
flexmeasures-db:
|
|
image: postgres:17
|
|
container_name: flexmeasures-db
|
|
restart: unless-stopped
|
|
environment:
|
|
POSTGRES_DB: flexmeasures
|
|
POSTGRES_USER: flexmeasures
|
|
POSTGRES_PASSWORD: ${FLEXMEASURES_DB_PASSWORD:-Digitribe972}
|
|
volumes:
|
|
- flexmeasures_db_data:/var/lib/postgresql/data
|
|
networks:
|
|
- traefik_network
|
|
mem_limit: 1g
|
|
cpus: 1
|
|
|
|
# ─── Redis (queue) ─────────────────────────────────────────────
|
|
flexmeasures-redis:
|
|
image: redis:7-alpine
|
|
container_name: flexmeasures-redis
|
|
restart: unless-stopped
|
|
command: redis-server --loglevel warning --requirepass ${FLEXMEASURES_REDIS_PASSWORD:-Digitribe972}
|
|
volumes:
|
|
- flexmeasures_redis_data:/data
|
|
networks:
|
|
- traefik_network
|
|
mem_limit: 512m
|
|
cpus: 0.5
|
|
|
|
# ─── FlexMeasures Server ───────────────────────────────────────
|
|
flexmeasures-server:
|
|
image: lfenergy/flexmeasures:latest
|
|
container_name: flexmeasures-server
|
|
restart: unless-stopped
|
|
depends_on:
|
|
- flexmeasures-db
|
|
- flexmeasures-redis
|
|
environment:
|
|
SQLALCHEMY_DATABASE_URI: "postgresql://flexmeasures:${FLEXMEASURES_DB_PASSWORD:-Digitribe972}@flexmeasures-db:5432/flexmeasures"
|
|
SECRET_KEY: ${FLEXMEASURES_SECRET_KEY:-flexmeasures-secret-key-change-me}
|
|
SECURITY_TOTP_SECRETS: '{"1": "totp-secret-change-me"}'
|
|
FLEXMEASURES_ENV: production
|
|
FLEXMEASURES_REDIS_URL: "flexmeasures-redis"
|
|
FLEXMEASURES_REDIS_PORT: "6379"
|
|
FLEXMEASURES_REDIS_DB_NR: "0"
|
|
FLEXMEASURES_REDIS_PASSWORD: "${FLEXMEASURES_REDIS_PASSWORD:-Digitribe972}"
|
|
LOGGING_LEVEL: INFO
|
|
FLEXMEASURES_ALLOW_DATA_DELETION: "true"
|
|
FLEXMEASURES_PUBLIC_ACCOUNTS: "true"
|
|
networks:
|
|
- traefik_network
|
|
labels:
|
|
- "traefik.enable=true"
|
|
- "traefik.http.routers.cariflex.rule=Host(`cariflex.digitribe.fr`)"
|
|
- "traefik.http.routers.cariflex.entrypoints=websecure"
|
|
- "traefik.http.routers.cariflex.tls.certresolver=letsencrypt"
|
|
- "traefik.http.services.cariflex.loadbalancer.server.port=5000"
|
|
- "traefik.http.routers.cariflex.middlewares=redirect-https"
|
|
mem_limit: 2g
|
|
cpus: 2
|
|
|
|
# ─── FlexMeasures Worker (jobs) ────────────────────────────────
|
|
flexmeasures-worker:
|
|
image: lfenergy/flexmeasures:latest
|
|
container_name: flexmeasures-worker
|
|
restart: unless-stopped
|
|
depends_on:
|
|
- flexmeasures-db
|
|
- flexmeasures-redis
|
|
- flexmeasures-server
|
|
environment:
|
|
SQLALCHEMY_DATABASE_URI: "postgresql://flexmeasures:${FLEXMEASURES_DB_PASSWORD:-Digitribe972}@flexmeasures-db:5432/flexmeasures"
|
|
SECRET_KEY: ${FLEXMEASURES_SECRET_KEY:-flexmeasures-secret-key-change-me}
|
|
SECURITY_TOTP_SECRETS: '{"1": "totp-secret-change-me"}'
|
|
FLEXMEASURES_ENV: production
|
|
FLEXMEASURES_REDIS_URL: "flexmeasures-redis"
|
|
FLEXMEASURES_REDIS_PORT: "6379"
|
|
FLEXMEASURES_REDIS_DB_NR: "0"
|
|
FLEXMEASURES_REDIS_PASSWORD: "${FLEXMEASURES_REDIS_PASSWORD:-Digitribe972}"
|
|
LOGGING_LEVEL: INFO
|
|
networks:
|
|
- traefik_network
|
|
mem_limit: 2g
|
|
cpus: 2
|
|
|
|
volumes:
|
|
flexmeasures_db_data:
|
|
driver: local
|
|
flexmeasures_redis_data:
|
|
driver: local
|
|
|
|
networks:
|
|
traefik_network:
|
|
name: traefik-public
|
|
external: true
|