- Shell 86.3%
- HTML 13.7%
|
All checks were successful
/ lint (push) Successful in 15s
busybox httpd mit einer Seite auf Port 8080 (nur private Netze), eigener Nutzer und Unit; jeder Hook von iac-core kommt einmal vor. Nur LXC, kein VM-Image; "hidden": true hält die App von der Website fern. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> |
||
|---|---|---|
| .forgejo/workflows | ||
| rootfs | ||
| tests | ||
| adopt.sh | ||
| app.func | ||
| CHANGELOG.md | ||
| ct.sh | ||
| iac.json | ||
| packages.list | ||
| README.md | ||
| rootfs.perms | ||
iac-example
Eine absichtlich kleine, aber vollständige iac-App zum Lernen: busybox httpd liefert eine
statische Seite auf Port 8080 aus, als eigener Systemnutzer, nur aus privaten Netzen erreichbar.
Jeder Hook, den iac-core kennt, kommt genau einmal vor. Die App ist in der iac.json mit
"hidden": true markiert und erscheint deshalb nicht auf der Website.
Die ausführliche Anleitung steht auf https://iac.heyer.systems/eigene-app/.
In dieser Reihenfolge lesen
| # | Datei | Worum es geht |
|---|---|---|
| 1 | iac.json | Name, Ressourcen, Plattformen, Ports (daraus entsteht die Firewall) |
| 2 | packages.list | Debian-Pakete – die einzige Paketliste für LXC, Image und Adopt |
| 3 | rootfs/ | Dateien, wie sie im Gast landen: systemd-Unit, Standardseite, README |
| 4 | rootfs.perms | Rechte, die vom Standard abweichen |
| 5 | app.func | die Hooks – Kopfkommentar zeigt, wer wann was aufruft |
| 6 | tests/smoke.sh | Prüfungen nur für diese App |
| 7 | ct.sh, adopt.sh | Einstiege – identisch für alle Apps, nur IAC_APP ändert sich |
| 8 | .forgejo/workflows/ | Lint – unverändert aus iac-core/templates/app/ |
Das Beispiel gibt es nur als LXC: Ein VM-Image würde bei jedem Push und jede Woche gebaut.
Wie VM-Apps aussehen (vm.sh, image/manifest.yml, image.yml), zeigen iac-nginx und
iac-traefik – die Dateien kommen unverändert aus iac-core/templates/app/.
Ausprobieren
Ohne Proxmox, in einem Docker-Container mit systemd (auf dem eigenen Rechner):
../iac-core/tools/dev-container.sh . # installiert die App und führt den Smoke-Test aus
docker exec -it iac-dev-example bash # hineinschauen
Auf einer Proxmox-Node:
bash -c "$(curl -fsSL https://iac.heyer.systems/example/ct.sh)"
Im Gast:
curl http://127.0.0.1:8080/ # die Seite
bash /var/lib/iac/src/core/bin/iac-smoke # dasselbe wie der Boot-Test
echo '<h1>iac-example: meine Seite</h1>' > /etc/iac-example/index.html
update # eigene Seite wird übernommen