20 Commits
Author SHA1 Message Date
rothmanandClaude Opus 5.5 88e60f9bf9 Release 1.3.0
CI / test-bookworm (push) Successful in 28s
CI / test-latest (push) Successful in 32s
Release / package (push) Successful in 32s
Release / image (push) In progress
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-05 23:59:04 +01:00
rothmanandClaude Opus 5.5 eb0242c182 Rename every remaining voxip name to daynivo, with a one-time migration
CI / test-bookworm (push) Successful in 29s
CI / test-latest (push) Successful in 31s
Services (daynivo-kiosk-*, daynivo-network-guard, daynivo-boot-import),
programs in /usr/lib/daynivo-kiosk, folders /etc, /var/lib, /var/log and
/var/cache daynivo-kiosk*, the system user daynivo, DAYNIVO_* settings,
the plymouth theme, network profiles daynivo-eth0/wlan0, the image stage
and its first user daynivoadmin.

install.sh moves a kiosk installed up to 1.2.x over once: old services
stopped and removed, folders moved (configuration, password, browser
profile, logs) with symlinks under the old names, the voxip user renamed
with the same uid, network profiles renamed unless a change awaits
confirmation, and old leftovers removed. Tested by upgrading a configured
1.2.0 installation in a container, and running the install a second time.

Old names keep working where people type or place them: voxip-config.json,
voxip-authorized_keys, voxip-network-reset, voxip-kiosk-ctl, and
VOXIP_DEFAULT_URL / VOXIP_DEVICE_NAME for image builds.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-05 23:58:03 +01:00
rothmanandClaude Opus 5.5 6733aacb6e Rename the Python package to daynivo_kiosk
CI / test-bookworm (push) Successful in 29s
CI / test-latest (push) Successful in 33s
src/voxip_kiosk -> src/daynivo_kiosk, with every import, the launchers,
install.sh, the Makefile and the manager's gunicorn app path. An upgrade
replaces /usr/lib/voxip-kiosk/python as a whole, so the old package
disappears; tested by upgrading an installation of the previous commit.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-05 23:52:39 +01:00
rothman d0f3206ff4 Release 1.2.0
CI / test-bookworm (push) Successful in 28s
CI / test-latest (push) Successful in 33s
Release / package (push) Successful in 29s
Release / image (push) Successful in 46m7s
2026-11-05 23:26:41 +01:00
rothmanandClaude Opus 5.5 b0840d240e Daynivo names for the files on the SD card and the command line tool
CI / test-bookworm (push) Successful in 25s
CI / test-latest (push) Successful in 31s
- daynivo-config.json, daynivo-authorized_keys and daynivo-network-reset
  on the boot partition; errors go to daynivo-config.error.txt.
- daynivo-kiosk-ctl, with voxip-kiosk-ctl as a symlink to it.
- The voxip-* names keep working, so existing SD cards and instructions
  stay valid; when both config files are present the Daynivo one is
  applied last.
- Internal names (services, /etc/voxip-kiosk, user voxip) are unchanged.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-05 23:25:42 +01:00
rothmanandClaude Opus 5.5 348644a48a CI: drop the pull_request trigger
CI / test-bookworm (push) Successful in 29s
CI / test-latest (push) Successful in 33s
Release / package (push) Successful in 32s
Release / image (push) Successful in 45m5s
The self-hosted runner allows privileged containers; a fork's pull
request could otherwise run its own workflow with root on that machine.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-05 19:49:09 +01:00
rothmanandClaude Opus 5.5 f8303754f7 Releases on Gitea, one-line installer and auto-update (1.1.0)
- .github/workflows/release.yml: a tag vX.Y.Z runs the tests, publishes
  daynivo-kiosk-os-X.Y.Z.tar.gz (+ .sha256) and install-online.sh as a
  Gitea release, then builds the SD image with pi-gen and attaches it.
- install-online.sh: curl | sudo bash installer for the latest release.
- voxip-kiosk-updater: checks the latest release, verifies and unpacks a
  newer one under /opt/daynivo-kiosk-os and runs its update.sh. A daily
  timer checks around 03:00 and installs when auto_update is on.
- Web interface: Systeem -> Software-updates with the auto-update switch,
  check now and install now (helper verbs update-check / update-install).
- CI checks out with plain git, so it runs on Gitea's act_runner too.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-05 19:30:34 +01:00
rothmanandClaude Opus 5.5 33ef898fcc Rename the repository to daynivo-kiosk-os in docs and image name
CI / test-bookworm (push) Failing after 4s
CI / test-latest (push) Successful in 32s
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-05 19:04:49 +01:00
rothmanandClaude Opus 5.5 4e20e358aa Rename the visible VoxIP texts to Daynivo
Product name (Daynivo Kiosk OS), default device name, kiosk screens,
service descriptions, installer output and docs. Internal names
(voxip-kiosk-*, /etc/voxip-kiosk, user voxip, VOXIP_* variables) stay.
An update renames a device still called "VoxIP Kiosk" to the new default.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-05 18:59:16 +01:00
rothmanandClaude Opus 5.5 f30f602d4f Rename the web interface to Daynivo Kiosk Manager with the Daynivo logo
CI / test-bookworm (push) Failing after 3s
CI / test-latest (push) Successful in 32s
The Daynivo mark sits on a small white tile in the navy bar, where its
navy parts would otherwise disappear; the favicon is Daynivo's too.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-05 18:57:32 +01:00
rothmanandClaude Opus 5.5 e615f970bc Rename InfoFlow to Daynivo: texts and boot splash logo
CI / test-bookworm (push) Failing after 2s
CI / test-latest (push) Successful in 31s
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-05 00:05:01 +01:00
rothmanandClaude Opus 5.5 be80288a6e Show the offline screen when the network link is gone; plain panel
CI / test-bookworm (push) Failing after 2s
CI / test-latest (push) Successful in 36s
With no address on any interface (cable out, no wifi) the kiosk now
switches to the offline screen right away and returns when the network
and server are back. An unreachable server with the network up still
leaves the page running for InfoFlow's offline cache. The panel on the
local pages loses its blue top edge.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-04 23:22:19 +01:00
rothmanandClaude Opus 5.5 4d061f5211 Boot splash with the InfoFlow logo instead of the Raspberry Pi one
CI / test-bookworm (push) Failing after 2s
CI / test-latest (push) Successful in 30s
Own plymouth theme (logo centred on white), quiet kernel command line
without boot text, Raspberry logos or cursor, and no firmware rainbow
square. The initramfs is only rebuilt when the theme changes;
uninstall.sh restores the previous theme.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-04 23:19:32 +01:00
rothmanandClaude Opus 5.5 19595aaf39 Kiosk start, offline and setup pages in the InfoFlow display style
CI / test-bookworm (push) Failing after 2s
CI / test-latest (push) Successful in 31s
Dark grey background, name top left, date and clock top right, a flat
panel with a blue top edge. The pages show the kiosk link (token masked)
and the management address; the clock code is shared in kiosk.js.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-04 23:13:03 +01:00
rothmanandClaude Opus 5.5 efc581e0ae Move reload/restart/shutdown into an Acties menu in the top bar
CI / test-bookworm (push) Failing after 4s
CI / test-latest (push) Successful in 31s
The actions are now on every page in the same place instead of a button
row that differed per page.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-04 22:49:24 +01:00
rothmanandClaude Opus 5.5 7e07428a81 Do not delay a browser restart without a screen; clearer reload error
CI / test-bookworm (push) Failing after 2s
CI / test-latest (push) Successful in 30s
Without a connected monitor every Chromium start waited 30 s for one, so
DevTools was unreachable for ~35 s after a restart. Only wait right after
boot. The reload error now says Chromium may still be starting.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-04 22:44:42 +01:00
rothmanandClaude Opus 5.5 b790f57531 Calmer management UI: neutral buttons and badges, smaller buttons
Navy as the only accent, secondary buttons for restart/shutdown, the
destructive action as a red outline, status colour only in the badge
dot, no underline on the active nav item.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-04 22:41:16 +01:00
rothmanandClaude Opus 5.5 1eabb839d3 Let the manager run the helper through sudo
ProtectKernelTunables, ProtectKernelModules and LockPersonality imply
NoNewPrivileges for a non-root unit, so sudo refused to start the helper
(hostname, reboot, network changes all failed). Guarded by a test.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-04 22:31:52 +01:00
rothmanandClaude Opus 5.5 e14e1f83ca Stop a running desktop display manager during a live install
On a Pi OS Desktop image lightdm keeps display :0 until the next reboot,
so the kiosk X server failed with 'server already running'. Disabled
display managers are recorded and re-enabled by uninstall.sh.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-04 22:25:17 +01:00
rothmanandClaude Opus 5.5 a33c4822bf VoxIP Kiosk OS 1.0.0: Raspberry Pi kiosk with web management
CI / test-bookworm (push) Failing after 11s
CI / test-latest (push) Successful in 1m27s
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>
2026-11-04 21:38:49 +01:00