Skip to content

Releases: ScotMesh/RepeaterTastic

v0.5.0

Choose a tag to compare

@github-actions github-actions released this 24 Sep 18:53

What's Changed

  • Sensors: one host sensor, published by as many identities as you like by @A13xB0 in #41

Full Changelog: v0.4.0...v0.5.0

v0.4.0

Choose a tag to compare

@github-actions github-actions released this 18 Sep 18:37
03f554f

What's Changed

  • A plugin store: browse, install and update from the GUI by @A13xB0 in #40

Full Changelog: v0.3.3...v0.4.0

v0.3.3

Choose a tag to compare

@github-actions github-actions released this 18 Sep 12:58
cea2aac

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

Choose a tag to compare

@A13xB0 A13xB0 released this 16 Sep 23:22
8d18028

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.json could 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-* and kisstool-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

Choose a tag to compare

@A13xB0 A13xB0 released this 16 Sep 23:16
e7d723b

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-* and kisstool-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

Choose a tag to compare

@A13xB0 A13xB0 released this 16 Sep 22:55
d7d764f

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, then sudo ./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.identities switches. 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 mute relay role is now client_mute. Configs that say mute still load.

Downloads

  • Binaries: repeatertastic-linux-* and kisstool-linux-* for arm64, armv7, armv6 and amd64.
  • Modem firmware: kiss-firmware-*.zip, unchanged since v0.2.1.
  • Checksums: SHA256SUMS covers 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

Choose a tag to compare

@github-actions github-actions released this 15 Sep 19:02

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-* and kisstool-linux-* for arm64, armv7, armv6 and amd64.
  • Modem firmware: kiss-firmware-*.zip and repeatertastic-kiss-firmware-all-boards.zip, unchanged since v0.1.0-bench.
  • Checksums: SHA256SUMS covers 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

Choose a tag to compare

@github-actions github-actions released this 15 Sep 18:41

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 plugin or 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.
  • 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-* and kisstool-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

Pre-release

Choose a tag to compare

@A13xB0 A13xB0 released this 15 Sep 02:19

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; see firmware-boards.md for 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)

Pre-release

Choose a tag to compare

@A13xB0 A13xB0 released this 15 Sep 21:11

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.