- Activity log: import_log DB table, GET /activity endpoint, collapsible panel in Update Data tab showing who changed what score and when - Sync logging: Box syncs now also write to import_log with before/after scores - Multilingual: ES, PT, IT, PL UI strings in i18n/ui.js; content translations (pillars, scoring labels, About tab) in clients/adeo/config.json; language switcher upgraded from EN/FR toggle to 6-language dropdown - cfg() and pillarDisplayName() generalised to support any language (not just FR) - import_file.py: reads 'Final QA ...' column first (falls back to Score) so QA-updated XLSX files produce the correct overall score on import - convert_data.py/docker-compose: use ADEO_DATA_ROOT env var for Box path Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
49 lines
1.6 KiB
YAML
49 lines
1.6 KiB
YAML
# Top-level project name pinned per the global Docker policy — prevents
|
|
# collision with other apps deployed under /opt that share a parent dir name.
|
|
name: adeo-maturity-tool
|
|
|
|
services:
|
|
db:
|
|
image: postgres:16-alpine
|
|
restart: unless-stopped
|
|
environment:
|
|
POSTGRES_DB: ${DB_NAME:-adeo_maturity}
|
|
POSTGRES_USER: ${DB_USER:-adeo}
|
|
POSTGRES_PASSWORD: ${DB_PASSWORD}
|
|
# Host port resolved by deploy/deploy.sh (preferred 5435, scans 5435-5499).
|
|
# Bind to 127.0.0.1 only — only the app container needs DB access.
|
|
ports:
|
|
- "127.0.0.1:${ADEO_DB_PORT:-5435}:5432"
|
|
volumes:
|
|
- pgdata:/var/lib/postgresql/data
|
|
healthcheck:
|
|
test: ["CMD-SHELL", "pg_isready -U ${DB_USER:-adeo} -d ${DB_NAME:-adeo_maturity}"]
|
|
interval: 5s
|
|
timeout: 5s
|
|
retries: 10
|
|
|
|
app:
|
|
build:
|
|
context: .
|
|
dockerfile: Dockerfile
|
|
restart: unless-stopped
|
|
depends_on:
|
|
db:
|
|
condition: service_healthy
|
|
# Host port resolved by deploy/deploy.sh (preferred 3102, scans 3102-3199).
|
|
ports:
|
|
- "127.0.0.1:${ADEO_PORT:-3102}:3102"
|
|
environment:
|
|
- PORT=3102
|
|
- NODE_ENV=production
|
|
- DATABASE_URL=postgres://${DB_USER:-adeo}:${DB_PASSWORD}@db:5432/${DB_NAME:-adeo_maturity}
|
|
- AUTH_SECRET=${AUTH_SECRET}
|
|
- COOKIE_PATH=${COOKIE_PATH:-/}
|
|
- COOKIE_SECURE=${COOKIE_SECURE:-true}
|
|
- ADEO_DATA_ROOT=/data/adeo
|
|
volumes:
|
|
- ./clients:/app/clients
|
|
- ${BOX_ROOT:-/Users/phildore/Library/CloudStorage/Box-Box/ADEO_EXTERNAL_SHARE}:/data/adeo:ro
|
|
|
|
volumes:
|
|
pgdata:
|