Files
ARCG-Remote-Station-Software/README.md
OE6DXD 7465c63b97 add OAuth defaults and admin reservation deletion support
Seed rms.auth.oauth plugin settings with a Google OIDC example while keeping the plugin disabled by default, add admin API/UI support to delete individual reservation entries, and extend auth flow handling for OAuth callback redirects and errors.
2026-03-16 13:11:17 +01:00

96 lines
3.2 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)
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
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`.