version: "3.8" # ============================================================================= # ChirpStack LoRaWAN Network Server — Smart City Digital Twin # ============================================================================= # Image officielle chirpstack/chirpstack:latest # Credentials par défaut: admin/admin # ============================================================================= services: chirpstack: image: chirpstack/chirpstack:latest command: -c /etc/chirpstack restart: unless-stopped volumes: - ./configuration/chirpstack:/etc/chirpstack:ro 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:ro 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 volumes: - ./configuration/chirpstack-gateway-bridge:/etc/chirpstack-gateway-bridge:ro depends_on: - mosquitto 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" 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 depends_on: - chirpstack 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" networks: - traefik-public - smartcity-shared postgres: image: postgres:14-alpine restart: unless-stopped volumes: - 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/:ro networks: - smartcity-shared volumes: chirpstack-postgresqldata: chirpstack-redisdata: networks: traefik-public: external: true smartcity-shared: external: true