Files
cariflex/snapshots/20260615_final/config/docker-compose-citrineos.yml

172 lines
4.9 KiB
YAML

version: '3.8'
services:
citrineos-server:
image: ghcr.io/citrineos/citrineos-server:latest
container_name: cariflex-citrineos-server
restart: unless-stopped
environment:
APP_NAME: "all"
APP_ENV: "docker"
AWS_REGION: us-east-1
AWS_ACCESS_KEY_ID: minioadmin
AWS_SECRET_ACCESS_KEY: minioadmin
DB_STRATEGY: "migrate"
BOOTSTRAP_CITRINEOS_DATABASE_HOST: "cariflex-citrineos-db"
BOOTSTRAP_CITRINEOS_CONFIG_FILENAME: "config.json"
BOOTSTRAP_CITRINEOS_FILE_ACCESS_TYPE: "local"
BOOTSTRAP_CITRINEOS_FILE_ACCESS_LOCAL_FILE_PATH: "/data"
CONFIG_CITRINEOS_WIPE_FILE_ON_START: "true"
depends_on:
cariflex-citrineos-db:
condition: service_healthy
cariflex-amqp:
condition: service_healthy
volumes:
- citrineos-data:/data
ports:
- "8081:8080"
networks:
- cariflex-internal
cariflex-citrineos-db:
image: postgis/postgis:16-3.5
container_name: cariflex-citrineos-db
restart: unless-stopped
environment:
POSTGRES_DB: citrine
POSTGRES_USER: citrine
POSTGRES_PASSWORD: citrine
volumes:
- citrineos-db-data:/var/lib/postgresql/data
healthcheck:
test: pg_isready --username=citrine
interval: 5s
timeout: 10s
retries: 5
networks:
- cariflex-internal
cariflex-amqp:
image: rabbitmq:3-management
container_name: cariflex-amqp
networks:
cariflex-internal:
aliases:
- amqp-broker
traefik-public:
restart: unless-stopped
environment:
RABBITMQ_DEFAULT_USER: guest
RABBITMQ_DEFAULT_PASS: guest
labels:
- "traefik.enable=true"
- "traefik.http.routers.rabbitmq.rule=Host(`amqp.digitribe.fr`)"
- "traefik.http.routers.rabbitmq.entrypoints=websecure"
- "traefik.http.routers.rabbitmq.tls.certresolver=letsencrypt"
- "traefik.http.services.rabbitmq.loadbalancer.server.port=15672"
volumes:
- citrineos-amqp-data:/var/lib/rabbitmq
healthcheck:
test: rabbitmq-diagnostics -q ping
interval: 15s
timeout: 10s
retries: 10
start_period: 30s
hasura:
image: hasura/graphql-engine:v2.40.0
container_name: cariflex-hasura
restart: unless-stopped
ports:
- "8082:8080"
environment:
HASURA_GRAPHQL_DATABASE_URL: "postgresql://citrine:citrine@cariflex-citrineos-db:5432/citrine"
HASURA_GRAPHQL_ENABLE_CONSOLE: "true"
HASURA_GRAPHQL_DEV_MODE: "true"
HASURA_GRAPHQL_ADMIN_SECRET: "Digitribe972"
HASURA_GRAPHQL_UNAUTHORIZED_ROLE: "anonymous"
depends_on:
cariflex-citrineos-db:
condition: service_healthy
labels:
- "traefik.enable=true"
- "traefik.http.routers.hasura.rule=Host(`hasura.digitribe.fr`)"
- "traefik.http.routers.hasura.entrypoints=websecure"
- "traefik.http.routers.hasura.tls.certresolver=letsencrypt"
- "traefik.http.services.hasura.loadbalancer.server.port=8080"
networks:
- traefik-public
- cariflex-internal
citrineos-operator-ui:
image: citrineos-core-main-citrine-ui:latest
container_name: cariflex-citrineos-operator-ui
restart: unless-stopped
ports:
- "3002:3000"
environment:
NEXTAUTH_SECRET: Digitribe972
ADMIN_PASSWORD: Digitribe972
depends_on:
- hasura
labels:
- "traefik.enable=true"
- "traefik.http.routers.citrineos-ui.rule=Host(`citrineos.digitribe.fr`)"
- "traefik.http.routers.citrineos-ui.entrypoints=websecure"
- "traefik.http.routers.citrineos-ui.tls.certresolver=letsencrypt"
- "traefik.http.services.citrineos-ui.loadbalancer.server.port=3000"
networks:
- traefik-public
- cariflex-internal
# === EVerest MQTT + NodeRED (UI de contrôle) ===
everest-mqtt:
image: ghcr.io/everest/everest-demo/mqtt-server:0.0.16
container_name: cariflex-everest-mqtt
restart: unless-stopped
networks:
- cariflex-internal
everest-nodered:
image: ghcr.io/everest/everest-demo/nodered:0.0.16
container_name: cariflex-everest-nodered
restart: unless-stopped
depends_on:
- everest-mqtt
environment:
- MQTT_SERVER_ADDRESS=everest-mqtt
- FLOWS=/config/config-sil-two-evse-flow.json
networks:
- cariflex-internal
ports:
- "1880:1880"
# === OCPP 2.0.1 Simulators ===
ocpp-simulator:
build:
context: /home/eric/cariflex/scripts
dockerfile: Dockerfile.simulator
container_name: cariflex-ocpp-simulator
restart: unless-stopped
environment:
OCPP_HOST: "cariflex-citrineos-server"
OCPP_PORT: "8082"
networks:
- cariflex-internal
volumes:
citrineos-data:
driver: local
citrineos-db-data:
driver: local
citrineos-amqp-data:
driver: local
networks:
traefik-public:
external: true
cariflex-internal:
name: config_cariflex-internal
external: true