Overview
Publish rich output as a web app served by the oly daemon. Each app lives in its own folder under <OLY-ROOT>/wwwroot/apps/ and is reachable at:
http://127.0.0.1:<OLY-PORT>/apps/<app-name>/
Run oly daemon status to discover <OLY-PORT> and <OLY-ROOT>.
Quick start
Simple HTML app
Drop an index.html (plus any assets) into a new folder:
<OLY-ROOT>/wwwroot/apps/<app-name>/index.html
No manifest needed — oly discovers index.html automatically.
SPA or proxied service
Create oly.app.json in the app folder:
{
"title": "My App",
"entry": "index.html",
"redirect_files": ["../shared-assets"]
}
Set the base href to ./ (or /apps/<app-name>/) so relative asset paths resolve correctly when served from the discovered route.
Manifest schema (oly.app.json)
| Field | Type | Description |
|---|---|---|
title |
string? |
Display name. |
description |
string? |
Short description. |
icon_href |
string? |
Icon URL or relative path. |
app_type |
string? |
App type hint. |
redirect_files |
string[] |
Extra asset directories outside the app folder. Oly checks the app folder first, then each redirect directory in order; 404 if not found. |
entry |
string |
Required. URL, path, or HTML file to serve as the entry point. |
Rules
- Use relative asset paths or the
/apps/<app-name>/base — absolute paths will break. - One folder per app, one
index.htmlor oneoly.app.jsonper folder. - Use
redirect_filesto share static assets across apps without copying.
Source: slaveOftime/open-relay — distributed by TomeVault.