- Rust 92%
- Nix 6.6%
- Fluent 0.9%
- Ruby 0.5%
Minor rather than patch, because #113 made two config keys take effect that had been silently inert. `[probe] log_level` and `[logging] format` were read into the config struct and then ignored -- logging was initialised before the file was parsed, so the level was always the CLI default and the format came from a compile-time feature. A probe whose config already says `log_level = "debug"` or `format = "text"` starts behaving differently on upgrade without anyone editing anything. That is a behaviour change, not a fix, and 0.7.3 would undersell it. `--log-level` also loses its clap default in the same change, so "not passed" is distinguishable from "passed info" -- visible in --help. Everything else since 0.7.2 is additive or internal: the registration banner and quieter retry logging (#113), the add-on move to ananthb/hass-addons (#111), Spanish translation updates (#112), the docs-only status check fix (#115), and dependency bumps (#99, #114). Public API gains starla_controller::public_key_openssh. Nothing was removed. The add-on is deliberately untouched. Since #107 its version and the upstream image tag move independently, and starla/build.yaml lives in ananthb/hass-addons now -- it pins 0.7.2 until a 0.8.0 image exists, which that repository's CI enforces. Claude-Session: https://claude.ai/code/session_01TUNJedMaG86AUM4oHPhZDR Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com> |
||
|---|---|---|
| .cargo | ||
| .github | ||
| assets | ||
| binaries | ||
| crates | ||
| doc | ||
| fuzz | ||
| grafana | ||
| nix | ||
| packaging | ||
| tests | ||
| .envrc | ||
| .gitignore | ||
| .goreleaser.yaml | ||
| .weblate | ||
| Cargo.lock | ||
| Cargo.toml | ||
| clippy.toml | ||
| config.toml.example | ||
| flake.lock | ||
| flake.nix | ||
| LICENSE | ||
| README.es.md | ||
| README.md | ||
| rustfmt.toml | ||
| starla.service | ||
English · Español · + your language
Starla
An alternative unofficial RIPE Atlas software probe written in Rust.
Features
- All measurement types: Ping, Traceroute, DNS, HTTP, TLS, NTP
- Pure Rust SSH: no OpenSSH dependency, uses
russh - No local ports: all communication flows through the SSH tunnel
- Minimal container image: just the binary + CA certs, multi-arch (amd64/arm64)
- Home Assistant add-on: packaged in ananthb/hass-addons
- NixOS module: declarative configuration with systemd hardening
- Home Manager module: user-level service with launchd (macOS) or systemd (Linux)
- macOS app bundle: Starla Tray.app with DMG installer and Install CLI script
- Prometheus metrics: optional observability export
- Bounded in-memory result queue: configurable capacity, drops oldest when full
- Scamper backend (Linux): every Linux build statically links the
rscamperbindings, so ping and traceroute can be routed through a running scamper daemon by setting"backend": "scamper"on the measurement. Hosts without scamper installed are unaffected unless the backend is actually selected. The socket defaults to/var/run/scamper/scamperd.sockand can be overridden withSTARLA_SCAMPER_SOCKET. Not available on macOS or Windows builds.
Quick Start
# Docker / Podman
docker run -d --name starla \
-v starla-state:/state \
--cap-add NET_RAW \
ghcr.io/ananthb/starla:latest
# NixOS
services.starla.enable = true;
# Ubuntu / Debian
curl -LO https://github.com/ananthb/starla/releases/latest/download/starla_0.3.0_amd64.deb
sudo dpkg -i starla_*.deb
sudo systemctl enable --now starla
# Fedora / RHEL
curl -LO https://github.com/ananthb/starla/releases/latest/download/starla-0.3.0-1.x86_64.rpm
sudo dnf install ./starla-*.rpm
sudo systemctl enable --now starla
# Release tarball
curl -LO https://github.com/ananthb/starla/releases/latest/download/starla-amd64.tar.gz
tar xzf starla-amd64.tar.gz && sudo ./starla/starla
Home Assistant
Add https://github.com/ananthb/hass-addons as an add-on repository
(Settings → Add-ons → Add-on Store → ⋮ → Repositories), then install
the Starla add-on. See the
add-on docs.
After starting, register your probe at atlas.ripe.net/apply/swprobe
using the public key from probe_key.pub in the state directory.
See the full installation guide for all options, configuration, and signature verification.
Documentation
Translating
Starla speaks whatever languages people contribute: the tray app, this README, and the documentation site are all translated on Weblate. Adding a language takes no Rust and no pull request — see doc/translating.md.
License
AGPL-3.0-or-later: See LICENSE.