services: consumer: build: ./backend image: simugaz/backend:latest command: consumer.py restart: unless-stopped networks: - lora-gateway_mqtt - database env_file: consumer.env api: build: ./backend image: simugaz/backend:latest command: api.py restart: unless-stopped ports: - 8000:8000 networks: - public - database env_file: api.env webui: build: ./frontend image: simugaz/frontend:latest restart: unless-stopped ports: - 3000:80 networks: - public depends_on: - api db: image: postgres:18-alpine restart: unless-stopped volumes: - ./initdb:/docker-entrypoint-initdb.d:ro - db:/var/lib/postgresql networks: - database environment: - POSTGRES_USER=simugaz - POSTGRES_PASSWORD=simugaz - POSTGRES_DB=simugaz pgadmin: image: dpage/pgadmin4:latest restart: unless-stopped ports: - 8081:80 networks: - public - database volumes: - ./servers.json:/pgadmin4/servers.json environment: PGADMIN_DEFAULT_EMAIL: admin@example.com PGADMIN_DEFAULT_PASSWORD: changeme volumes: db: networks: public: database: internal: true lora-gateway_mqtt: external: true