mirror of
https://github.com/Tria-plc/edr-platform.git
synced 2026-08-26 12:41:04 +00:00
151 lines
4.6 KiB
YAML
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:
|