wrolpi/debian-live-config
Roland 2524a017e1 Adding Calamares as the graphical installer.
Pulls in `calamares` + `calamares-settings-debian` (the upstream Debian
theme/config package).  Calamares runs from the desktop via the
"Install WROLPi to disk" icon: pkexec elevates, the user types the
wrolpi account password, the standard install wizard opens.

The launcher is the upstream install-debian.desktop with Name and
Comment rebranded to "Install WROLPi to disk" / "Install WROLPi onto
this computer's internal drive".  We keep the upstream install-debian
wrapper script (it handles xhost + pkexec calamares correctly) and just
override the visible labels.

After the chroot creates the wrolpi user the hook copies the launcher
to /home/wrolpi/Desktop/install-wrolpi.desktop and marks it executable
so XFCE launches it without an "untrusted application" warning.

Behaviour:

  Live USB boot          XFCE autologs to wrolpi.  Install icon visible.
                         Click → polkit prompts → Calamares wizard.

  After install + reboot wrolpi-bootstrap.service sets up Postgres on
                         /media/wrolpi/config/postgresql/, runs DB init,
                         starts wrolpi-api / app / kiwix / controller.

Two known phase-3 polish items deferred:
- WROLPi branding for Calamares (logo, colors, slideshow); using stock
  Debian branding for now.
- An orphan install-wrolpi.desktop icon survives on the installed
  system (Calamares removes calamares-settings-debian, taking
  install-debian with it, but not the copy in the user's home).  A
  Calamares shellprocess will rm it in phase 3.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-24 12:44:05 -06:00
..
config Adding Calamares as the graphical installer. 2026-05-24 12:44:05 -06:00
files Key changes: 2026-04-04 13:48:19 -06:00
build.sh Merging wrolpi-portable into debian-live-config; unifying Postgres on /media/wrolpi/config/postgresql. 2026-05-24 12:44:05 -06:00
README.md Merging wrolpi-portable into debian-live-config; unifying Postgres on /media/wrolpi/config/postgresql. 2026-05-24 12:44:05 -06:00

Debian Live Config

Build a bootable amd64 ISO that boots into a full WROLPi system on any x86 PC. Users can run WROLPi directly off the USB (a persistence partition is created on the first boot so the database and media directory survive reboots) or install to disk via the Calamares launcher on the desktop.

The chroot-phase build is identical for both modes; the resulting squashfs is what runs in live mode AND what Calamares copies onto the target disk.

See https://live-team.pages.debian.net/live-manual/html/live-manual/index.en.html

Build

sudo ./build.sh                # build from 'release' branch
sudo ./build.sh -b master      # build from a specific branch

Requires Debian / Ubuntu with live-build installed. The resulting ISO is written to this directory as WROLPi-v${VERSION}-amd64.iso.

Flash with Etcher, Rufus, Raspberry Pi Imager, or:

sudo dd if=WROLPi-v${VERSION}-amd64.iso of=/dev/sdX bs=4M status=progress conv=fsync

Layout on disk

The drive carries everything WROLPi needs. Postgres data lives alongside the user's library so a drive moved between hosts keeps its full state:

/media/wrolpi/
  videos/                                ← user-facing media
  archives/
  zims/
  map/
  tags/
  config/
    wrolpi.yaml
    controller.yaml
    fstab.yaml
    ssl/
    postgresql/
      data/                              ← bind-mounted to /var/lib/postgresql
      config/                            ← bind-mounted to /etc/postgresql

Implementation status

  • Phase 1 — merged live + chroot config: Single debian-live-config/ produces a Debian Live ISO with the full WROLPi stack, XFCE auto-login as wrolpi, persistence partition created on first boot.
  • Phase 2 — Calamares installer: Add calamares package and a desktop launcher so users can install WROLPi to disk.
  • Phase 3 — branding + release: WROLPi branding for Calamares, CI on tag, hosting, wrolpi.org docs.

References