Files
ARCG-Remote-Station-Software/README.md
OE6DXD 2b05057aa2 add configurable OAuth auth plugin support
Introduce a new rms.auth.oauth auth method plugin for OAuth/OIDC code flow with standard provider settings (authorize/token/userinfo URLs, client credentials, scope, redirect URI and extra params). Add server callback handling and OAuth challenge state tracking, UI redirect/error handling, and keep the plugin disabled by default via manifest defaultEnabled=false.
2026-03-16 12:57:30 +01:00

86 lines
2.7 KiB
Markdown

# 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:
```bash
npm ci
```
3. Start development mode:
```bash
npm run dev
```
4. Open `http://localhost:8080`.
## Plugin Overview
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)
Station & Access
- `rms.station.shell`: station activation/deactivation command execution
- `rms.station.access.policy`: export effective access list for OpenWebRX policies
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
RF/Hardware
- `rms.rfroute.shell`: RF route switching via shell commands
- `rms.rotor.hamlib`: rotor control via hamlib/rotctl
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
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`.