Releases: ScotMesh/RepeaterTastic
Release list
v0.5.0
What's Changed
Full Changelog: v0.4.0...v0.5.0
v0.4.0
What's Changed
Full Changelog: v0.3.3...v0.4.0
v0.3.3
What's Changed
- Don't hand hosted nodes frames too big for meshtasticd's simulated radio by @A13xB0 in #35
- Tidy the repo root: protobufs under api/, plugin SDK under sdk/ by @A13xB0 in #34
- Dashboard: chart airtime and noise floor over 24 hours by @A13xB0 in #36
- Dashboard: make the chart span and resolution settable by @A13xB0 in #37
- Keep airtime per minute, and keep both histories across a restart by @A13xB0 in #38
- Keep airtime per minute, and keep both histories across a restart by @A13xB0 in #39
Full Changelog: v0.3.2...v0.3.3
v0.3.2
A fix found while upgrading a live site to v0.3.1.
Fixes
- Identity saves no longer collide. When several meshtasticd nodes started together (after an upgrade or a restart), their saves of
identities.jsoncould fail with "rename … no such file or directory", and a save could be lost. Each save now uses its own temporary file, and identity saves happen one at a time.
Downloads
- Binaries:
repeatertastic-linux-*andkisstool-linux-*for arm64, armv7, armv6 and amd64. - Modem firmware: unchanged since v0.2.1.
- Checksums:
SHA256SUMS. - Image:
docker pull ghcr.io/scotmesh/repeatertastic:v0.3.2. Run it with--init.
To upgrade a Pi install, run sudo ./deploy/install.sh again from a fresh checkout. It keeps your config and state.
Full changelog: v0.3.1...v0.3.2
v0.3.1
A small follow-up to v0.3.0.
Changes
- "Made in Scotland 🏴 by ScotMesh", with a GitHub link, is now at the bottom of the sidebar instead of a footer on every page.
- The sidebar's Sign out button is gone. Sign out from the account menu in the top bar.
Downloads
- Binaries:
repeatertastic-linux-*andkisstool-linux-*for arm64, armv7, armv6 and amd64. - Modem firmware: unchanged since v0.2.1.
- Checksums:
SHA256SUMS. - Image:
docker pull ghcr.io/scotmesh/repeatertastic:v0.3.1. Run it with--init.
Full changelog: v0.3.0...v0.3.1
v0.3.0
Every node is now a real Meshtastic node. The relay persona and each identity run as their own meshtasticd (2.8.0 or newer), and RepeaterTastic shares the radio between them. They get the firmware's routing, modules and future fixes for free.
Highlights
- Real Meshtastic nodes
- Each identity is a meshtasticd with its saved key: node numbers, channels and chats are kept when you upgrade.
- A meshtasticd chip in the top bar shows whether every node is running: green, amber when an identity is down, red when meshtasticd isn't running.
- Configuration → meshtasticd shows each instance, why it stopped, and its log.
- Boards on Meshtastic firmware as radios: the board is the relay, and your identities reach the air through it, one hop behind.
- LoRa HATs and CH341 USB sticks can be driven directly (
radio.driver: spi, experimental), using meshtasticd's board files. - Relay roles are Meshtastic's: client, client base (with favourites), client mute, router and router late, plus rebroadcast modes.
- One GUI for the whole site:
- Every page shows all radios, with a radio filter.
- Each radio has its own card and relay switch in the top bar.
- Logs say which identity each line is about.
- Safer apps: by default, an app connected to an identity can't change its node's radio, device, module or position settings, or reboot it. Each identity has a switch to allow it.
- Drop a pin to set the site position, and a dialog that moves a radio's identities before the radio is removed.
Install
- Docker: the image includes meshtasticd. Run it with
--init:docker pull ghcr.io/scotmesh/repeatertastic:v0.3.0. - Raspberry Pi and other Debian-based systems:
git clone, thensudo ./deploy/install.sh. It installs meshtasticd and this release. See the README.
Upgrading from v0.2
- meshtasticd is required now. There's no fallback: without it, identities stay off air and the top bar turns red. The Docker image and the installer provide it.
- Removed: "identities on several radios" (experimental), and the
hosted.persona/hosted.identitiesswitches. Old config files still load; identities can still move between radios. - The Docker image is now based on meshtasticd's Debian image instead of distroless. Plugins can use glibc and a shell; see Plugins in Docker.
- The
muterelay role is nowclient_mute. Configs that saymutestill load.
Downloads
- Binaries:
repeatertastic-linux-*andkisstool-linux-*for arm64, armv7, armv6 and amd64. - Modem firmware:
kiss-firmware-*.zip, unchanged since v0.2.1. - Checksums:
SHA256SUMScovers everything.
Quality
- 0 SonarQube issues, 95% test coverage, and golangci-lint clean.
- Checked on air with a KISS modem, a CH341 stick and a board on Meshtastic firmware.
Full changelog: v0.2.1...v0.3.0
v0.2.1
First-boot polish found by testing v0.2.0 as a fresh install (the release binary and the Docker image, with no modem attached).
Fixes
- The Identities table fits a laptop-width screen. At 1280 px it scrolled sideways and hid each row's actions.
- docs/plugins.md shows running the plugin command line inside the container:
docker exec repeatertastic /repeatertastic plugin list. - Firmware is attached to every release. The release workflow now adds the KISS modem firmware automatically. It reuses the previous release's firmware when
firmware/is unchanged, as here, and builds every board when it has changed.
Downloads
- Binaries:
repeatertastic-linux-*andkisstool-linux-*for arm64, armv7, armv6 and amd64. - Modem firmware:
kiss-firmware-*.zipandrepeatertastic-kiss-firmware-all-boards.zip, unchanged since v0.1.0-bench. - Checksums:
SHA256SUMScovers everything. - Image:
docker pull ghcr.io/scotmesh/repeatertastic:v0.2.1.
See v0.2.0 for plugins, relay persona chat, the Monitor and Off relay modes, and the new API docs.
Full changelog: v0.2.0...v0.2.1
v0.2.0
RepeaterTastic now lives at ScotMesh/RepeaterTastic: the Go module is github.com/ScotMesh/RepeaterTastic and the image is ghcr.io/scotmesh/repeatertastic.
Highlights
- Plugins. Programs that extend RepeaterTastic, such as uploaders, bots and dashboards.
- Install them from the GUI (upload or URL), a drop-in folder,
repeatertastic pluginor Docker. - Review what each plugin may see and send. Its settings form comes from its manifest, including tick boxes for radios and identities.
- Watch its status and log, and show its own sandboxed panel.
- Set send limits under Plugins → Send limits.
- Plugins can also run attached over TCP.
- For plugin authors: Plugin API v1 (gRPC), a Go SDK and an example plugin. See docs/plugins.md and docs/plugin-api.md.
- First plugin: Meshflow.
- Install them from the GUI (upload or URL), a drop-in folder,
- Chat as the relay persona. DMs and channel messages from the relay, for example to verify a node with a service.
- Relay modes. Client, Router, Mute, and now Monitor (listen only, never transmit) and Off (ignore the radio).
- Docs. A full HTTP API reference (docs/api.md), a Plugin API reference and updated guides.
First boot
- Setup wizard: it now saves the primary channel name, and a modem that hasn't connected yet switches to the chosen port without a restart.
- Plugins failing to start no longer stops the daemon.
- Fewer log warnings when no modem is plugged in.
Fixes
- Many open tabs: the GUI no longer stops loading. Background tabs release their live connection.
- Tick-box dropdowns are never cut off and work from the keyboard.
- Large backups: backups up to 32 MB can be restored.
Downloads
- Binaries:
repeatertastic-linux-*andkisstool-linux-*for arm64, armv7, armv6 and amd64. - Modem firmware:
kiss-firmware-*.zip, unchanged since v0.1.0-bench. - Checksums:
SHA256SUMS. - Image:
docker pull ghcr.io/scotmesh/repeatertastic:v0.2.0.
Full changelog: v0.1.0-bench...v0.2.0
v0.1.0-bench: first hardware bench test
First build for bench testing on real hardware. Not yet tested on air. Follow docs/bench-test.md.
Verified so far:
- Byte-exact against 25 golden vectors captured from meshtasticd 2.7.26 and 2.8.0.
- PKI DMs with real ACKs in both directions against meshtasticd over UDP multicast.
- The official Meshtastic Python CLI connects to the virtual node API ports.
- Web GUI chat sends a DM to real firmware and shows it delivered.
- Multi-host relaying and relayed PKI DMs in the radio simulator.
Assets:
repeatertastic-linux-{arm64,armv7,armv6,amd64}: the daemon (static, web GUI embedded).kisstool-linux-*: the modem bench tool (info,listen,send-text).kiss-firmware-<board>.zip: patched MeshCore KISS modem images for Heltec V3, Heltec V4, XIAO nRF52840 + Wio-SX1262 and RAK4631.repeatertastic-kiss-firmware-all-boards.zip: all 85 boards that build; seefirmware-boards.mdfor what to flash on each.
Install on a Pi: sudo ./deploy/install.sh repeatertastic-linux-arm64 kisstool-linux-arm64, then open http://<pi>:8080.
🤖 Generated with Claude Code
SPI radio draft 2 (test build)
Experimental test build: not a release. RepeaterTastic driving the LoRa chip on meshtasticd hardware directly: SX1262/SX1268/LLCC68, SX1276 (RF95), SX1280 and LR1110/LR1120/LR1121, on a Pi's SPI bus or a CH341 USB stick. All of meshtasticd's board files are built in (kisstool boards), and --board auto detects boards meshtasticd can detect.
Follow the SPI radio testing guide and send back the output of each step.
Pick the binary for your OS: arm64 for 64-bit Raspberry Pi OS, armv7 for 32-bit, armv6 for a Pi Zero or Pi 1, amd64 for a PC with a USB stick. Replaces spi-draft-1.