Stufe 1: firstboot.sh live
MIT
GitHub
In jeder frischen Debian/Ubuntu-LXC-Box als root:
# Pre-Step (minimal-LXC-Templates haben kein curl vorinstalliert):
apt update && apt install -y curl ca-certificates
# firstboot.sh ausführen:
bash <(curl -s https://ccc.xed.dev/firstboot.sh)
Oder als One-Liner:
apt-get update -qq && apt-get install -y -qq --no-install-recommends curl ca-certificates && bash <(curl -s https://ccc.xed.dev/firstboot.sh)
Setzt Zeitzone, Locales, Default-Editor und Basis-Pakete per Whiptail-TUI im Debian-Installer-Stil. Idempotent — beliebig oft wiederholbar.
TZ=UTC \
LOCALES="de_AT.UTF-8 en_US.UTF-8" \
DEFAULT_LOCALE=de_AT.UTF-8 \
PKGS="htop curl wget sudo psmisc net-tools iproute2 iputils-ping gnupg nano" \
bash <(curl -s https://ccc.xed.dev/firstboot.sh)
bash <(curl -s URL) (Process Substitution) bewahrt das TTY und
erlaubt interaktive Whiptail-Dialoge. curl URL | bash (klassische
Pipe) verbraucht stdin und erzwingt Non-Interactive-Mode mit ENV-Defaults.
firstboot.sh tut| Phase | Inhalt |
|---|---|
| 0 | Pre-Flight (root-Check, Distro-Check, apt-Bootstrap, TTY-Detect) |
| 1 | Eingaben sammeln (Whiptail bei TTY, ENV-Vars sonst) |
| 2 | Zeitzone setzen (/etc/timezone + /etc/localtime) |
| 3 | Locales generieren + Default-Locale (update-locale → /etc/default/locale) |
| 4 | Basis-Pakete installieren (--no-install-recommends) |
| 5 | EDITOR=nano in /etc/environment (idempotent via grep-vor-write) |
| 6 | Abschluss-Banner |
Bewusst nicht enthalten: Bridge-/iptables-/nested-LXC-Setup.
Das kommt mit lxc-host-setup.sh (Skript 2/3, geplant) als
separates Skript für cBUZZ-Outer-Container.
| Skript | Zweck | Status |
|---|---|---|
firstboot.sh | Basis-Setup für jede frische Debian/Ubuntu-Box | Stufe 1, live |
lxc-host-setup.sh | Outer-Container vorbereiten (Bridge, iptables, nested LXC) | geplant |
ccc-create.sh | Inner-Container provisionieren (Bash v1) | geplant |
ccc (Python) | CLI als Pendant zu pct (Typer + Pydantic) | geplant |
ccc-tui (Python) | Textual-TUI als Pendant zum Proxmox-Webinterface | geplant |
ccc ≈ pct semantisch, ccc-tui ≈ Proxmox-Webinterfacecurl … | bash jederzeit wiederholbar