Your Name 35eb90a58b
gates / consistency-and-conventions (push) Successful in 22s
feat: share clients — t=type manual mountpoint (existing path without create)
User report: smb-client/nfs-client mountpoint step could only auto-suggest
candidates, or create a fresh dir behind a hidden 'n=new' key — no way to
type an arbitrary existing path as the mountpoint, so the manual option
was effectively invisible (candidates from /media etc. always populated
the picker, hiding the typing path entirely). Designer framing: capability
gap + discoverability gap; backend already handled arbitrary paths (CLI
cmd_mount + ensure_mountpoint), only the interactive menu blocked it.

Change (identical in bin/pos-share-smb-client and bin/pos-share-nfs-client):
- pick_mountpoint hint 'n=new' -> 't=type'; key arm n -> t
- ask_new_mountpoint generalized to ask_mountpoint: an existing
  directory is now used AS-IS (no create, no confirm); a non-existent
  path keeps the 'Create mountpoint?' confirm + sudo mkdir flow; existing
  non-directory rejected ('has a file there'); shape checks and system-path
  refusal unchanged; stream contract (display->stderr, path->stdout) kept
- menu_ask_mountpoint empty-candidate fall-through now routes through the
  same ask_mountpoint validator (single source of truth)

Docs: DOC/howto/share.md NFS+SMB mountpoint sections updated from n=new to
t=type and describe existing-path-without-create behavior.

Scoped to the two client files + howto doc; persistence/automount units,
unmount/remove flows, cmd_* CLIs, share_folder_candidates, and
lib/menu-lib.sh untouched.

Verified: 9-scenario smoke matrix x2 files (~19 assertions each: existing
dir as-is, new-dir confirm+create, decline, relative/trailing-slash/system/
empty rejections, non-dir reject, mkdir-fail), make gen idempotent, make
check OK, make lint 0 FAIL/0 WARN, make test 17 files / 299 checks green,
bash -n clean, git diff --check clean. Designer ACCEPT framing+spec;
Reviewer ACCEPT after doc fix.
2026-09-07 08:08:02 -04:00
.
2026-07-28 10:28:11 -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%