So I am having an issue with timestamps with the data, I have Chirpstack running in a docker container on a windows machine. As a test environment while I am building a frontend to be able to view the sensor data. I need help on how do I set chirpstacks time to UTC +2 for the correct time for South Africa
this is my docker-compose.yml file
services:
chirpstack:
image: chirpstack/chirpstack:4
command: -c /etc/chirpstack
restart: unless-stopped
volumes:
- ./configuration/chirpstack:/etc/chirpstack
- /etc/timezone:/etc/timezone:ro
- /etc/localtime:/etc/localtime:ro
depends_on:
- postgres
- mosquitto
- redis
environment:
- MQTT_BROKER_HOST=mosquitto
- REDIS_HOST=redis
- POSTGRESQL_HOST=postgres
- TZ=Africa/Johannesburg
ports:
- "8080:8080"
networks:
- chirpstack-net
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:
- chirpstack-net
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:
- chirpstack-net
chirpstack-rest-api:
image: chirpstack/chirpstack-rest-api:4
restart: unless-stopped
command: --server chirpstack:8080 --bind 0.0.0.0:8090 --insecure
ports:
- "8091:8090"
depends_on:
- chirpstack
networks:
- chirpstack-net
postgres:
image: postgres:14-alpine
restart: unless-stopped
volumes:
- ./configuration/postgresql/initdb:/docker-entrypoint-initdb.d
- postgresqldata:/var/lib/postgresql/data
environment:
- POSTGRES_USER=
- POSTGRES_PASSWORD=
- POSTGRES_DB=
- TZ=Africa/Johannesburg
ports:
- "5432:5432"
networks:
- chirpstack-net
redis:
image: redis:7-alpine
restart: unless-stopped
command: redis-server --save 300 1 --save 60 100 --appendonly no
volumes:
- redisdata:/data
networks:
- chirpstack-net
mosquitto:
image: eclipse-mosquitto:2
restart: unless-stopped
ports:
- "1883:1883"
volumes:
- ./configuration/mosquitto/config/:/mosquitto/config/
networks:
- chirpstack-net
node-app:
build:
context: .
dockerfile: Dockerfile
ports:
- "4001:4001"
environment:
- MQTT_BROKER=tcp://mosquitto:1883
- POSTGRES_HOST=
- POSTGRES_USER=
- POSTGRES_PASSWORD=
- POSTGRES_DB=
- POSTGRES_PORT=5432
- CHIRPSTACK_HOST=chirpstack
- CHIRPSTACK_PORT=8080
- CHIRPSTACK_API_TOKEN=
- TZ=Africa/Johannesburg
volumes:
- .:/app
depends_on:
- mosquitto
- postgres
restart: unless-stopped
networks:
- chirpstack-net
volumes:
postgresqldata:
redisdata:
networks:
chirpstack-net:
driver: bridge
these are the times i get back with running these console commands
C:\intellisecIoT\nodejs\intelliseciot>docker exec -it intelliseciot-chirpstack-1 date
Thu Sep 11 07:41:04 UTC 2025
C:\intellisecIoT\nodejs\intelliseciot>docker exec -it intelliseciot-postgres-1 date
Thu Sep 11 09:41:55 SAST 2025
C:\intellisecIoT\nodejs\intelliseciot>docker exec -it intelliseciot-node-app-1 date
Thu Sep 11 09:42:11 SAST 2025
I am struggling to get the chirpstack to be the same time as the other two and i think that is why i get data in with incorrect timestamps here is a screenshot of my devices page it was 9:59am when I took the screenshot as you can see there was a error with the test io controller
