feat: MapStore ↔ GeoServer integration + Pulsar Manager v0.2.0

- Connect GeoServer to smartcity-shared network (alias: geoserver)
- Connect mapstore-app to smartcity-shared network
- Add digitribe_wms/wmts/rest services in MapStore localConfig.json
- Deploy Pulsar Manager with PostgreSQL backend + custom supervisord.conf
- Fix Redpanda Traefik config (console instead of broker port)
- Create mapstore/ docker-compose with volume mounts for persistence
This commit is contained in:
Eric FELIXINE
2026-05-05 21:12:32 -04:00
parent 3f06298819
commit 75ee75f036
6 changed files with 1761 additions and 16 deletions

View File

@@ -0,0 +1,34 @@
[supervisord]
nodaemon=true
logfile=/tmp/supervisord.log
logfile_maxbytes=50MB
logfile_backups=10
pidfile=/tmp/supervisord.pid
[program:pulsar-manager-frontend]
command=sh -c "cd /pulsar-manager/pulsar-manager/ui && npm start"
autostart=true
autorestart=true
stdout_logfile=/dev/stdout
stdout_logfile_maxbytes=0
stderr_logfile=/dev/stderr
stderr_logfile_maxbytes=0
[program:pulsar-manager-backend]
command=/pulsar-manager/pulsar-manager/bin/pulsar-manager \
--redirect.host=%(ENV_REDIRECT_HOST)s \
--redirect.port=%(ENV_REDIRECT_PORT)s \
--spring.datasource.driver-class-name=%(ENV_DRIVER_CLASS_NAME)s \
--spring.datasource.url=%(ENV_URL)s \
--spring.datasource.username=%(ENV_USERNAME)s \
--spring.datasource.password=%(ENV_PASSWORD)s \
--spring.datasource.initialization-mode=%(ENV_INITIALIZATION_MODE)s \
--logging.level.org.apache=%(ENV_LOG_LEVEL)s
environment=ENV_REDIRECT_HOST="%(ENV_REDIRECT_HOST)s",ENV_REDIRECT_PORT="%(ENV_REDIRECT_PORT)s",ENV_DRIVER_CLASS_NAME="%(ENV_DRIVER_CLASS_NAME)s",ENV_URL="%(ENV_URL)s",ENV_USERNAME="%(ENV_USERNAME)s",ENV_PASSWORD="%(ENV_PASSWORD)s",ENV_INITIALIZATION_MODE="%(ENV_INITIALIZATION_MODE)s",ENV_LOG_LEVEL="%(ENV_LOG_LEVEL)s"
user=root
autostart=true
autorestart=true
stdout_logfile=/dev/stdout
stdout_logfile_maxbytes=0
stderr_logfile=/dev/stderr
stderr_logfile_maxbytes=0

View File

@@ -1,27 +1,51 @@
# Pulsar Manager - Web UI for managing Pulsar
# Access: https://pulsar.digitribe.fr
version: '3.8'
# Pulsar Manager - Web UI pour Apache Pulsar Standalone
# Accès: https://pulsar.digitribe.fr
services:
pulsar-manager-db:
image: postgres:15-alpine
container_name: smart-city-pulsar-manager-db
restart: unless-stopped
environment:
POSTGRES_USER: superset
POSTGRES_PASSWORD: Digitribe972
POSTGRES_DB: pulsar_manager
volumes:
- pulsar-manager-db-data:/var/lib/postgresql/data
networks:
- pulsar-manager-net
healthcheck:
test: ["CMD-SHELL", "pg_isready -U superset"]
interval: 10s
timeout: 5s
retries: 5
pulsar-manager:
image: apachepulsar/pulsar-manager:v0.4.0
image: apachepulsar/pulsar-manager:v0.2.0
container_name: smart-city-pulsar-manager
restart: unless-stopped
depends_on:
pulsar:
pulsar-manager-db:
condition: service_healthy
environment:
- PULSAR_CLUSTER_NAME=standalone
- PULSAR_SERVICE_URL=pulsar://smart-city-pulsar:6650
- PULSAR_WEB_SERVICE_URL=http://smart-city-pulsar:8080
- SPRING_APPLICATION_JSON={"server":{"port":7750},"pulsar":{"cluster":"standalone","serviceUrl":"pulsar://smart-city-pulsar:6650","webServiceUrl":"http://smart-city-pulsar:8080"}}
# Variables mappées par supervisord.conf custom
REDIRECT_HOST: pulsar.digitribe.fr
REDIRECT_PORT: "443"
DRIVER_CLASS_NAME: org.postgresql.Driver
URL: jdbc:postgresql://pulsar-manager-db:5432/pulsar_manager
USERNAME: superset
PASSWORD: Digitribe972
INITIALIZATION_MODE: embedded
LOG_LEVEL: INFO
volumes:
- ./config/supervisord-manager.conf:/etc/supervisord.conf:ro
networks:
- pulsar-manager-net
- traefik-public
- smartcity-shared
ports:
- "7750:7750"
healthcheck:
test: ["CMD-SHELL", "curl -sf http://localhost:7750 || exit 1"]
test: ["CMD-SHELL", "wget -qO- http://localhost:7750 || exit 1"]
interval: 30s
timeout: 10s
retries: 5
@@ -32,14 +56,15 @@ services:
- "traefik.http.routers.pulsar-manager.entrypoints=websecure"
- "traefik.http.routers.pulsar-manager.tls=true"
- "traefik.http.services.pulsar-manager.loadbalancer.server.port=7750"
# Redirect /admin and /ws to Pulsar standalone
- "traefik.http.routers.pulsar.rule=Host(`pulsar.digitribe.fr`) && PathPrefix(`/admin`, `/ws`, `/lookup`)"
- "traefik.http.routers.pulsar.entrypoints=websecure"
- "traefik.http.routers.pulsar.tls=true"
- "traefik.http.services.pulsar.loadbalancer.server.port=8080"
networks:
pulsar-manager-net:
name: pulsar-manager-net
driver: bridge
traefik-public:
external: true
smartcity-shared:
external: true
volumes:
pulsar-manager-db-data: