Meshloom

The Meshloom server keeps listening to your radio, even when the page is closed. The screen is there to read and send your messages, check the map, and see the state of the network around you.

In practice

Memory

A radio has little memory for contacts and channels. Meshloom keeps your contacts, your channels, and the raw packets for you. If you add a key later, it also decrypts the traffic that was already stored.

The screen

The Chats list gathers your channels, contacts, and repeaters in one place, with filters for unread, favourites, channels, and direct messages. On a phone, a bar at the bottom of the screen opens Chats, Map, Tools, and Settings. On a large screen, an icon rail takes you straight to the chats, the map, and each tool, and you can reorder it.

Map and packet stream

An advert received with coordinates puts a node on the map. The Packet Feed shows every packet your radio hears, for analysis. The Live view shows packets landing on the map as they are heard. Other tools draw the mesh from the traffic you hear (Mesh Visualizer), trace a route through repeaters (Trace), and estimate the area where a node is (RF Locate).

The community is your ears

Meshloom Community is on by default on a new install. Enter the 3-letter IATA code of the nearest airport to take part. The shared directory then tells you which radios heard the same thing as you. It also lets you put a name on a node you have not heard yet but the community already knows. And the Radio test sends one test message and shows who in the community heard it.

Discovered channels

Meshloom can decrypt messages from public hashtag channels you do not know yet. It tries a built-in list of public channel names on traffic your server cannot read, and with Meshloom Community it also tries the names the community knows. When a message decrypts, the channel appears in Discovered channels (in Tools), and you decide whether to keep it or refuse it.

Alerts and integration

Meshloom regularly polls the repeaters you track (up to eight), and sensors too. By default it alerts you when the battery drops below 3.5 V, when the noise floor rises above -90 dBm, when a repeater stops answering, or when it loses its GPS. You can adjust these limits and add others, such as signal quality or a sensor reading, and choose how to be told: push notification, email, or webhook. What your radio hears can also be sent to MQTT, Home Assistant, a webhook, Apprise, or Amazon SQS.

Getting started

Three ways to install the server, depending on what you already have: a Linux script, a Home Assistant add-on, or an SD card prepared with Raspberry Pi Imager.

On a Linux machine that stays on: a PC, a NAS, or a Pi that already has an OS. The script offers a systemd service or Docker, asks you a few questions, then the interface opens on port 8000.

Paste into a Linux terminal

/bin/bash -c "$(curl -fsSL https://get.meshloom.app)"

Keep /bin/bash -c: the script is interactive, and a curl | bash pipe would swallow its questions.

If your radio has Wi-Fi, we recommend connecting to it over TCP: Meshloom reaches it without a USB cable plugged in all the time. The flasher below is for the MeshCore radio, not for the server's SD card. USB and Bluetooth remain possible, but we advise against Bluetooth for stable use.

Two or three things

Meshloom is a fork of Jack Kingsman's MeshCore web client, which Ian Langworth carried on for a time. Jack Kingsman's copyright remains in the license.

There are no user accounts. You can protect the whole interface with a single optional username and password (HTTP Basic: MESHCORE_BASIC_AUTH_USERNAME and MESHCORE_BASIC_AUTH_PASSWORD, or the matching add-on options). Keep the instance on a trusted network, or put a service like Cloudflare Zero Trust in front of it.