A Flutter application for managing ham radio nets on Linux (including Raspberry Pi), Windows, Android, and web.
Installation
Screenshots / Manual
- Multiple Nets and export/import: Each Net is contained within a SQLite database file that can be imported/exported or overwritten, allowing you to share the database with other operators. App keeps track of what databse files you have opened.
- Import/Export via CSV files: Can import/export radio operator data (ie callsign, name, city).
- Excel/XLSX Reports: XLSX files can be generated in the reports page that include the check-ins and summary date from a date range.
- Markdown Net Control Scripts: Each net can have its own script with most markdown syntax supported including tables. A few variables are provided to insert your own callsign into the net script.
- Member Management: Add/remove radio operators to the net as needed. Operators are stored in each net's database file.
- Operator search: Fuzzy search for ham radio operators by multiple fields (ie callsign, first name, city) in the main check-in UI and member management screen.
- Cloud Sync: Optionally sync your net database to a self-hosted Cloudflare Worker so multiple operators can share and update the same net data. See docs/CLOUD_SYNC.md for setup instructions.
A web build is available at hestela.github.io/ham_net_manager.
It stores all data within your web browser using the Origin Private File System (OPFS).
The web interface can export/import SQLite files compatible with desktop versions.
Note: You may want to export the SQLite file after each session, as browser data can be lost (e.g., if your device is low on space, the browser may wipe the data).
The web interface should work on all modern browsers/OS.
Limitation: Internet connection required unless you self-host the app on a webserver in your LAN such as with nginx (HTTPS required due to some of the web technologies used).
sudo wget https://github.com/hestela/ham_net_manager/releases/latest/download/Ham_Net_Manager-$(uname -m).AppImage -O /usr/local/bin/ham_net_manager
sudo chmod +x /usr/local/bin/ham_net_manageraarch64 and x86_64 builds are available. App has been tested on Raspberry Pi 4 with Raspberry Pi OS 13 and on Debian 13 x86_64.
For windows, you will either need to build the app yourself with flutter or you can download an MSIX release but then you will need to install the self-signed code signing certificate that was used to build this app. Otherwise, using the web app is the easiest way.
You will need to "trust" the self-signed certificate that was used to build the MSIX file. You only need to do this once, unless the certificate gets updated.
- Download the certificate by clicking here (github link)
- Double-click ham_net_manager.cer
- "Install Certificate"
- Select Local Machine
- "Place all certificates in the following store"
- Browse
- Trusted People
- OK
Now you can install the latest MSIX file. Download Latest Windows Release In Windows 11 you can simply double click this file and it will ask if you want to install. For Windows 10, you will need to open powershell and either cd to the folder with the download, or put the full path to the MSIX file.
Add-AppPackage -Path .\ham_net_manager.msixSee BUILDING.md for how to build for the different platforms, but you mainly use the flutter command to build/test the app.
buttons on the top right are:
- Click the net control script button to show/hide
- Written with markdown
- Supports a few template variables (like your name, callsign and net name) so that you can substitute your callsign into the net control script. See the (?) help button for more info.
- Click on the pencil icon to edit the script, script is unique to each city/database

- Add/remove Cities and Neighborhoods
- Cities and Neighborhoods are optional fields for the member information

- Fuzzy search on all fields (click esc to clear search)
- "Members" have a star next to their name and Guests/Visitors have the person icon.
- add/remove/edit members here
- can import/export member information via csv
- When importing members, missing cities/neighborhoods will be created. Make sure that your city and neighborhood names don't have typos or small variations otherwise you will have duplicates.

the icon at the top left of the main check-in UI has a so called "hamburger menu" (the 3 stacked lines) which has:
- Your Info (used for net control script mainly)
- Rename Net
- New Database (for new net)
- Switch Database (switch to previously setup net)
- Save Database As (to export sqlite database to a new location)
- Remove current database (to remove current net from history and optionally delete sqlite database file)
- Cloud Sync (Push to Cloud, Pull from Cloud, Sync Settings)
Ham Net Manager supports optional cloud sync via a self-hosted Cloudflare Worker and Cloudflare D1 (serverless SQLite). This is useful when multiple operators share a net — one person pushes after the net ends, others pull the latest data before the next session.
Key behaviours:
- Auto-pull on launch: if sync is configured and you have no pending local changes, the app pulls the latest data silently in the background when you open a database.
- Pending changes banner: if you close the app without pushing, a reminder banner appears on the next launch.
- Exit prompt: closing the app with unsynced changes prompts you to sync before exiting.
- Conflict detection: if another device has pushed since your last sync, you are warned before your push can overwrite their work.
- Free on Cloudflare's free tier (100k requests/day, 5 GB storage).
See docs/CLOUD_SYNC.md for full setup instructions.
All fields are optional. This data persists between sessions and nets (it is stored in its own json file).

Select your date range with start-end, or select the end date and then use the 1 day, 1 week, 2 week or 4 week buttons to update the start date to the end date minus the specified time range. Reports are generated into excel sheets. It includes a tab with the summary of each days checkins and a second tab with the details of all checkins from the date range.




