Skip to content

Install

On Linux+systemd, the install is one line:

curl -sSL https://m0lte.github.io/dapps/install.sh | sudo bash

Detects arch, downloads the right binary, drops the systemd units, enables and starts. Configuration lives in the dashboard's /Setup wizard. See Linux (systemd) for what the script does and the manual equivalent.

DAPPS ships as a single self-contained binary per platform - no .NET runtime install, no shared library dance.

The release matrix:

Platform RID Binary
Linux x86-64 linux-x64 dapps-linux-x64
Linux ARM64 linux-arm64 dapps-linux-arm64
Linux ARM32 linux-arm dapps-linux-arm (Pi, Cubie)
Windows x64 win-x64 dapps-win-x64.exe
macOS ARM64 osx-arm64 dapps-osx-arm64

Latest release on GitHub.

Pick a platform

  • Linux (systemd) - recommended; the one-liner installer + supervised-update story.
  • Docker - published image; useful if you already orchestrate with compose / a homelab stack.
  • Windows - runs as a console app today; service install is manual.
  • macOS - same shape as Windows; launchd plist optional.

Compatibility notes

  • .NET 8 LTS is the baseline runtime. Binaries are self-contained - you do not need .NET installed.
  • glibc 2.23 or newer on Linux. Raspberry Pi OS Bullseye (glibc 2.31) and everything more recent works fine. We deliberately stayed on .NET 8 rather than 10 specifically to keep Pi OS Bullseye in scope.
  • Windows: any 64-bit Windows 10 / Server 2016 or newer.
  • macOS: Apple Silicon (M-series). Intel macs are not in the matrix; build from source if you need them.

Storage and ports

A running DAPPS node writes:

  • A SQLite database at data/dapps.db (relative to the working directory) or /var/lib/dapps/dapps.db if you use the systemd recipe.
  • An MQTT broker on TCP 1883 (configurable; bind to localhost in most cases).
  • An HTTP listener on TCP 5000 (configurable; this is the dashboard, REST API, and MCP endpoint).
  • Optional UDP datagram listener on a port of your choosing (off by default; used by the test stand-in for MeshCore).

It opens an outbound TCP connection to your packet node's bearer port - AGW (default 8000 on BPQ) or RHPv2 (default 9000 on XRouter), depending on DAPPS_NODE_BEARER.

The full list of operator-tunable knobs is on the Configure page.