No description
Find a file
2026-07-29 21:06:29 +02:00
.scratch/bootstrap Ticket 03: VM-Test-Harness (QEMU-Overlay, SHA256-Basisimage, SSH-Bootstrap, Assertionen) 2026-07-29 21:00:08 +02:00
assets/wallpapers Ticket 01: Repo-Skelett, lib-Logging, ADRs 0001-0003, Spec + Tickets 2026-07-29 20:32:22 +02:00
deploy Ticket 01: Repo-Skelett, lib-Logging, ADRs 0001-0003, Spec + Tickets 2026-07-29 20:32:22 +02:00
docs Ticket 01: Repo-Skelett, lib-Logging, ADRs 0001-0003, Spec + Tickets 2026-07-29 20:32:22 +02:00
lib Ticket 02: check.sh (shellcheck/bash -n/stow --simulate/bats) + lib/idempotent.sh mit Unit-Tests 2026-07-29 20:41:10 +02:00
modules Ticket 01: Repo-Skelett, lib-Logging, ADRs 0001-0003, Spec + Tickets 2026-07-29 20:32:22 +02:00
packages Ticket 01: Repo-Skelett, lib-Logging, ADRs 0001-0003, Spec + Tickets 2026-07-29 20:32:22 +02:00
stow Ticket 01: Repo-Skelett, lib-Logging, ADRs 0001-0003, Spec + Tickets 2026-07-29 20:32:22 +02:00
tests Review-Fixes: HTTPS-Klon in install.sh, Trap-Exit in VM-Harness, README-Einstieg als Zielbild 2026-07-29 21:06:29 +02:00
.gitignore Ticket 03: VM-Test-Harness (QEMU-Overlay, SHA256-Basisimage, SSH-Bootstrap, Assertionen) 2026-07-29 21:00:08 +02:00
AGENTS.md Ticket 01: Repo-Skelett, lib-Logging, ADRs 0001-0003, Spec + Tickets 2026-07-29 20:32:22 +02:00
bootstrap.sh Ticket 01: Repo-Skelett, lib-Logging, ADRs 0001-0003, Spec + Tickets 2026-07-29 20:32:22 +02:00
check.sh Ticket 02: check.sh (shellcheck/bash -n/stow --simulate/bats) + lib/idempotent.sh mit Unit-Tests 2026-07-29 20:41:10 +02:00
CONTEXT.md Ticket 01: Repo-Skelett, lib-Logging, ADRs 0001-0003, Spec + Tickets 2026-07-29 20:32:22 +02:00
install.sh Review-Fixes: HTTPS-Klon in install.sh, Trap-Exit in VM-Harness, README-Einstieg als Zielbild 2026-07-29 21:06:29 +02:00
README.md Review-Fixes: HTTPS-Klon in install.sh, Trap-Exit in VM-Harness, README-Einstieg als Zielbild 2026-07-29 21:06:29 +02:00

bens-arch

Persönlicher, idempotenter Bootstrap für Arch Linux inklusive Hyprland-Rice (MamaBaer Dark). Ein Befehl vom Live-ISO bis zum fertigen System.

Einstieg

Zielbildarchinstall.json entsteht mit Ticket 05; der Vollauto-Flow funktioniert erst ab dann End-to-End.

Vom Arch Live-ISO:

archinstall --config-url https://my.linux.town/archinstall.json

Das Profil installiert die Basis (LUKS2 + btrfs + Snapper, systemd-boot/UKI) und startet danach automatisch den Bootstrap. Auf einem bestehenden System:

curl -fsSL https://my.linux.town/install.sh | bash

Der Bootstrap ist idempotent und kann beliebig oft wiederholt werden.

Voraussetzungen

  • Arch Linux (frisch installiert oder Live-ISO für den Vollauto-Flow)
  • Netzwerk
  • Secrets (SSH, GPG, pass-Store) kommen nicht aus dem Repo — Restore aus dem Offline-Backup; der Bootstrap prüft und bricht mit Anleitung ab, wenn sie fehlen.

Struktur

Pfad Inhalt
install.sh dünner Einstiegspunkt (curl-tauglich), klont/aktualisiert das Repo
bootstrap.sh Orchestrator: führt Module aus (--only <modul>, --list)
modules/ Bootstrap-Module, einzeln ausführbar, idempotent
lib/ gemeinsame Bash-Helfer (Logging, Error-Handling)
packages/ deklarative Paketlisten (*.pacman, *.aur)
stow/ Stow-Pakete (Dotfiles, gespiegelt nach $HOME)
assets/ Wallpapers u.ä.
tests/ VM-Test (QEMU) + bats-Unit-Tests
deploy/ nginx vhost für my.linux.town
docs/adr/ Architektur-Entscheidungen

Modul-Vertrag

Jedes Modul in modules/ ist idempotent, startet mit set -euo pipefail, nutzt nur Helfer aus lib/ und deklariert Pakete über Listen in packages/ statt inline zu installieren.

Projekt-Doku

  • CONTEXT.md — Glossar der Projekt-Sprache (Bootstrap, Rice, Modul, Stow-Paket, MamaBaer Dark)
  • AGENTS.md + docs/agents/ — Konventionen für Agenten (Issue-Tracker unter .scratch/)
  • .scratch/bootstrap/spec.md — die Spec dieses Vorhabens