Your Name 8ce54794ee
gates / consistency-and-conventions (push) Successful in 27s
fix: pos ai alias create aborts on empty system prompt — menu_ask_value --allow-empty
User report: pressing Enter on 'System prompt (empty = use built-in)'
silently returned to the menu — no alias created, and step labels read
[1/4] [2/4] in a 5-step flow.

Detective (pre-existing, not a 2026-09-06 regression): menu_ask_value's
documented contract is 'rc 1 = cancel, or empty answer with no default';
the step-4 call passed an empty default so the advertised empty answer
hit rc 1 and '|| return 0' aborted the flow. Same latent trap at the
alias-name step (empty-name warn/re-prompt was dead code). 11 other
call sites are correct (6 external rely on empty=cancel, 4 pass
defaults) — no global semantic change allowed.

Architect: opt-in --allow-empty flag on menu_ask_value (backward
compatible; empty+no-default -> rc 0 + empty value; genuine cancel/EOF
stays rc 1; default still wins). Builder: implemented in lib/menu-lib.sh
+ bin/pos-ai-alias (steps 1-2 relabeled /5, flag at the two approved
sites); 7-case smoke matrix PASS.

Tests: tests/t-menu-allow-empty.sh (30 checks) — semantics matrix
against the real menu_ask_value via non-TTY stdin, reader-contract
probes (empty-Enter rc 0 vs EOF rc 1), static guards on step labeling,
the exactly-2 flag call sites, edit-flow untouched, and a scope fence
over all pos-* tools. Pty E2E proven feasible (script -qec, 3 scenarios)
and documented in the Tester report; the E2E file itself remains a
follow-up.

Verified: make gen idempotent; make check OK; make lint 0 FAIL, 0 WARN;
make test 17 files / 299 checks / 0 fail / 0 skip (~49s); bash -n clean.
2026-09-07 02:04:30 -04:00
2026-09-04 11:09:21 -04:00
.
2026-07-28 10:28:11 -04:00
.
2026-08-21 09:53:10 -04:00
2026-09-04 11:09:21 -04:00
2026-09-04 11:09:21 -04:00

Linux_post_install — Personal Bootstrap & Homelab Toolkit

One command turns a bare Debian/Ubuntu install into a fully productive machine.

What is this

After reinstalling Linux you usually need to install packages, set up SSH, configure a firewall, and install apps. This repo automates all of that in one go.

It is a personal toolkit — a bootstrap script, a unified pos CLI for everyday tasks, optional app installers, and self-hosted services via ScaleTail + Tailscale.

What you get:

  • 25+ system packages installed automatically
  • The pos CLI: AI (Gemini chat), network, Docker (compose + vbox VMs), media, system, SSH, share (USB over network + NFS), communication (Telegram), and entertainment (public-API plugins → Telegram) tools
  • Wi-Fi hotspot tools (create_ap, wihotspot-gui) via pos network hotspot
  • pos tree — browse the whole CLI: categories, commands, and subcommands
  • 15 optional desktop apps (VS Code, Brave, OBS, Tailscale, …) — pick what you want
  • 119+ self-hosted services with Tailscale access (Jellyfin, Home Assistant, …)
  • systemd services for SSH agent, boot-time automation, and a daily Telegram health digest (pos system health)
  • Everything lands in /usr/local/bin/ — you can delete the repo after install

Quick Start

git clone https://gitea.skink-platy.ts.net/admin/Linux_post_install.git
cd Linux_post_install
./install.sh              # core: packages + CLI + services + ScaleTail
./install.sh --feature    # also install features/ scripts (asks before overwriting)
./install.sh --apps       # also install optional desktop apps (interactive)
Flag What it does
--feature Install features/ scripts to /usr/local/bin/, sets their flags
--apps Interactive app picker after core install
--full Core install + all apps (non-interactive)
--dry-run Preview without executing
--skip <phase> Skip a phase: preinstall, scripts, postinstall, scalepoint, apps
--steps <spec> Run only specific phases, e.g. --steps 1,3
--no-color Disable colored output

Documentation

Topic Where
Docs index DOC/README.md
pos HOW-TO guides (recipes + troubleshooting) DOC/HOWTO.md
Core scripts (installer, libs, features) — how they work + config DOC/SCRIPTS.md
pos CLI reference (all commands, compose config, wrappers) DOC/POS.md
Optional apps (picker + full catalog) DOC/APPS.md
Systemd services & bash completion DOC/SYSTEMD.md
Developer guide (add tools/apps/features) DOC/DEV.md
Algorithm diagrams DOC/algorithm.md
S
Description
No description provided
Readme 14 MiB
Languages
Shell 99.9%