Multi-region with V4 and Docker Compose

did you end up getting this working?

if not enable the regions you want like so…

chirpstack.toml

enabled_regions=[
    "as923",
    "as923_4"
  ]

this will load the region_as923.toml & region_as923_4.toml from the configuration/ folder, same place the chirpstack.toml is located. you will need to add the extra channels into the toml files for as923 - as without this it just uses the 2 join channels for all uplinks and downlinks. (currently i run 1 x as923 and 1 x au915 sb2 region).

now you need to create a seperate gateway bridge in your compose file for each of these regions you want to run. so now jump over into the chirpsack-gateway-bridge folder and create a regional toml for each region…

chirpstack-gateway-bridge-as923.toml

# See https://www.chirpstack.io/gateway-bridge/install/config/ for a full
# configuration example and documentation.

[integration.mqtt.auth.generic]
    servers=["tcp://mosquitto:1883"]
    username=""
    password=""

[integration.mqtt]
event_topic_template="as923/gateway/{{ .GatewayID }}/event/{{ .EventType }}"
state_topic_template="as923/gateway/{{ .GatewayID }}/state/{{ .StateType }}"
command_topic_template="as923/gateway/{{ .GatewayID }}/command/#"

and

chirpstack-gateway-bridge-as923_4.toml

# See https://www.chirpstack.io/gateway-bridge/install/config/ for a full
# configuration example and documentation.

[integration.mqtt.auth.generic]
    servers=["tcp://mosquitto:1883"]
    username=""
    password=""

[integration.mqtt]
event_topic_template="as923_4/gateway/{{ .GatewayID }}/event/{{ .EventType }}"
state_topic_template="as923_4/gateway/{{ .GatewayID }}/state/{{ .StateType }}"
command_topic_template="as923_4/gateway/{{ .GatewayID }}/command/#"

and your docker compose gateway bridge section should look something like this…

docker-compose.yml

  chirpstack-gateway-bridge-as923:
    image: chirpstack/chirpstack-gateway-bridge:4.0.1
    restart: unless-stopped
    ports:
      - 1921:1700/udp
    volumes:
      - ./configuration/chirpstack-gateway-bridge:/etc/chirpstack-gateway-bridge
      - ./configuration/chirpstack-gateway-bridge/chirpstack-gateway-bridge-as923.toml:/etc/chirpstack-gateway-bridge/chirpstack-gateway-bridge.toml
    depends_on: 
      - mosquitto

  chirpstack-gateway-bridge-as923-4:
    image: chirpstack/chirpstack-gateway-bridge:4.0.1
    restart: unless-stopped
    ports:
      - 1924:1700/udp
    volumes:
      - ./configuration/chirpstack-gateway-bridge:/etc/chirpstack-gateway-bridge
      - ./configuration/chirpstack-gateway-bridge/chirpstack-gateway-bridge-as923_4.toml:/etc/chirpstack-gateway-bridge/chirpstack-gateway-bridge.toml
    depends_on:
      - mosquitto

this should give you as923 bridge listening on udp port 1921 and as923_4 bridge listening on udp port 1924. i did this off memory, but i’m fairly confidant this should be all you need, let me know how you go with it - the only other thing i did was remove all the regions i dont run a gw bridge for from the configuration directory so it doesnt waste time trying to load them.

1 Like