108 lines
3.6 KiB
Markdown
108 lines
3.6 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
|
|
|
|
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
|