agreg-server/server/docker-compose.yml

115 lines
3.4 KiB
YAML
Raw Normal View History

services:
consumer:
build: ./backend
2026-05-10 12:36:38 +02:00
image: simugaz/backend:latest
command: consumer.py
restart: unless-stopped
networks:
- lora-gateway_mqtt
2026-05-08 17:02:06 +02:00
- database
env_file: env_files/consumer.env
2026-05-08 17:02:06 +02:00
2026-05-10 12:36:38 +02:00
api:
build: ./backend
2026-05-10 12:36:38 +02:00
image: simugaz/backend:latest
command: api.py
restart: unless-stopped
networks:
2026-05-30 18:02:32 +02:00
- traefik
2026-05-10 12:36:38 +02:00
- database
env_file: env_files/api.env
2026-05-30 18:02:32 +02:00
labels:
- traefik.enable=true
2026-05-30 19:44:52 +02:00
- traefik.http.services.api-simugaz.loadbalancer.server.port=8000
- traefik.http.routers.api-simugaz-https.rule=Host(`api.agreg.ungol.fr`)
- traefik.http.routers.api-simugaz-https.entrypoints=websecure
- traefik.http.routers.api-simugaz-https.tls=true
- traefik.http.routers.api-simugaz-https.tls.certresolver=letsencrypt
- traefik.http.routers.api-simugaz-https.service=api-simugaz
2026-05-10 12:36:38 +02:00
webui:
build: ./frontend
image: simugaz/frontend:latest
2026-05-12 14:46:25 +02:00
restart: unless-stopped
networks:
2026-05-30 18:02:32 +02:00
- traefik
depends_on:
- api
2026-05-30 18:02:32 +02:00
labels:
- traefik.enable=true
2026-05-30 19:44:52 +02:00
- traefik.http.services.webui.loadbalancer.server.port=80
- traefik.http.routers.webui-https.rule=Host(`demo.agreg.ungol.fr`)
- traefik.http.routers.webui-https.entrypoints=websecure
- traefik.http.routers.webui-https.tls=true
- traefik.http.routers.webui-https.tls.certresolver=letsencrypt
- traefik.http.routers.webui-https.service=webui
2026-05-08 17:02:06 +02:00
db:
image: postgres:18-alpine
restart: unless-stopped
volumes:
- ./initdb:/docker-entrypoint-initdb.d:ro
2026-05-08 17:02:06 +02:00
- db:/var/lib/postgresql
networks:
- database
env_file: env_files/db.env
2026-05-08 17:02:06 +02:00
pgadmin:
image: dpage/pgadmin4:latest
restart: unless-stopped
ports:
- 8081:80
networks:
- public
- database
volumes:
- ./servers.json:/pgadmin4/servers.json
env_file: env_files/pgadmin.env
2026-05-30 18:02:32 +02:00
traefik:
image: traefik:3
command:
- "--api=false"
- "--api.dashboard=false"
- "--api.insecure=false"
- "--providers.docker=true"
- "--providers.docker.exposedbydefault=false"
- "--providers.docker.network=traefik_public"
- "--providers.file=true"
- "--providers.file.directory=/rules"
- "--providers.file.watch=true"
- "--entryPoints.web.address=:80"
- "--entrypoints.web.http.redirections.entryPoint.to=websecure"
- "--entrypoints.web.http.redirections.entryPoint.scheme=https"
- "--entryPoints.websecure.address=:443"
- "--entrypoints.websecure.http3={}"
- "--certificatesresolvers.letsencrypt.acme.dnschallenge=true"
- "--certificatesresolvers.letsencrypt.acme.dnschallenge.provider=ovh"
- "--certificatesresolvers.letsencrypt.acme.dnschallenge.delayBeforeCheck=0"
- "--certificatesresolvers.letsencrypt.acme.caserver=https://acme-v02.api.letsencrypt.org/directory"
- "--certificatesresolvers.letsencrypt.acme.email="
- "--certificatesresolvers.letsencrypt.acme.storage=/letsencrypt/acme.json"
env_file: env_files/traefik.env
networks:
- traefik
- public
ports:
- 80:80
- 443:443
volumes:
- /var/run/docker.sock:/var/run/docker.sock:ro
- certificates:/letsencrypt:rw
2026-05-08 17:02:06 +02:00
volumes:
2026-05-30 18:02:32 +02:00
certificates:
2026-05-08 17:02:06 +02:00
db:
networks:
2026-05-08 17:02:06 +02:00
public:
database:
internal: true
lora-gateway_mqtt:
2026-05-30 18:02:32 +02:00
external: true
traefik:
internal: true