[Documentation work in progress]

Mjukvarustacken för backend/server består idag av:

  • ChirpStack, "LoRaWAN Network Server"
  • Node-RED, för att analysera och visa data via ett webbinterface.
  • ntfy och/eller Pushover för att ta emot larm på telefon och dator.

Server installation

  • Installation och konfiguration kommer att ske på en och samma maskin med Ubuntu 20.04 i denna beskrivning.

  • Testat på en VM, men ska inte vara något problem på ex. en Raspberry Pi.

  • Sätt upp en användare utöver root för all installationer.

    # logga in som root
    # Uppdatera systemet
    $ apt update && apt upgrade -y
    # Lägg till användare som "super user"
    $ adduser <användarnamn>
    $ usermod -aG sudo <användarnamn igen>
    $ reboot

    Själva ChirpStack‑tjänsterna körs som systemanvändarna chirpstack och gatewaybridge som skapas av DEB‑paketen – du ska inte köra dem direkt som din sudo‑användare.


ChirpStack

Installation

  • Vi följer denna instruktion.

Konfiguration

$ sudo nano /etc/chirpstack/chirpstack.toml

[integration]
  enabled = ["mqtt"]

  [integration.mqtt]
    server = "tcp://localhost:1883/"
    json = true

Ovanstående exempel utgår från att en MQTT‑broker (t.ex. Mosquitto) kör lokalt på port 1883 utan autentisering. Om du har användare/lösenord måste du även sätta username och password under [integration.mqtt].

# Aktivera ChirpStack och gateway bridge att starta vid boot
sudo systemctl enable chirpstack
sudo systemctl enable chirpstack-gateway-bridge

# Starta tjänsterna direkt
sudo systemctl start chirpstack-gateway-bridge
sudo systemctl start chirpstack

Node-RED

Installation

I detta exempel installerar vi med npm, se här.

# Installera Node.js (enkelt sätt via Ubuntu-paket)
sudo apt install nodejs npm

# Installera Node-RED globalt
sudo npm install -g --unsafe-perm node-red

Köra Node-RED som tjänst (rekommenderat)

# Installera PM2 för att hantera Node-RED som en tjänst
sudo npm install -g pm2

# Starta Node-RED via PM2
pm2 start node-red

# Spara PM2-processlistan
pm2 save

# Skapa systemd-enhet så att PM2/Node-RED startar vid boot
pm2 startup systemd

Konfiguration

# Sätt upp en admin om sidan ska visas publikt!
$ sudo nano .node-red/settings.js

  /** To password protect the Node-RED editor and admin API, the following
     * property can be used. See https://nodered.org/docs/security.html for details.
     */
    adminAuth: {
        type: "credentials",
        users: [{
            username: "admin",
            password: " hashat lösenord här ",
            permissions: "*"
        }]
    },

      /** By default, the Node-RED UI is available at http://localhost:1880/
     * The following property can be used to specify a different root path.
     * If set to false, this is disabled.
     */
    httpAdminRoot: '/admin',

All info här och en video här (fråm ~6 min).

# visa status
pm2 status

# kolla loggar
pm2 logs node-red

Nedan ett exempel på hur "koden" i node-red kan se ut för en sensor, ett så kallad "flow", se mer här.

Screenshot_20260614_162455

Upgradering

  • Bra info på denna sida

ntfy

Installation

  • För mer info, se här.
    $ sudo mkdir -p /etc/apt/keyrings
    $ curl -fsSL https://archive.heckel.io/apt/pubkey.txt | sudo gpg --dearmor -o /etc/apt/keyrings/archive.heckel.io.gpg
    $ sudo apt install apt-transport-https
    $ sudo sh -c "echo 'deb [arch=amd64 signed-by=/etc/apt/keyrings/archive.heckel.io.gpg] https://archive.heckel.io/apt debian main' \
      > /etc/apt/sources.list.d/archive.heckel.io.list"
    $ sudo apt update
    $ sudo apt install ntfy
    $ sudo systemctl enable ntfy
    $ sudo systemctl start ntfy

    Konfiguration

  • https://docs.ntfy.sh/config/
    $ sudo nano /etc/ntfy/server.yml
    ...
    base-url: "https://exemple.domän.se"
    # För aktivering av ios support behövs nedanstående också.
    upstream-base-url: "https://ntfy.sh"

    base-url måste motsvara den publika HTTPS‑URL där din ntfy‑server nås, annars fungerar t.ex. push‑notiser och länkar fel.


Reverse Proxy

Alternativ

Gateway

Konfiguration