I am running the chirpstack v4 server on my local system on ubuntu. I have cloned the code from the github repository and followed these steps:
- Installed nix, cargo cross, musl-tools etc.
- Entered nix using nix-shell
- Then make build-ui
- Then docker compose up -d
- Then make dev-dependencies
- Then navigated to ~chirpstack/chirpstack folder, run make debug-amd64
- The navigated to ~chirpstack/target/x86_64-unknown-linux-musl/debug
- Run ./chirpstack --config “.”
Below is the output of the last command (Removed timestamp for better readability) :
INFO chirpstack::cmd::root: Starting ChirpStack LoRaWAN Network Server version=“4.9.0” docs=“https://www.chirpstack.io/”
INFO chirpstack::storage::postgres: Setting up PostgreSQL connection pool
INFO chirpstack::storage: Applying schema migrations
INFO chirpstack::storage: Setting up Redis client
INFO chirpstack::region: Setting up regions
INFO chirpstack::backend::joinserver: Setting up Join Server clients
INFO chirpstack::backend::roaming: Setting up roaming clients
INFO chirpstack::adr: Setting up adr algorithms
INFO chirpstack::integration: Setting up global integrations
INFO chirpstack::integration::redis: Initializing Redis integration
INFO chirpstack::integration::mqtt: Initializing MQTT integration
INFO chirpstack::integration::mqtt: Connecting to MQTT broker server_uri=tcp://localhost:1883/ client_id=f94cd1b91cf547ea clean_session=false
INFO chirpstack::gateway::backend: Setting up gateway backends for the different regions
INFO chirpstack::downlink: Setting up Class-B/C scheduler loop
INFO chirpstack::integration::mqtt: Starting MQTT event loop
INFO chirpstack::downlink: Setting up multicast scheduler loop
INFO chirpstack::api: Setting up API interface bind=0.0.0.0:8080
INFO chirpstack::integration::mqtt: Subscribing to command topic command_topic=application/+/device/+/command/+
INFO chirpstack::api::backend: Backend interfaces API interface is disabled
Whenever I open/refresh this link : localhost:8080/ or localhost:8080/#/login, I get the following on the terminal :
DEBUG gRPC{uri=/}: chirpstack::api: Started processing request
INFO gRPC{uri=/}: chirpstack::api: Finished processing request status=“404” latency=4.092043ms
and the UI does not open on the browser.
What am I doing wrong here ?
Below is the content of the config file (chirpstack.toml) present at ~/chirpstack/target/x86_64-unknown-linux-musl/debug folder (if this helps) :
# Logging.
[logging]
# Log level.
#
# Options are: trace, debug, info, warn error.
level = "debug"
# PostgreSQL configuration.
[postgresql]
# PostgreSQL DSN.
#
# Format example: postgres://<USERNAME>:<PASSWORD>@<HOSTNAME>/<DATABASE>?sslmode=<SSLMODE>.
#
# SSL mode options:
# * disable - no SSL
# * require - Always SSL (skip verification)
# * verify-ca - Always SSL (verify that the certificate presented by the server was signed by a trusted CA)
# * verify-full - Always SSL (verify that the certification presented by the server was signed by a trusted CA and the server host name matches the one in the certificate)
dsn = "postgres://chirpstack:chirpstack@localhost/chirpstack?sslmode=disable"
# Max open connections.
#
# This sets the max. number of open connections that are allowed in the
# PostgreSQL connection pool.
max_open_connections = 10
# Min idle connections.
#
# This sets the min. number of idle connections in the PostgreSQL connection
# pool (0 = equal to max_open_connections).
min_idle_connections = 0
# Redis configuration.
[redis]
# Server address or addresses.
#
# Set multiple addresses when connecting to a cluster.
servers = ["redis://localhost/"]
# Redis Cluster.
#
# Set this to true when the provided URLs are pointing to a Redis Cluster
# instance.
cluster = false
# Network related configuration.
[network]
# Network identifier (NetID, 3 bytes) encoded as HEX (e.g. 010203).
net_id = "000000"
# Enabled regions.
#
# Multiple regions can be enabled simultaneously. Each region must match
# the 'name' parameter of the region configuration in '[[regions]]'.
enabled_regions = [
"as923",
"as923_2",
"as923_3",
"as923_4",
"au915_0",
"cn470_10",
"cn779",
"eu433",
"eu868",
"in865",
"ism2400",
"kr920",
"ru864",
"us915_0",
"us915_1",
]
# API interface configuration.
[api]
# interface:port to bind the API interface to.
bind = "0.0.0.0:8080"
# Secret.
#
# This secret is used for generating login and API tokens, make sure this
# is never exposed. Changing this secret will invalidate all login and API
# tokens. The following command can be used to generate a random secret:
# openssl rand -base64 32
secret = "you-must-replace-this"
[integration]
enabled = ["mqtt"]
[integration.mqtt]
server = "tcp://localhost:1883/"
json = true