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_DEFAULT_FILE_PATH: "/data" CONFIG_CITRINEOS_WIPE_FILE_ON_START: "true" depends_on: cariflex-citrineos-db: condition: service_healthy cariflex-amqp: condition: service_healthy ports: - "8081:8080" labels: - "traefik.enable=true" - "traefik.http.routers.citrineos.rule=Host(`citrineos.digitribe.fr`)" - "traefik.http.routers.citrineos.entrypoints=websecure" - "traefik.http.routers.citrineos.tls.certresolver=letsencrypt" - "traefik.http.services.citrineos.loadbalancer.server.port=8080" volumes: - citrineos-data:/data healthcheck: test: ["CMD-SHELL", "node -e \"const net = require('net'); const c = net.createConnection(8080, '127.0.0.1', () => { c.end(); process.exit(0); }); c.on('error', () => process.exit(1));\""] interval: 30s timeout: 10s retries: 5 networks: - traefik-public - 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 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 networks: - traefik-public - cariflex-internal citrineos-operator-ui: build: context: /home/eric/citrineos/citrineos-operator-ui dockerfile: Dockerfile container_name: cariflex-citrineos-operator-ui restart: unless-stopped ports: - "3002:3000" environment: - NODE_ENV=production - PORT=3000 - HOSTNAME=0.0.0.0 depends_on: - citrineos-server 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 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