Files
smart-city-digital-twin-mar…/docker-compose.chirpstack.yml
Eric FELIXINE 5fde1a2c8d feat(lorawan): démarrage ChirpStack et The Things Stack
- ChirpStack opérationnel (port 8080/8090, gateway bridge UDP 1700)
- The Things Stack opérationnel (port 1885/1884, gateway UDP 1701)
- Fichages de configuration créés
- Docker-compose corrigés (réseaux smartcity-shared)
- Désactivation agentLink sur 35 assets du simulateur
- Correction _or_put: suppression If-Match header (403)
- realm smartcity identifié pour les assets du simulateur
2026-05-12 17:34:53 -04:00

124 lines
4.3 KiB
YAML

version: "3.8"
# =============================================================================
# ChirpStack LoRaWAN Network Server — Smart City Digital Twin
# =============================================================================
# Déploiement derrière Traefik avec sous-domaines dédiés
# Subdomaines:
# - chirpstack.digitribe.fr → Console web (port 8080)
# - chirpstack-api.digitribe.fr → REST API (port 8090)
# - chirpstack-ws.digitribe.fr → Gateway Bridge WebSocket (port 3001)
# =============================================================================
services:
chirpstack:
image: chirpstack/chirpstack:4
command: -c /etc/chirpstack
restart: unless-stopped
volumes:
- ./configuration/chirpstack:/etc/chirpstack
depends_on:
- postgres
- mosquitto
- redis
environment:
- MQTT_BROKER_HOST=mosquitto
- REDIS_HOST=redis
- POSTGRESQL_HOST=postgres
labels:
- "traefik.enable=true"
- "traefik.http.routers.chirpstack.rule=Host(`chirpstack.digitribe.fr`)"
- "traefik.http.routers.chirpstack.entrypoints=websecure"
- "traefik.http.routers.chirpstack.tls.certresolver=letsencrypt"
- "traefik.http.services.chirpstack.loadbalancer.server.port=8080"
networks:
- traefik-public
- smartcity-shared
chirpstack-gateway-bridge:
image: chirpstack/chirpstack-gateway-bridge:4
restart: unless-stopped
ports:
- "1700:1700/udp"
volumes:
- ./configuration/chirpstack-gateway-bridge:/etc/chirpstack-gateway-bridge
environment:
- INTEGRATION__MQTT__EVENT_TOPIC_TEMPLATE=eu868/gateway/{{ .GatewayID }}/event/{{ .EventType }}
- INTEGRATION__MQTT__STATE_TOPIC_TEMPLATE=eu868/gateway/{{ .GatewayID }}/state/{{ .StateType }}
- INTEGRATION__MQTT__COMMAND_TOPIC_TEMPLATE=eu868/gateway/{{ .GatewayID }}/command/#
depends_on:
- mosquitto
networks:
- smartcity-shared
chirpstack-gateway-bridge-basicstation:
image: chirpstack/chirpstack-gateway-bridge:4
restart: unless-stopped
command: -c /etc/chirpstack-gateway-bridge/chirpstack-gateway-bridge-basicstation-eu868.toml
labels:
- "traefik.enable=true"
- "traefik.http.routers.chirpstack-ws.rule=Host(`chirpstack-ws.digitribe.fr`)"
- "traefik.http.routers.chirpstack-ws.entrypoints=websecure"
- "traefik.http.routers.chirpstack-ws.tls.certresolver=letsencrypt"
- "traefik.http.services.chirpstack-ws.loadbalancer.server.port=3001"
volumes:
- ./configuration/chirpstack-gateway-bridge:/etc/chirpstack-gateway-bridge
depends_on:
- mosquitto
networks:
- traefik-public
- smartcity-shared
chirpstack-rest-api:
image: chirpstack/chirpstack-rest-api:4
restart: unless-stopped
command: --server chirpstack:8080 --bind 0.0.0.0:8090 --insecure
labels:
- "traefik.enable=true"
- "traefik.http.routers.chirpstack-api.rule=Host(`chirpstack-api.digitribe.fr`)"
- "traefik.http.routers.chirpstack-api.entrypoints=websecure"
- "traefik.http.routers.chirpstack-api.tls.certresolver=letsencrypt"
- "traefik.http.services.chirpstack-api.loadbalancer.server.port=8090"
depends_on:
- chirpstack
networks:
- traefik-public
- smartcity-shared
postgres:
image: postgres:14-alpine
restart: unless-stopped
volumes:
- ./configuration/postgresql/initdb:/docker-entrypoint-initdb.d
- chirpstack-postgresqldata:/var/lib/postgresql/data
environment:
- POSTGRES_USER=chirpstack
- POSTGRES_PASSWORD=chirpstack
- POSTGRES_DB=chirpstack
networks:
- smartcity-shared
redis:
image: redis:7-alpine
restart: unless-stopped
command: redis-server --save 300 1 --save 60 100 --appendonly no
volumes:
- chirpstack-redisdata:/data
networks:
- smartcity-shared
mosquitto:
image: eclipse-mosquitto:2
restart: unless-stopped
volumes:
- ./configuration/mosquitto/config/:/mosquitto/config/
- chirpstack-mosquitto-data:/mosquitto/data
- chirpstack-mosquitto-log:/mosquitto/log
networks:
- smartcity-shared
volumes:
chirpstack-postgresqldata:
chirpstack-redisdata:
chirpstack-mosquitto-data:
chirpstack-mosquitto-log:
networks:
traefik-public:
external: true
smartcity-shared:
external: true