- 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
124 lines
4.3 KiB
YAML
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
|