Chromium kiosk without a desktop for the Raspberry Pi 3, a Flask web interface on port 8080 (kiosk, system and network management), a restricted root helper, network changes with automatic rollback, a healthcheck timer, install/update/uninstall scripts and a pi-gen image build. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
37 lines
1.6 KiB
HTML
37 lines
1.6 KiB
HTML
<!doctype html>
|
|
<html lang="nl">
|
|
<head>
|
|
<meta charset="utf-8">
|
|
<title>VoxIP Kiosk — eerste configuratie</title>
|
|
<link rel="stylesheet" href="kiosk.css">
|
|
</head>
|
|
<body>
|
|
<main class="stage">
|
|
<img class="logo" src="logo.svg" alt="">
|
|
<h1>Welkom bij VoxIP Kiosk OS</h1>
|
|
<p>Open de beheerinterface op een computer, tablet of telefoon in hetzelfde netwerk:</p>
|
|
<ul class="urls" id="urls"></ul>
|
|
<p>en voer deze setupcode in om een beheerderswachtwoord in te stellen:</p>
|
|
<div class="code" id="code">—</div>
|
|
<p class="hint">De code is eenmalig en verdwijnt zodra het wachtwoord is ingesteld.</p>
|
|
</main>
|
|
<script>
|
|
const params = new URLSearchParams(location.search);
|
|
const scheme = params.get("scheme") === "https" ? "https" : "http";
|
|
const port = params.get("port") || "8080";
|
|
const suffix = (scheme === "http" && port === "80") || (scheme === "https" && port === "443") ? "" : ":" + port;
|
|
const urls = [];
|
|
if (params.get("host")) urls.push(scheme + "://" + params.get("host") + ".local" + suffix);
|
|
(params.get("ips") || "").split(",").filter(Boolean).forEach((ip) => urls.push(scheme + "://" + ip + suffix));
|
|
const list = document.getElementById("urls");
|
|
if (!urls.length) urls.push("Nog geen netwerkverbinding — sluit een netwerkkabel aan");
|
|
urls.forEach((u) => {
|
|
const li = document.createElement("li");
|
|
li.textContent = u;
|
|
list.appendChild(li);
|
|
});
|
|
document.getElementById("code").textContent = params.get("code") || "zie: sudo voxip-kiosk-ctl setup-code";
|
|
</script>
|
|
</body>
|
|
</html>
|