57 lines
1.4 KiB
Markdown
57 lines
1.4 KiB
Markdown
# RMM OpenWrt Server
|
|
|
|
MVP backend for OpenWrt RMM.
|
|
|
|
## Run
|
|
|
|
```sh
|
|
go run ./server/cmd/rmm-server
|
|
```
|
|
|
|
Environment variables:
|
|
|
|
- `RMM_ADDR` - listen address, default `:8080`
|
|
- `RMM_DB_PATH` - SQLite database path, default `rmm.db`
|
|
- `RMM_ENROLLMENT_TOKEN` - shared enrollment token for MVP, default `dev-enroll-token`
|
|
- `RMM_OPERATOR_TOKEN` - operator API bearer token, default `dev-operator-token`
|
|
- `RMM_OPERATOR_USERNAME` - web UI username, default `admin`
|
|
- `RMM_OPERATOR_PASSWORD` - web UI password
|
|
- `RMM_SESSION_SECRET` - secret used to sign browser sessions
|
|
- `RMM_COOKIE_SECURE` - set `true` behind an HTTPS reverse proxy
|
|
- `RMM_WEB_DIR` - static web UI directory, default `web`
|
|
|
|
## Docker Compose
|
|
|
|
The repository includes a Compose stack with the RMM server and a reverse SSH tunnel sidecar:
|
|
|
|
```sh
|
|
docker compose up -d --build
|
|
```
|
|
|
|
See `docs/docker-compose.md` for router key installation and remote access setup.
|
|
|
|
## MVP API
|
|
|
|
Agent API:
|
|
|
|
- `POST /api/agent/enroll`
|
|
- `POST /api/agent/heartbeat`
|
|
- `POST /api/agent/commands/next`
|
|
- `POST /api/agent/commands/{id}/result`
|
|
|
|
Operator API:
|
|
|
|
- `GET /api/devices`
|
|
- `GET /api/devices/{id}`
|
|
- `POST /api/devices/{id}/commands`
|
|
- `GET /api/devices/{id}/commands`
|
|
- `GET /api/devices/{id}/commands/{command_id}`
|
|
- `POST /api/devices/{id}/commands/{command_id}/cancel`
|
|
- `GET /api/audit-events`
|
|
|
|
Operator API requests require:
|
|
|
|
```http
|
|
Authorization: Bearer dev-operator-token
|
|
```
|