VoxIP Kiosk OS 1.0.0: Raspberry Pi kiosk with web management
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>
This commit is contained in:
commit
a33c4822bf
96 files changed
+7535
No files matched your search
@@ -0,0 +1,3 @@
|
||||
# VoxIP Kiosk OS: allow the kiosk X server to be started by a system service.
|
||||
allowed_users=anybody
|
||||
needs_root_rights=yes
|
||||
@@ -0,0 +1,10 @@
|
||||
<?xml version="1.0" standalone='no'?>
|
||||
<!DOCTYPE service-group SYSTEM "avahi-service.dtd">
|
||||
<service-group>
|
||||
<name replace-wildcards="yes">VoxIP Kiosk Manager op %h</name>
|
||||
<service>
|
||||
<type>_http._tcp</type>
|
||||
<port>8080</port>
|
||||
<txt-record>path=/</txt-record>
|
||||
</service>
|
||||
</service-group>
|
||||
@@ -0,0 +1,19 @@
|
||||
{
|
||||
"TranslateEnabled": false,
|
||||
"PasswordManagerEnabled": false,
|
||||
"AutofillAddressEnabled": false,
|
||||
"AutofillCreditCardEnabled": false,
|
||||
"BrowserSignin": 0,
|
||||
"SyncDisabled": true,
|
||||
"PromotionalTabsEnabled": false,
|
||||
"MetricsReportingEnabled": false,
|
||||
"SpellcheckEnabled": false,
|
||||
"DefaultBrowserSettingEnabled": false,
|
||||
"DefaultNotificationsSetting": 2,
|
||||
"DefaultGeolocationSetting": 2,
|
||||
"DownloadRestrictions": 3,
|
||||
"PrintingEnabled": false,
|
||||
"BackgroundModeEnabled": false,
|
||||
"HideWebStoreIcon": true,
|
||||
"ShowAppsShortcutInBookmarkBar": false
|
||||
}
|
||||
@@ -0,0 +1,15 @@
|
||||
{
|
||||
"device_name": "VoxIP Kiosk",
|
||||
"url": "https://schermen-ijsselflat.voxip.nl",
|
||||
"refresh_interval": 0,
|
||||
"screen_always_on": true,
|
||||
"screen_off_minutes": 10,
|
||||
"rotation": 0,
|
||||
"resolution": "auto",
|
||||
"zoom": 1.0,
|
||||
"browser_restart": true,
|
||||
"browser_profile": "persistent",
|
||||
"admin_port": 8080,
|
||||
"admin_https": false,
|
||||
"admin_allow_public": false
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
# VoxIP Kiosk OS: bounded journal, few SD-card writes.
|
||||
[Journal]
|
||||
Storage=persistent
|
||||
SystemMaxUse=32M
|
||||
SystemMaxFileSize=8M
|
||||
RuntimeMaxUse=24M
|
||||
MaxRetentionSec=1month
|
||||
# Errors (crit and worse) are always written immediately.
|
||||
SyncIntervalSec=15m
|
||||
RateLimitIntervalSec=30s
|
||||
RateLimitBurst=2000
|
||||
@@ -0,0 +1,11 @@
|
||||
/var/log/voxip-kiosk/*.log {
|
||||
weekly
|
||||
rotate 8
|
||||
maxsize 2M
|
||||
compress
|
||||
delaycompress
|
||||
missingok
|
||||
notifempty
|
||||
create 0640 voxip voxip
|
||||
su voxip voxip
|
||||
}
|
||||
@@ -0,0 +1,4 @@
|
||||
# VoxIP Kiosk OS: the web interface (user voxip) may run exactly one program
|
||||
# as root: the restricted helper, which validates all of its input itself.
|
||||
Defaults:voxip !requiretty
|
||||
voxip ALL=(root) NOPASSWD: /usr/lib/voxip-kiosk/voxip-kiosk-helper
|
||||
@@ -0,0 +1,4 @@
|
||||
# VoxIP Kiosk OS: hardware watchdog. A hung kernel or PID 1 reboots the Pi.
|
||||
[Manager]
|
||||
RuntimeWatchdogSec=15s
|
||||
RebootWatchdogSec=2min
|
||||
@@ -0,0 +1,5 @@
|
||||
# VoxIP Kiosk OS: compressed swap in RAM instead of a swap file on the SD card.
|
||||
[zram0]
|
||||
zram-size = ram / 2
|
||||
compression-algorithm = zstd
|
||||
swap-priority = 100
|
||||
Reference in new issue
Block a user