Files
edr-platform/docker-compose.yaml
2026-08-17 12:53:08 +00:00

151 lines
4.6 KiB
YAML

# EDR Platform — application containers only (no Postgres).
# Requires a local .npmrc with GitHub Packages auth for @tria-plc (freight API + freight web).
# Copy apps/*/env.example to .env and set real values before `docker compose up`.
#
# Build: DOCKER_BUILDKIT=1 docker compose build
services:
freight-api:
build:
context: .
dockerfile: apps/edr-freight-api/Dockerfile
ports:
- "${FREIGHT_API_PORT:-3001}:${FREIGHT_API_PORT:-3001}"
env_file:
- apps/edr-freight-api/.env
extra_hosts:
- "paymentcallback.triaplc.com:10.18.7.179"
restart: always
gps-tracker:
build:
context: .
dockerfile: apps/edr-gps-tracker/Dockerfile
ports:
- "${GT06_TCP_PORT:-5023}:5023"
environment:
GT06_TCP_PORT: "5023"
GT06_TCP_HOST: "0.0.0.0"
env_file:
- apps/edr-gps-tracker/.env
restart: always
passenger-api:
build:
context: .
dockerfile: apps/edr-passenger-api/Dockerfile
ports:
- "${PASSENGER_API_PORT:-4000}:${PASSENGER_API_PORT:-4000}"
env_file:
- apps/edr-passenger-api/.env
extra_hosts:
- "paymentcallback.triaplc.com:10.18.7.179"
restart: always
freight-portal:
build:
context: .
dockerfile: infrastructure/docker/Dockerfile.web
args:
TURBO_FILTER: "@edr/freight-portal"
APP_PATH: apps/edr-freight-web/portal
VITE_API_URL: ${VITE_API_URL:-}
VITE_BASE_API_URL: ${VITE_BASE_API_URL:-}
VITE_USER_MANAGEMENT_BASE: ${VITE_USER_MANAGEMENT_BASE:-}
VITE_GOOGLE_MAPS_API_KEY: ${VITE_GOOGLE_MAPS_API_KEY:-}
VITE_POSTHOG_KEY: ${VITE_POSTHOG_KEY:-}
VITE_POSTHOG_HOST: ${VITE_POSTHOG_HOST:-}
ports:
- "${FREIGHT_PORTAL_PORT:-5173}:80"
restart: always
freight-backoffice:
build:
context: .
dockerfile: infrastructure/docker/Dockerfile.web
args:
TURBO_FILTER: "@edr/freight-backoffice"
APP_PATH: apps/edr-freight-web/backoffice
VITE_API_URL: ${VITE_API_URL:-}
VITE_BASE_API_URL: ${VITE_BASE_API_URL:-}
VITE_USER_MANAGEMENT_BASE: ${VITE_USER_MANAGEMENT_BASE:-}
VITE_GOOGLE_MAPS_API_KEY: ${VITE_GOOGLE_MAPS_API_KEY:-}
VITE_POSTHOG_KEY: ${VITE_POSTHOG_KEY:-}
VITE_POSTHOG_HOST: ${VITE_POSTHOG_HOST:-}
ports:
- "${FREIGHT_BACKOFFICE_PORT:-5183}:80"
restart: always
passenger-portal:
build:
context: .
dockerfile: infrastructure/docker/Dockerfile.passenger-web
args:
APP_PACKAGE: "@edr/passenger-portal"
APP_PATH: apps/edr-passenger-web/portal
NEXT_PUBLIC_API_URL: ${NEXT_PUBLIC_API_URL:-}
ports:
- "${PASSENGER_PORTAL_PORT:-5174}:${PASSENGER_PORTAL_PORT:-5174}"
env_file:
- apps/edr-passenger-web/portal/.env
restart: always
passenger-backoffice:
build:
context: .
dockerfile: infrastructure/docker/Dockerfile.passenger-web
args:
APP_PACKAGE: "@edr/passenger-backoffice"
APP_PATH: apps/edr-passenger-web/backoffice
NEXT_PUBLIC_API_URL: ${NEXT_PUBLIC_API_URL:-}
ports:
- "${PASSENGER_BACKOFFICE_PORT:-5184}:${PASSENGER_BACKOFFICE_PORT:-5184}"
env_file:
- apps/edr-passenger-web/backoffice/.env
restart: always
payment-api:
build:
context: .
dockerfile: apps/edr-payment-api/Dockerfile
args:
APP_PACKAGE: "@edr/payment-api"
APP_PATH: apps/edr-payment-api
ports:
- "${PAYMENT_API_PORT:-3008}:${PAYMENT_API_PORT:-3008}"
env_file:
- apps/edr-payment-api/.env
restart: always
# Internal employee chat (freight backoffice). No federation, no public
# registration — see infrastructure/matrix/synapse/homeserver.yaml.tmpl.
synapse:
build:
context: infrastructure/matrix/synapse
ports:
- "${SYNAPSE_PORT:-8008}:8008"
env_file:
- infrastructure/matrix/synapse/.env
volumes:
- matrix-data:/data
# Local dev: Postgres runs in the separate docker-compose.db.dev.yml
# project (different docker network) and is only reachable from here via
# the host's published port — see MATRIX_DB_HOST in synapse/.env.example.
extra_hosts:
- "host.docker.internal:host-gateway"
restart: always
element-web:
build:
context: infrastructure/matrix/element
ports:
- "${ELEMENT_WEB_PORT:-8080}:80"
# config.json is rendered at container start, not baked — one image serves
# dev, staging and prod. See infrastructure/matrix/element/.env.example.
env_file:
- infrastructure/matrix/element/.env
restart: always
volumes:
matrix-data: