Semtech Packet Fwd and chirpstack running both in docker

Hi :slight_smile:

I’m trying to finalize my custom gateway based on semtech lr1302 board connected to a Toradex SoM.

I’m able to run in a container the semtech rf packet forwarder. I can see my dragino crypted messages when i push the reset button for example).

This semtech forwarder is tunning into a docker. I have to use docker because the Toradex image is really light almost nothing is installed on it and the advised way of working is to use docker ( for example gpio command for reset.sh script is required with the gpiolib, no way to exectute gpio command without docker or without building a custom image with Yocto for example).

Beside of this, i have git clone the nice chirpstack suite.

As i’m in France, i’m using the 868mhz, so by default, no modification needs to be done.

I have modified the docker compose, to build my docker with the semtech rf forwarder, by default, the semtech packet forwader send on port 1730. So i have modified it to send on udp 1700, because chirsptack listen on this one.

But it seems that, because the packet forwarder is running nto a container exposing 1700 and the chirstack-bridge also exposed the port 1700, there is a conflict .

Is it possible to work like this ( one packet forwarder container communicate to one chirpstack-bridge container through UDP ?)

How most of the people using semtech packet forwarder proceed usually?

Thanks a lot for your help, please find my docker compose:

version: “3”

services:

semtech_pkt_fwd:
build: .
volumes:
- /dev:/dev
device_cgroup_rules:
- ‘c 254:* rmw’
- ‘c 153:* rmw’
- ‘c 89:* rmw’
ports:
- 1700:1700/udp

chirpstack:
image: chirpstack/chirpstack:4
command: -c /etc/chirpstack
restart: unless-stopped
volumes:
- ./configuration/chirpstack:/etc/chirpstack
- ./lorawan-devices:/opt/lorawan-devices
depends_on:
- postgres
- mosquitto
- redis
environment:
- MQTT_BROKER_HOST=mosquitto
- REDIS_HOST=redis
- POSTGRESQL_HOST=postgres
ports:
- 8080:8080
networks:
- semtech

chirpstack-gateway-bridge:
image: chirpstack/chirpstack-gateway-bridge:4
restart: unless-stopped
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:
- semtech

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
ports:
- 3001:3001
volumes:
- ./configuration/chirpstack-gateway-bridge:/etc/chirpstack-gateway-bridge
depends_on:
- mosquitto
networks:
- semtech

chirpstack-rest-api:
image: chirpstack/chirpstack-rest-api:4
restart: unless-stopped
command: --server chirpstack:8080 --bind 0.0.0.0:8090 --insecure
ports:
- 8090:8090
depends_on:
- chirpstack
networks:
- semtech

postgres:
image: postgres:14-alpine
restart: unless-stopped
volumes:
- ./configuration/postgresql/initdb:/docker-entrypoint-initdb.d
- postgresqldata:/var/lib/postgresql/data
environment:
- POSTGRES_PASSWORD=root
networks:
- semtech

redis:
image: redis:7-alpine
restart: unless-stopped
command: redis-server --save 300 1 --save 60 100 --appendonly no
volumes:
- redisdata:/data
networks:
- semtech

mosquitto:
image: eclipse-mosquitto:2
restart: unless-stopped
ports:
- 1883:1883
volumes:
- ./configuration/mosquitto/config/:/mosquitto/config/
networks:
- semtech

volumes:
postgresqldata:
redisdata:

networks:
semtech:
driver: bridge