ARCG Admin (Claude) 0488f6e25d feat(wavelog): push station frequency/mode to Wavelog per operator
Add a CAT integration so the station's current frequency and mode are
reported to each operator's personal Wavelog logbook via Wavelog's radio
API (POST <baseUrl>/index.php/api/radio).

- New plugin rms.wavelog.cat (capability logging.cat.publish): posts
  {key, radio, frequency, mode}. Base URL / radio name come from plugin
  settings or env (WAVELOG_BASE_URL, WAVELOG_RADIO_NAME); no secrets in repo.
- Core hook in the OpenWebRX band-select flow pushes centerFreqHz + startMod
  for the active operator, best-effort (never breaks the band change).
- Per-user Wavelog API key stored on the user record; PUT /v1/me/wavelog-key
  to set it, returned by GET /v1/me and the OpenWebRX session issue response.
- UI: Wavelog API key field in the OpenWebRX panel (visible when generating
  the session link), with i18n (de/en).
- Docs, .env.example entries, and a unit test for the mode mapping.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-10-22 20:47:58 +02:00

RMS Software

RMS Software is a generic remote-station control platform with a web UI, passwordless authentication, plugin-based hardware integration, and OpenWebRX+ orchestration.

This repository is intentionally station-agnostic. Site-specific deployment, host bindings, and operational overrides belong in a separate deployment repository.

Core Features

  • Passwordless auth via email link and OTP methods
  • JWT access/refresh session model with role-based permissions
  • Plugin runtime with capability provider switching
  • OpenWebRX+ session/ticket integration and managed band/profile support
  • Station lifecycle controls (activate/deactivate, ownership, safety locks)
  • Rotor, RF route, TX/PTT and VSWR integration via plugins
  • Activity/audit logs and SSE event stream for live UI updates

Quick Start

  1. Copy .env.example to .env.
  2. Install dependencies:
npm ci
  1. Start development mode:
npm run dev
  1. Open http://localhost:8080.

Plugin Overview

Core and plugin docs:

  • Core: docs/core-overview.md
  • Plugin index: docs/plugins/README.md

Auth

  • rms.auth.smtp_relay: email link challenge delivery through SMTP relay
  • rms.auth.otp_email: OTP challenge delivery through email
  • rms.auth.oauth: OAuth/OIDC authorization-code login (disabled by default; configurable authorize/token/userinfo/client settings)

Google example (plugin settings):

  • authorizeUrl: https://accounts.google.com/o/oauth2/v2/auth
  • tokenUrl: https://oauth2.googleapis.com/token
  • userInfoUrl: https://openidconnect.googleapis.com/v1/userinfo
  • scope: openid email profile
  • emailField: email
  • clientId: <google-client-id>.apps.googleusercontent.com
  • clientSecret: <google-client-secret>
  • redirectUri: <public-base-url>/v1/auth/oauth/callback (or leave empty to auto-derive)

Station & Access

  • rms.station.shell: station activation/deactivation command execution
  • rms.station.access.policy: export effective access list for OpenWebRX policies
  • Hardware guide: docs/hardware-station-shell-guide.md

OpenWebRX+

  • rms.openwebrx.bandmap: managed band/profile integration
  • rms.openwebrx.guard: OpenWebRX safety and consistency guard

TX/PTT/Audio

  • rms.tx.control.native: native TX on/off command provider
  • rms.tx.state.file: file-based TX state provider
  • rms.tx.audio.core: core TX audio session management
  • rms.microham: microHAM provider for PTT/audio related capabilities
  • Hardware guides: docs/hardware-tx-control-guide.md, docs/hardware-microham-guide.md

RF/Hardware

  • rms.rfroute.shell: RF route switching via shell commands
  • rms.rotor.hamlib: rotor control via hamlib/rotctl
  • Hardware guides: docs/hardware-rfroute-guide.md, docs/rotor-rot1prog-guide.md, docs/rotor-alfaspid-rak-rot1prog-manual-notes.md
  • Manufacturer PDF copy: docs/RAK_Rot1Prog.pdf

VSWR

  • rms.vswr.native: native VSWR command provider
  • rms.vswr.nanovna: NanoVNA-based VSWR provider
  • rms.vswr.report_reader: reads and serves VSWR report artifacts
  • Hardware guide: docs/hardware-vswr-nanovna-guide.md

Ops/Help

  • rms.debug.remote: remote debug snapshot/log provider
  • rms.help.basic: basic UI help content provider

Repository Boundaries

This repository contains:

  • generic software source (server, public, plugins)
  • generic defaults (.env.example)

This repository does not contain:

  • station-specific hostnames, hardware paths, or production secrets
  • deployment overlays for specific stations

Recommended layering for deployments:

  1. RMS Software defaults
  2. Station-specific overlay repository
  3. Server environment variables (highest priority)

License

GPL-3.0-only. See LICENSE.

x

Description
Remotestation-ARCG ist die modulare Steuer- und Betriebsplattform für die ARCG-Remote-Station. Die Software kombiniert eine moderne Web-UI mit passwortloser Authentifizierung, Rollen-/Freigabe-Workflow und pluginbasierter Hardware-Anbindung für OpenWebRX+, TX/PTT, Rotor, RF-Route und SWR/VSWR. Kernmerkmale: Passwortloser Login (E-Mail-Link/OTP), JWT Access+Refresh, Rollenmodell (admin, approver, operator) Stationsbetrieb mit Besitzlogik, Reservierung/Zeitfenster, Wartungsmodus, Audit-Log OpenWebRX+ Integration inkl. Session/Ticket-Handling, Band-/Profilsteuerung, Sicherheits-Guards Plugin-System mit Capability-Providern (jede Hardware-Integration austauschbar) API-first Architektur (Web-UI + Android/Clients über dieselben Endpunkte)
Readme 2.5 MiB
Languages
JavaScript 93.9%
HTML 3.8%
CSS 2.3%