External App
The External App extension lets you integrate third-party applications installed on your ProxyBox. Instead of SSH-ing into the device to configure and manage each app separately, External App gives every application a consistent interface in the admin dashboard — with configurable settings, start/stop controls, and log viewing.
Each instance points to a manifest.json file that tells ProxyBox how to display the app, what settings it needs, and optionally what systemd service to control.
How It Works
Section titled “How It Works”- A third-party application is installed on the ProxyBox device (either pre-installed or deployed later).
- The application includes a
manifest.jsonfile that describes its name, settings, and optional service. - You create an External App instance in the admin dashboard and point it to the manifest file.
- The app’s settings appear in the dashboard, and you can configure, start, and stop it like any other extension.
This is how ProxyBox supports a growing ecosystem of applications without baking each one into the core firmware.
Settings
Section titled “Settings”| Setting | Type | Description |
|---|---|---|
| Name | string | A short identifier for this app (e.g. qvp, mon). |
| Manifest Path | string | Absolute path to the app’s manifest.json file on the device. |
Manifest Structure
Section titled “Manifest Structure”The manifest file defines what the admin UI shows for this application:
{ "displayName": "My App", "service": "my-app.service", "fields": [ { "name": "apiUrl", "type": "string", "label": "API URL", "default": "https://example.com" }, { "name": "pollInterval", "type": "number", "label": "Poll Interval (seconds)", "default": 60 }, { "name": "enabled", "type": "boolean", "label": "Enabled", "default": true } ]}Manifest Fields
Section titled “Manifest Fields”| Field | Required | Type | Description |
|---|---|---|---|
displayName | Yes | string | Human-readable name shown in the admin UI. |
service | No | string | Systemd service name. If provided, starting/stopping the extension controls this service. |
fields | Yes | array | Array of configurable settings. Each field has name, type (string, number, or boolean), optional label, and optional default. |
Settings defined by the manifest are editable through the admin UI and persisted in a settings.json file alongside the manifest. Changes take effect the next time the extension is started.