-
Notifications
You must be signed in to change notification settings - Fork 0
Configuration Reference
maxic edited this page Aug 27, 2026
·
1 revision
Webpage Signage Runner stores its persistent configuration in a clean JSON format. All values are strictly validated using a Zod schema upon startup and modification.
The config.json file is located in the standard application data path for each operating system:
| Platform | Configuration Path |
|---|---|
| Windows |
%APPDATA%\webpage-signage-runner\config.json (e.g. C:\Users\<User>\AppData\Roaming\webpage-signage-runner\config.json) |
| Linux | ~/.config/webpage-signage-runner/config.json |
{
"version": "1.0.0",
"defaultUrl": "https://www.youtube.com",
"hideCursorGlobal": true,
"defaultReloadIntervalMinutes": 60,
"defaultRetryIntervalSeconds": 10,
"autoStartOnBoot": true,
"emergencyShortcut": "CommandOrControl+Shift+C",
"api": {
"enabled": true,
"port": 9191,
"host": "0.0.0.0",
"authToken": "signage-secret-token-12345",
"cors": true
},
"watchdog": {
"maxRetries": 10,
"unresponsiveTimeoutSeconds": 15,
"clearCacheOnReload": true,
"autoRecoverCrashes": true
},
"displays": [
{
"id": 1,
"label": "Lobby Main Video Wall (YouTube Live Feed)",
"url": "https://www.youtube.com",
"httpMethod": "GET",
"headers": {
"Authorization": "Bearer sample-token",
"X-Custom-Secret": "secret-123"
},
"reloadIntervalMinutes": 60,
"retryIntervalSeconds": 10,
"hideCursor": true,
"zoomFactor": 1.0,
"enabled": true
},
{
"id": 2,
"label": "Internal Metrics Feed (POST)",
"url": "https://dashboard.company.internal/kiosk",
"httpMethod": "POST",
"headers": {
"Authorization": "Bearer metrics-token-9988",
"Content-Type": "application/json"
},
"requestBody": "{\"stationId\": 2, \"kioskMode\": true}",
"reloadIntervalMinutes": 120,
"retryIntervalSeconds": 15,
"hideCursor": true,
"zoomFactor": 1.25,
"enabled": true
}
]
}| Field | Type | Default | Description |
|---|---|---|---|
version |
string |
"1.0.0" |
Configuration schema version. |
defaultUrl |
string |
"https://www.youtube.com" |
Default fallback URL assigned to unconfigured or hotplugged screens. |
hideCursorGlobal |
boolean |
true |
When true, suppresses mouse pointers across all displays by default. |
defaultReloadIntervalMinutes |
number |
60 |
Default periodic reload interval in minutes (0 to disable). |
defaultRetryIntervalSeconds |
number |
10 |
Default delay in seconds before retrying after load failures. |
autoStartOnBoot |
boolean |
true |
Configures OS autostart on user login (Windows registry / Linux desktop entry). |
emergencyShortcut |
string |
"CommandOrControl+Shift+C" |
Electron accelerator string for admin unlock hotkey. |
| Field | Type | Default | Description |
|---|---|---|---|
api.enabled |
boolean |
true |
Enables or disables the embedded HTTP management server. |
api.port |
number |
9191 |
TCP port for the REST server and Swagger UI (1024-65535). |
api.host |
string |
"0.0.0.0" |
Bind address. Use "0.0.0.0" for LAN access or "127.0.0.1" for localhost only. |
api.authToken |
string |
"" |
Optional secret token required for authenticated API endpoints. |
api.cors |
boolean |
true |
Injects Access-Control-Allow-Origin: * headers for web dashboard integration. |
| Field | Type | Default | Description |
|---|---|---|---|
watchdog.maxRetries |
number |
10 |
Maximum consecutive offline retry attempts before remaining on offline screen. |
watchdog.unresponsiveTimeoutSeconds |
number |
15 |
Seconds of renderer unresponsiveness allowed before triggering a hard reboot. |
watchdog.clearCacheOnReload |
boolean |
true |
Clears Chromium disk and memory cache during periodic reloads. |
watchdog.autoRecoverCrashes |
boolean |
true |
Automatically recreates windows when render-process-gone occurs. |
| Field | Type | Default | Description |
|---|---|---|---|
id |
number / string
|
Required | Electron display ID or screen index matching physical hardware. |
label |
string |
"" |
Descriptive name (e.g. "Main Lobby Screen", "Elevator #2"). |
url |
string |
"https://www.youtube.com" |
Target web application or video feed URL to display. |
httpMethod |
string |
"GET" |
HTTP request method (GET, POST, or PUT). |
headers |
object |
{} |
Custom key-value HTTP headers sent with the request. |
requestBody |
string |
"" |
Raw string payload sent with POST or PUT requests. |
reloadIntervalMinutes |
number |
60 |
Per-screen cache purge and reload interval in minutes (0 to disable). |
retryIntervalSeconds |
number |
10 |
Per-screen offline retry interval in seconds. |
hideCursor |
boolean |
true |
Screen-specific mouse cursor hiding override. |
zoomFactor |
number |
1.0 |
Content zoom factor (0.5 = 50%, 1.0 = 100%, 1.5 = 150%, 2.0 = 200%). |
userAgent |
string |
"" |
Optional custom User-Agent string. |
partition |
string |
"" |
Isolated session partition for separate cookies/localstorage per display. |
enabled |
boolean |
true |
Set to false to disable kiosk projection on this screen. |
Webpage Signage Runner Wiki • Created & Maintained with ❤️ by Maximiliano Contartesi • LinkedIn • GitHub Repository • MIT License
v1.0.0 • MIT License
By Maximiliano Contartesi
By Maximiliano Contartesi