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
This commit is contained in:
71
docker-compose.metabase.yml
Normal file
71
docker-compose.metabase.yml
Normal file
@@ -0,0 +1,71 @@
|
||||
# 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
|
||||
Reference in New Issue
Block a user