chirpstack / chirpstack-docker

Setup ChirpStack using Docker Compose

Home Page:https://www.chirpstack.io/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Mistakes in docker-compose.yml that don't let to move to another machine

gabrielbravov opened this issue · comments

Hello friends,

I found a mistake in docker-compose.yml. When you want to move the docker files to run in another physical machine, won't run because some volumes (postgres and redis) aren't in the chirpstack root docker directory.

This it's the right docker-compose.yml edited that works in my machines:

version: "3"

services:
  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

  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
  
  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

  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

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

  redis:
    image: redis:7-alpine
    restart: unless-stopped
    volumes:
      - ./configuration/redisdata:/data

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

volumes:
  postgresqldata:
  redisdata:

I tried to make a pull request but i cant because i'm not a collaborator.

I found a mistake in docker-compose.yml. When you want to move the docker files to run in another physical machine, won't run because some volumes (postgres and redis) aren't in the chirpstack root docker directory.

That is by design. This might work on Linux, but I remember there were issues in the past on Windows because of file permissions that are handled in a different way.

As the README states, you should use the docker-compose.yml as a starting-point. For some users volumes is fine, others like you prefer to mount a directory. It is fine to adapt it to your needs.

I tried to make a pull request but i cant because i'm not a collaborator.

You don't have to be a collaborator, anybody can create a pull-request :)