A web app manifest, the brand icons and the theme color, so browsers offer to install the console and it opens in its own window. Every URL is relative to <base>, which the server rewrites per mount, so /admin and /account each install as their own app. No service worker: installing no longer needs one, and the console has nothing to do offline.
33 lines
1.4 KiB
JSON
33 lines
1.4 KiB
JSON
{
|
|
"name": "inbuxa Admin",
|
|
"short_name": "inbuxa Admin",
|
|
"description": "Administration for the inbuxa mail server",
|
|
"_comment": "JSON has no comments, so: every URL below is relative on purpose. The server mounts this one bundle at /admin and at /account, and manifest members resolve against the manifest's own address, so each mount installs as its own app with nothing substituted at build time. It is .json rather than .webmanifest because the server's bundle loader types files by extension and knows json but not webmanifest.",
|
|
"_comment_id": "There is deliberately no `id`. The spec resolves it against the origin of start_url rather than this file, so it cannot name a mount; the default id is start_url, which already can. Adding one later gives every installed copy a new identity and orphans it.",
|
|
"start_url": "./",
|
|
"scope": "./",
|
|
"display": "standalone",
|
|
"orientation": "any",
|
|
"categories": ["productivity", "utilities"],
|
|
"background_color": "#fbfaf7",
|
|
"theme_color": "#0d8a82",
|
|
"icons": [
|
|
{
|
|
"src": "img/icon-192.png?v=2026-09-27a",
|
|
"sizes": "192x192",
|
|
"type": "image/png"
|
|
},
|
|
{
|
|
"src": "img/icon-512.png?v=2026-09-27a",
|
|
"sizes": "512x512",
|
|
"type": "image/png"
|
|
},
|
|
{
|
|
"src": "img/icon-maskable.png?v=2026-09-27a",
|
|
"sizes": "192x192",
|
|
"type": "image/png",
|
|
"purpose": "maskable"
|
|
}
|
|
]
|
|
}
|