No description
Find a file
2026-02-10 22:50:45 +01:00
migrations Implement multi network support 2026-02-10 17:00:04 +01:00
static Implement BM backfill 2026-02-10 22:50:45 +01:00
.air.toml Implement repeater checks from BM api 2026-02-09 23:52:50 +01:00
.env.example Add admin token env var to compose 2026-02-10 11:05:42 +01:00
.gitignore Add admin token env var to compose 2026-02-10 11:05:42 +01:00
admin.go Implement BM backfill 2026-02-10 22:50:45 +01:00
bmdevice.go Implement multi network support 2026-02-10 17:00:04 +01:00
bmrptrs.json Use BM repeaters to filter for real repeaters 2026-02-09 09:37:23 +01:00
compose.dev.yml Implement admin interface 2026-02-10 10:31:38 +01:00
compose.yml Add admin token env var to compose 2026-02-10 11:05:42 +01:00
db.go Implement multi network support 2026-02-10 17:00:04 +01:00
Dockerfile Implement repeater checks from BM api 2026-02-09 23:52:50 +01:00
Dockerfile.dev Initial Commit 2026-02-08 14:09:14 +01:00
go.mod Implement repeater checks from BM api 2026-02-09 23:52:50 +01:00
go.sum Implement repeater checks from BM api 2026-02-09 23:52:50 +01:00
handlers.go Implement search 2026-02-10 10:57:41 +01:00
LICENSE Add legal 2026-02-10 12:59:27 +01:00
main.go Implement BM backfill 2026-02-10 22:50:45 +01:00
migrate.go Implement repeater checks from BM api 2026-02-09 23:52:50 +01:00
README.md Add LICENSE and README 2026-02-08 15:32:11 +01:00
rptrs.json Initial Commit 2026-02-08 14:09:14 +01:00
seed.go Implement multi network support 2026-02-10 17:00:04 +01:00

DMRmap

A web app that visualizes DMR repeaters on an interactive map. Filter by band, search by address, and find repeaters along a driving route.

Live: https://dmrmap.kida.io

Features

  • Full-screen OpenStreetMap with DMR repeater markers (blue for 2m, red for 70cm)
  • Band filtering (2m / 70cm / both)
  • Address-to-address routing with repeater corridor search (10 km)
  • Address autocomplete via Nominatim
  • Driving routes via OSRM
  • Coordinate display with Maidenhead grid locator
  • Dark mode (follows system preference, manual toggle)
  • No external CDN dependencies — all assets served locally

Requirements

  • Go 1.25+
  • Docker (optional)

Running locally

go run .

Open http://localhost:8080. The SQLite database is seeded automatically from rptrs.json on first startup.

Docker

docker compose up --build

The database is persisted in a named volume across restarts.

Development

Hot-reload with air:

docker compose -f compose.dev.yml up --build

Data

Repeater data provided by RadioID. This project is not affiliated with or endorsed by RadioID.

License

MIT