Add the reusable RMS core application (server, web UI, plugins, tests, tools) with generic defaults, GPL licensing, and maintainer context documentation so deployments can consume this repo as software source independent of station-specific overlays.
85 lines
2.6 KiB
Markdown
85 lines
2.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
|
|
|
|
Auth
|
|
- `rms.auth.smtp_relay`: email link challenge delivery through SMTP relay
|
|
- `rms.auth.otp_email`: OTP challenge delivery through email
|
|
|
|
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`.
|