chirpstack-tutorial/doc/4-chirpstack.md

1.7 KiB

ChirpStack

Reference install instructions: https://www.chirpstack.io/docs/getting-started/debian-ubuntu.html

Additional instructions/tips not on the official site:

To install the ChirpStack GPG key, use this instead of what's on the ChirpStack documentation page:

# https://superuser.com/a/1773782
gpg --keyserver hkps://keyserver.ubuntu.com --recv-keys 1CE2AFD36DBCCA00 && \
gpg --export 1CE2AFD36DBCCA00 | sudo tee /etc/apt/trusted.gpg.d/chirpstack.gpg >/dev/null && \
gpg --batch --yes --delete-keys 1CE2AFD36DBCCA00

Don't install the chirpstack-gateway-bridge here; just do chirpstack.

Edit /etc/chirpstack/chirpstack.toml as needed (specifically the PostgreSQL config). Add the missing US regions.

Nginx + TLS setup

Install Lego

Get certificate (using DNS-01 + ACME-DNS)

Setup certificate for autorenewal and auto-reload Nginx

Set Nginx config to have two files:

default:

server {
    listen 80 default_server;
    listen [::]:80 default_server;

    server_name _;

    return 301 https://$host$request_uri;
}

chirpstack:

server {
    listen 443 ssl;
    listen [::]:443 ssl;

    ssl_protocols TLSv1.2 TLSv1.3;
    
    ssl_certificate /var/www-certs/chirpstack.roeber.dev.crt;
    ssl_certificate_key /var/www-certs/chirpstack.roeber.dev.key;

    server_name chirpstack.roeber.dev;

    server_tokens off; # disable banner

    location / {
        proxy_pass http://localhost:8080;
    }
}

Symlink chirpstack to be active: sudo ln -s /etc/nginx/sites-available/chirpstack /etc/nginx/sites-enabled/chirpstack

Reload Nginx: sudo systemctl reload nginx

(Optional) Run testssl.sh to verify security: clone, then ./testssl.sh chirpstack.roeber.dev