x-default-logging: &default-logging logging: options: max-size: "100m" max-file: "5" driver: json-file x-ignition-opts: &ignition-opts <<: *default-logging image: inductiveautomation/ignition:${IGNITION_VERSION:-latest} env_file: gw-init/gateway.env secrets: - gateway-admin-password name: DCFramework-ServerStack # Change Name for You Environment services: proxy: image: traefik:2.9 container_name: proxy restart: always ports: - 80:80 environment: # https://docs.traefik.io/reference/static-configuration/env/ - TRAEFIK_ENTRYPOINTS_WEB_ADDRESS=:80 - TRAEFIK_API_DASHBOARD=true - TRAEFIK_PROVIDERS_DOCKER=true - TRAEFIK_PROVIDERS_DOCKER_EXPOSEDBYDEFAULT=true - TRAEFIK_PROVIDERS_DOCKER_NETWORK=proxy - TRAEFIK_PROVIDERS_DOCKER_ALLOWEMPTYSERVICES=true labels: traefik.enable: "true" traefik.http.routers.proxy.entrypoints: "web" traefik.http.routers.proxy.rule: "Host(`proxy.localtest.me`)" traefik.http.routers.proxy.service: "api@internal" volumes: - /var/run/docker.sock:/var/run/docker.sock:ro networks: - default - proxy dcframe1-hmi1: <<: *ignition-opts build: context: . args: - IGNITION_VERSION=${IGNITION_VERSION:-8.3.1} dockerfile: ./gw-build/Dockerfile # Edit this file to add new third party modules user: 0:0 container_name: dcframe1-hmi1 pull_policy: missing labels: traefik.enable: "true" traefik.http.routers.dcframe1.entrypoints: "web" traefik.http.routers.dcframe1.rule: "Host(`${GATEWAY1_HOSTNAME}`)" traefik.http.services.dcframe1.loadbalancer.server.port: "8088" ports: - 8088:8088 # Main Ignition Web Port - 1883:1883 # Main MQTT Port - 8060:8060 # Main Ignition Gateway Port # Reference Ignition Documentation for reference to these commands and their uses. command: > -n dcframe-hmi1 -m ${GATEWAY_MAX_MEMORY:-1024} volumes: - dcframe1-hmi1-data:/usr/local/bin/ignition/data # Needed for Startup - ./config/dcframe1-hmi1:/usr/local/bin/ignition/data/config:rw # To Allow for access to config files - ./project/dcframe1-hmi1:/usr/local/bin/ignition/data/projects:rw # To Allow access to project files networks: - default - proxy dcframe-db: image: postgres container_name: dcframe-db labels: traefik.enable: "true" traefik.http.routers.dcframe1-database.entrypoints: "web" traefik.http.routers.dcframe1-database.rule: "Host(`dcframe-database.localtest.me`)" traefik.http.services.dcframe1-database.loadbalancer.server.port: "5432" ports: - 5432:5432 # If you want to preload the database with a DDL script, uncomment the following lines and add your DDL script to the ./ddl folder # volumes: # - ./ddl:/docker-entrypoint-initdb.d environment: POSTGRES_PASSWORD: password POSTGRES_USER: ignition POSTGRES_DB: ignition # Allow connections from Docker network POSTGRES_HOST_AUTH_METHOD: trust # ⚠️ Dev only - allows all connections without password # OR for password-based auth from all hosts: # POSTGRES_HOST_AUTH_METHOD: md5 command: - "postgres" - "-c" - "listen_addresses=*" volumes: - dcframe-db-data:/var/lib/postgresql/data networks: - default - proxy networks: default: proxy: name: proxy secrets: gateway-admin-password: file: gw-secret/GATEWAY_ADMIN_PASSWORD volumes: logs: driver: local dcframe1-hmi1-data: dcframe-db-data: