mirror of
https://github.com/CyberMind-FR/secubox-deb.git
synced 2026-07-29 09:14:33 +00:00
New module: bridges a single FM broadcast to an Icecast2 MP3 mount and
pushes live RDS RadioText as ICY metadata, so SecuBox webradio + Lyrion
can ingest it as a Favourite remote URL with proper "Artist - Title"
display.
api/main.py: FastAPI on /run/secubox/fmrelay.sock, delegates lifecycle
to fmrelayctl. Endpoints: healthz, version, status, components, access,
mounts, now-playing, start, stop.
sbin/fmrelayctl: bash CTL on the lyrionctl pattern, TOML config_get with
inline-comment stripping. emit_access_json returns the LAN mount URL +
public webradio URL so the admin UI's "Open Webradio →" button reads
its href from /access at runtime (MODULE-GUIDELINES §4 single source of
truth).
sbin/secubox-fmrelay-runner: rtl_fm | ffmpeg -c:a libmp3lame on an
Icecast SOURCE mount. ffmpeg speaks icecast:// natively + handles
reconnects — simpler than ezstream/curl plumbing.
sbin/secubox-fmrelay-icy: parallel rtl_fm @ 171kHz | redsea pipe that
POSTs PI/PS/RT to icecast2/admin/metadata. Two rtl_fm processes share
the dongle for v0.1; v0.2 plans a single stream via sox tee.
nginx/fmrelay.conf: /api/v1/fmrelay/ → unix socket, /fmrelay/ aliases
the static admin page. Both gated by auth_request per dual-vhost MUST.
www/fmrelay/index.html: SecuBox admin with status pill, components,
access, now-playing, mounts table, manual start/stop form.
systemd/secubox-fmrelay.service: User=secubox uvicorn on unix socket,
NoNewPrivileges + ProtectHome + restricted ReadWritePaths.
debian/{rules,compat,postinst,prerm,postrm}: install layout, ensure
secubox user is in plugdev (RTL-SDR), seed /etc/secubox/fmrelay.toml
from example, enable + start the service, nginx reload.
menu.d/72-fmrelay.json: mesh category, 📻 icon.
README.md: full module documentation (API table, CLI, config, deps,
install layout, RTL-SDR sharing note).
Hardware sharing with secubox-sentinelle-gsm via plugdev group; the
cross-package device-claim coordination is a v0.2 follow-up — for now
v0.1 trusts the operator not to dual-run a relay during a GSM scan.
|
||
|---|---|---|
| .. | ||
| 72-fmrelay.json | ||