Jeweils einen Stack ergänzen
Eine Anwendung auswählen, Konfiguration und Daten trennen und Wiederherstellung dokumentieren.
Schließe die Wiederherstellungsübung ab, bevor du persönliche Daten verwendest. Der Katalog zeigt die Gruppen meines Repositorys, keine öffentliche Liste laufender Hosts und keine Zusage, dass jeder Dienst aktiv ist.
homelab/
apps/<stack>/compose.yaml
apps/<stack>/.env.example
apps/<stack>/README.md
core/<stack>/...
ops/<stack>/...
Apps liefern nutzbare Funktionen. Core übernimmt gemeinsame Verbindungen und Identität. Ops unterstützt Betrieb und Wiederherstellung. Die alphabetische Navigation ist keine Installationsreihenfolge. Beginne mit einer Anwendung und ihrer nötigen Datenbank. Ansible, Tailscale auf dem Host und Verfahren für Geheimnisse sind keine Container-Stacks.
Ein eigenes Projekt anlegen
Erstelle beispielsweise ~/homelab/apps/finance und wechsle hinein. Lies die Finanz-Notiz und die offizielle Installationsanleitung. Speichere das dortige Compose-Beispiel für die gewählte Version als compose.yaml. Prüfe Images, Schreibpfade, Geheimnisse, Hostports, Gerätezugriff und Abhängigkeiten vor dem Start.
Verwende einen eindeutigen Projektnamen mit name: oder derselben Option -p bei jedem Befehl. Das Übungslabor verwendet ein einziges Projekt; bei dieser Verzeichnisstruktur bekommt normalerweise jeder Stack ein eigenes. Getrennte Projekte teilen weder automatisch Netzwerke noch Dienstnamensauflösung. Ein gemeinsames Proxynetz muss gezielt erstellt und einheitlich deklariert werden.
Lege .env nur an, wenn die Vorlage sie nutzt. .env.example enthält Platzhalter, keine echten Werte. Schließe .env, Zugangsdaten, Datenbanken, Uploads und Wiederherstellungen von Git aus. Dokumentiere Datenvolumes und Pfade. Git ersetzt kein Anwendungsbackup.
# Run from the directory containing this stack's compose.yaml.
sudo docker compose config --quiet
sudo docker compose pull
sudo docker compose up -d
sudo docker compose ps -a
sudo docker compose logs --tail 50
Begrenze veröffentlichte Ports beim Lernen auf Loopback, sofern die Anwendung diese Betriebsart unterstützt. LAN-Erkennung und Hardwarezugriff brauchen eigene Überlegungen. Öffne die Oberfläche über SSH, erstelle einen Testeintrag, starte neu und prüfe die Persistenz. Stelle diesen Eintrag anschließend mit dem unterstützten Verfahren in einer getrennten Testinstanz wieder her.
Vor einem Update
Lies Release-Hinweise, notiere den bisherigen Image-Digest, prüfe ein Backup und die Migrationsanforderungen. pull ersetzt keinen laufenden Container; up -d übernimmt Image und Konfiguration. Ein altes Image versteht möglicherweise die migrierte Datenbank nicht. Ein Image-Rollback allein ist daher kein Wiederherstellungsplan.
Die Stack-Notizen geben einen begrenzten Einstieg mit Prüfungen. Das herunterladbare Web-/Metrik-/restic-Beispiel wurde ausgeführt. Die übrigen Notizen sind Anleitungen anhand offizieller Dokumentation, keine Behauptung, dass alle 29 Installationen getestet wurden. Halte Versionen, Datenpfade, Zugriffsregeln, Backup-Verfahren und Wiederherstellungsergebnis privat fest. Öffentliche Beispiele enthalten keine echten Routen, Kontokennungen, Tokens oder ungelösten Schwachstellen.