Files
smart-city-digital-twin-mar…/docker-compose.metabase.yml
Eric FELIXINE 7df2f6798f feat: deploy Superset and Metabase behind Traefik
- Superset: docker-compose.superset.yml (app + postgres + redis)
  URL: https://superset.digitribe.fr
  Port: 8088 (internal), Traefik routes Host(superset.digitribe.fr)

- Metabase: docker-compose.metabase.yml (app + postgres)
  URL: https://metabase.digitribe.fr
  Port: 3000 (internal), Traefik routes Host(metabase.digitribe.fr)

- Traefik configs: 31-superset.yml, 32-metabase.yml
- Both services use smartcity-shared and traefik-public networks
- Both use letsencrypt TLS certificates

Verified:
- Superset: UP healthy, accessible via https://superset.digitribe.fr
- Metabase: UP healthy, accessible via https://metabase.digitribe.fr
2026-05-25 22:59:25 -04:00

72 lines
2.0 KiB
YAML

# Metabase - BI Dashboard for Smart City Digital Twin
# Usage: docker compose -f docker-compose.metabase.yml up -d
# Access: https://metabase.digitribe.fr
version: '3.8'
networks:
smartcity-shared:
external: true
traefik-public:
external: true
volumes:
metabase_data:
name: smart-city-metabase-data
services:
metabase-db:
image: postgres:15-alpine
container_name: metabase-postgres
restart: unless-stopped
networks:
- smartcity-shared
environment:
POSTGRES_DB: metabase
POSTGRES_USER: metabase
POSTGRES_PASSWORD: Digitribe972
volumes:
- metabase_data:/var/lib/postgresql/data
healthcheck:
test: ["CMD-SHELL", "pg_isready -U metabase"]
interval: 10s
timeout: 5s
retries: 5
metabase:
image: metabase/metabase:latest
container_name: metabase-app
restart: unless-stopped
networks:
- smartcity-shared
- traefik-public
depends_on:
metabase-db:
condition: service_healthy
environment:
MB_DB_TYPE: postgres
MB_DB_DBNAME: metabase
MB_DB_PORT: 5432
MB_DB_USER: metabase
MB_DB_PASS: Digitribe972
MB_DB_HOST: metabase-postgres
MB_SITE_NAME: "Smart City Martinique"
MB_SITE_URL: "https://metabase.digitribe.fr"
MB_APPLICATION_DB: "file:/metabase-data/metabase.db"
MB_ENABLE_PASSWORD_LOGIN: "true"
MB_ADMIN_EMAIL: admin@digitribe.fr
MB_ADMIN_PASSWORD: Digitribe972
MB_JETTY_PORT: 3000
labels:
- "traefik.enable=true"
- "traefik.http.routers.metabase.rule=Host(`metabase.digitribe.fr`)"
- "traefik.http.routers.metabase.entrypoints=websecure"
- "traefik.http.routers.metabase.tls.certresolver=letsencrypt"
- "traefik.http.services.metabase.loadbalancer.server.port=3000"
healthcheck:
test: ["CMD-SHELL", "curl -f http://localhost:3000/api/health || exit 1"]
interval: 30s
timeout: 10s
retries: 5
start_period: 120s