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>
This commit is contained in:
1 parent
33ef898fcc
commit
f8303754f7
25 files changed
+899
-20
No files matched your search
@@ -23,8 +23,9 @@ hardware staat in [`docs/HARDWARE-TEST.md`](docs/HARDWARE-TEST.md).
|
||||
|
||||
### Optie A — kant-en-klare image
|
||||
|
||||
1. Bouw de image (zie hieronder) of gebruik een uitgebrachte
|
||||
`*-daynivo-kiosk-os-*.img.xz`.
|
||||
1. Download de nieuwste `*-daynivo-kiosk-os-*.img.xz` bij de
|
||||
[releases](https://git.rothman.nl/rothman/daynivo-kiosk-os/releases),
|
||||
of bouw hem zelf (zie hieronder).
|
||||
2. Schrijf hem met **Raspberry Pi Imager** (*Eigen image gebruiken*) of
|
||||
**balenaEtcher** naar een microSD-kaart van 16 GB of groter.
|
||||
3. Optioneel, in Raspberry Pi Imager → *OS-aanpassingen*: wifi, gebruiker
|
||||
@@ -44,8 +45,17 @@ Vereist: Raspberry Pi OS Lite Bookworm of Trixie met NetworkManager (de
|
||||
standaard sinds Bookworm).
|
||||
|
||||
```bash
|
||||
sudo apt-get install -y git
|
||||
git clone <url-van-deze-repository> daynivo-kiosk-os
|
||||
curl -fsSL https://daynivo.nl/kiosk/install.sh | sudo bash -s -- \
|
||||
--url "https://schermen-ijsselflat.voxip.nl" --name "IJsselflat" --hostname ijsselflat
|
||||
```
|
||||
|
||||
`install-online.sh` (dat is wat daynivo.nl serveert, en het hangt ook bij
|
||||
elke release) haalt de nieuwste release op, controleert de SHA-256, pakt hem
|
||||
uit in `/opt/daynivo-kiosk-os/<versie>` en draait daar `install.sh`. Git is
|
||||
niet nodig. Vanuit een clone kan het ook:
|
||||
|
||||
```bash
|
||||
git clone https://git.rothman.nl/rothman/daynivo-kiosk-os.git
|
||||
cd daynivo-kiosk-os
|
||||
sudo ./install.sh --url "https://schermen-ijsselflat.voxip.nl" --name "IJsselflat" --hostname ijsselflat
|
||||
```
|
||||
@@ -60,6 +70,23 @@ de Daynivo-repository)? Dan neemt `install.sh` de display-URL (inclusief
|
||||
|
||||
### Updaten
|
||||
|
||||
In de webinterface onder **Systeem → Software-updates**: *Nu controleren*,
|
||||
*Bijwerken naar …*, en het vinkje **Automatisch bijwerken**. Elke nacht
|
||||
tussen 03:00 en 05:00 (`voxip-kiosk-update.timer`) kijkt de kiosk of er een
|
||||
nieuwe release is; met het vinkje aan installeert hij die meteen. Dat werkt
|
||||
ook op een apparaat dat met de image of vanuit een clone is geïnstalleerd.
|
||||
Vanaf de commandoregel:
|
||||
|
||||
```bash
|
||||
sudo /usr/lib/voxip-kiosk/voxip-kiosk-updater --check # alleen kijken
|
||||
sudo /usr/lib/voxip-kiosk/voxip-kiosk-updater --install # nieuwste release installeren
|
||||
```
|
||||
|
||||
De updater installeert alleen een nieuwere versie met een kloppende
|
||||
checksum, pakt hem uit in `/opt/daynivo-kiosk-os/<versie>` (de laatste twee
|
||||
blijven bewaard) en draait daar `update.sh --no-pull`. Vanuit een clone kan
|
||||
het ook met git:
|
||||
|
||||
```bash
|
||||
cd daynivo-kiosk-os
|
||||
sudo ./update.sh # git pull --ff-only + back-up van /etc/voxip-kiosk + install.sh --upgrade
|
||||
@@ -117,6 +144,34 @@ bouwen zijn. Er bestaat geen snapshot-archief voor Raspberry Pi OS, dus
|
||||
twee builds op verschillende dagen kunnen nieuwere pakketversies bevatten.
|
||||
Bewaar voor een uitrol daarom de gebouwde `.img.xz` zelf.
|
||||
|
||||
## Releases
|
||||
|
||||
Een release maak je door `VERSION` te verhogen, te committen en een tag met
|
||||
hetzelfde nummer te pushen:
|
||||
|
||||
```bash
|
||||
echo 1.2.0 > VERSION && git commit -am "Release 1.2.0"
|
||||
git tag v1.2.0 && git push && git push origin v1.2.0
|
||||
```
|
||||
|
||||
Gitea Actions (`.github/workflows/release.yml`) draait dan de tests en maakt
|
||||
een release met `daynivo-kiosk-os-<versie>.tar.gz` (+ `.sha256`) en
|
||||
`install-online.sh`. Daarna bouwt dezelfde workflow het SD-image en hangt het
|
||||
`.img.xz` (+ `.sha256`) aan dezelfde release; dat duurt 30 tot 90 minuten of
|
||||
langer. Zodra de tar-bestanden er staan, zien de kiosks de nieuwe versie.
|
||||
|
||||
Vereist op de Gitea-server:
|
||||
|
||||
- een **act_runner** met het label `ubuntu-latest`;
|
||||
- voor het image: `container.privileged: true` in de runnerconfiguratie
|
||||
(pi-gen heeft loop-devices en binfmt_misc nodig) en genoeg schijfruimte
|
||||
(± 15 GB tijdens het bouwen);
|
||||
- de maximale bijlagegrootte (`[attachment] MAX_SIZE` in `app.ini`, in MB)
|
||||
groter dan het image (± 1 GB);
|
||||
- optioneel een repository-secret `RELEASE_TOKEN` (token met schrijfrecht op
|
||||
de repository), als het standaardtoken van de workflow geen releases mag
|
||||
maken.
|
||||
|
||||
## Beheer
|
||||
|
||||
### Webinterface — `http://<hostname>.local:8080`
|
||||
@@ -164,6 +219,7 @@ journalctl -u voxip-kiosk-browser -u voxip-kiosk-agent -f
|
||||
| `admin_port` | `8080` | poort van de beheerinterface |
|
||||
| `admin_https` | `false` | HTTPS met zelfondertekend certificaat |
|
||||
| `admin_allow_public` | `false` | ook toegang vanaf publieke IP-adressen (afgeraden) |
|
||||
| `auto_update` | `false` | elke nacht een nieuwe release installeren |
|
||||
|
||||
Wijzigingen via de webinterface of `voxip-kiosk-ctl` worden atomair
|
||||
opgeslagen, met een `.bak` van de vorige versie. Een URL-wijziging gaat in
|
||||
|
||||
Reference in new issue
Block a user