da2923f0e1bab8921b276100be1df6530ed7274b
Make rms.auth.otp_email use SMTP transport with the same host/port/auth/tls settings model as smtp relay, with outbox fallback when SMTP is unavailable. Extend OTP plugin settings schema to expose standard SMTP parameters in plugin config.
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
- Copy
.env.exampleto.env. - Install dependencies:
npm ci
- Start development mode:
npm run dev
- Open
http://localhost:8080.
Plugin Overview
Auth
rms.auth.smtp_relay: email link challenge delivery through SMTP relayrms.auth.otp_email: OTP challenge delivery through emailrms.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/authtokenUrl:https://oauth2.googleapis.com/tokenuserInfoUrl:https://openidconnect.googleapis.com/v1/userinfoscope:openid email profileemailField:emailclientId:<google-client-id>.apps.googleusercontent.comclientSecret:<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 executionrms.station.access.policy: export effective access list for OpenWebRX policies
OpenWebRX+
rms.openwebrx.bandmap: managed band/profile integrationrms.openwebrx.guard: OpenWebRX safety and consistency guard
TX/PTT/Audio
rms.tx.control.native: native TX on/off command providerrms.tx.state.file: file-based TX state providerrms.tx.audio.core: core TX audio session managementrms.microham: microHAM provider for PTT/audio related capabilities
RF/Hardware
rms.rfroute.shell: RF route switching via shell commandsrms.rotor.hamlib: rotor control via hamlib/rotctl
VSWR
rms.vswr.native: native VSWR command providerrms.vswr.nanovna: NanoVNA-based VSWR providerrms.vswr.report_reader: reads and serves VSWR report artifacts
Ops/Help
rms.debug.remote: remote debug snapshot/log providerrms.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:
- RMS Software defaults
- Station-specific overlay repository
- Server environment variables (highest priority)
License
GPL-3.0-only. See LICENSE.
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)
Languages
JavaScript
94%
HTML
3.7%
CSS
2.3%