ceos-alpine-installer/spec/install_spec.md
John A. Hoeven a194c14077 Add CE OS Alpine installer v0.0.1 — Tier 0/1/2 dev scaffold
Staged installer set for Alpine Linux x86-64 (tinkerpad/ThinkPad T480).
Covers Base (Tier 0), Minimal (Tier 1), and Basic (Tier 2) tiers with
full phased structure, per-package error capture, and re-runnable test suites.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-10 02:25:38 +02:00

4.5 KiB

CE OS Alpine Installer — Subscript Specifications


lib/ce-common.sh

Field Value
Name ce-common.sh — shared library
Inputs SCRIPT_NAME env var (set by caller before sourcing)
Outputs LOG_FILE written, FAILED_PKGS/MANUAL_PKGS arrays populated
Error behaviour run_test exits on fail mode; all others log-and-continue
Privilege standard user (doas called internally by install_pkg)
Distro target Alpine

lib/base/01_core.sh

Field Value
Name 01_core.sh — enable community repo, core packages, setup-utmp
Inputs none (sources ce-common.sh)
Outputs packages installed; /etc/apk/repositories modified
Error behaviour per-package log-and-continue; setup-utmp warn-only
Privilege requires doas for apk and sed on /etc/apk/repositories
Distro target Alpine

lib/base/02_doas.sh

Field Value
Name 02_doas.sh — doas install and wheel.conf
Inputs none
Outputs doas installed; /etc/doas.d/wheel.conf written
Error behaviour warn if wheel.conf write fails — manual action noted
Privilege requires doas for mkdir/tee on /etc/doas.d
Distro target Alpine

lib/minimal/01_shell.sh — 06_comms.sh

Standard pattern: apk community packages, per-package install_pkg, run_test warn.

Script Packages
01_shell.sh starship, less, mandoc, ncurses
02_terminal.sh tmux, vim, nano
03_files.sh ranger, mc, ncdu, fzf, zoxide, stow
04_vcs.sh git, rsync, openssl, gnupg
05_systools.sh btop, lsof, mosh, dialog
06_comms.sh neomutt, msmtp, isync, calcurse, pass

lib/minimal/07_journal.sh

Field Value
Name 07_journal.sh — python3, pipx, jrnl
Inputs none
Outputs python3 + pipx via apk; jrnl via pipx install
Error behaviour skips jrnl if pipx unavailable; logs failure
Privilege standard user (pipx runs as user)
Distro target Alpine

lib/minimal/08_web.sh

Standard pattern: lynx, w3m.

lib/minimal/09_network.sh

Field Value
Name 09_network.sh — dbus, avahi + rc-update
Inputs none
Outputs dbus + avahi installed; both added to default runlevel
Error behaviour rc-update failures warn-only; logged to MANUAL_PKGS
Privilege doas for apk + rc-update
Distro target Alpine + OpenRC

lib/minimal/10_record.sh

Standard pattern: asciinema, fbgrab.

lib/minimal/11_wiki.sh

Field Value
Name 11_wiki.sh — glow binary from CE repo
Inputs CE_REPO URL (hardcoded to cervelloelettrico.it/bin/amd64/alpine)
Outputs glow installed to ~/.local/bin/glow
Error behaviour graceful skip on unreachable repo, download fail, sha256 mismatch, gpg fail
Privilege standard user (installs to ~/.local/bin)
Distro target Alpine x86-64; CE_REPO path must change for other arches
Doc references cervelloelettrico.it CE repo

lib/minimal/12_access.sh

Field Value
Name 12_access.sh — espeak-ng, espeakup, speech-dispatcher, ly notice
Inputs ARCH (from ce-common.sh)
Outputs espeak removed if present; espeak-ng installed; espeakup if available; speech-dispatcher@edge; ly notice on x86-64
Error behaviour espeak removal warn-only; espeakup skipped if not in repo; speech-dispatcher warn-on-fail; ly skipped with MANUAL notice
Privilege doas for apk del + apk add
Distro target Alpine; espeakup availability varies by release
Doc references wiki.alpinelinux.org/wiki/Using_espeak_on_Alpine_Linux; github.com/dermotbradley/alpine-espeakup

lib/basic/01_comms.sh — 06_utils.sh

Script Packages Notes
01_comms.sh abook, task task = taskwarrior (package name is 'task')
02_monitor.sh nethogs, iproute2, lnav@edge lnav is edge; warn-on-fail + MANUAL note
03_gui.sh cagebreak, firefox, xwayland /boot/cmdline.txt skip noted; x86-64 only meaningful
04_media.sh cmus, mpv, ffmpeg, imagemagick, fbida-fbi package is 'fbida-fbi' not 'fbida'
05_fonts.sh figlet, nerd-fonts@edge nerd-fonts confirmed package name (edge/community)
06_utils.sh tealdeer, restic, jq, bc, zip, unzip, xz tealdeer (not 'tldr')

Source: ce-authored Source-type: ce-authored Licence: Public Domain — CE FFM Policy Verified-on: 2026-06-10 Session: ceos-alpine-installer-v0.0.1-dev