Hello,
I would like to contribute to Chirpstack, but I’m having trouble building Chirpstack. After successfully build and running the binary, I don’t get the web UI.
I’ve successfully installed Docker and Nix-OS.
I can access the Nix-shell, then I can successfully run
make devshell
make build-ui
Then I build Chirpstack:
cd chirpstack
make debug-amd64 DATABASE=sqlite
cd ..
The build goes well.
And finally, I’m going to run chirpdstack.
cd target/x86_64-unknown-linux-musl/debug
mkdir -p configs
./chirpstack -c configs
And when I try to access chirpstack via my browser or via curl, I get:
2025-10-02T08:56:58.815208Z INFO gRPC{uri=/}: chirpstack::api: Finished processing request status="404" latency=821.139µs
Inspecting the code, this seems to correspond to the fact that no files are found in Asset.
if let Some(asset) = Asset::get(path) {
let mime = mime_guess::from_path(path).first_or_octet_stream();
let mut headers = HeaderMap::new();
headers.insert(
header::CONTENT_TYPE,
HeaderValue::from_str(mime.as_ref()).unwrap(),
);
(StatusCode::OK, headers, asset.data.into())
} else {
(StatusCode::NOT_FOUND, HeaderMap::new(), vec![])
}
and adding this code block before this seems to be confirmed
println!("Serving static file: {}", path);
let files: Vec<_> = Asset::iter().collect();
println!("Number of files embedded: {}", files.len());
for file in files {
println!("Embedded file: {}", file.as_ref());
}
with this result
Serving static file: index.html
Number of files embedded: 0
The files should be present in RustEmbed Assets
#[derive(Rust Embed)]
#[folder = "../ui/build"]
struct Asset;
Does not appear to be present
Am I doing something wrong?
Could you help me?
Thanks in advance