ID: README_000001 | Version: 0.2.2 | Status: Draft By: Codex (GPT-5) # Safe Kiddo Daemon ## Kurzbeschreibung Safe Kiddo Daemon ist ein lokaler Systemdienst, der Benutzerkonten auf Linux-Systemen sperrt/entsperrt, Sitzungen beendet und optional einen Shutdown ausloest. Der Dienst bietet eine REST-API und eine Web-UI fuer die Fernsteuerung. Ein Legacy-CLI-Script (`sk.sh`) bleibt als Fallback erhalten. ## Fuer wen ist das Projekt? 1. Endnutzer (Consumers): Nutzen die Web-Oberflaeche ohne technische Details. 2. Technische Einsteiger: Installieren und starten den Dienst. 3. Power-User: Konfigurieren, automatisieren und betreiben den Dienst. 4. Entwickler/Professionals: Verstehen Architektur, Interna und Erweiterungspunkte. ## Was es NICHT ist - Kein Cloud-Service und keine zentrale Benutzerverwaltung. - Kein Ersatz fuer Mobile-Device-Management (MDM). - Kein plattformuebergreifendes Kontrollen-System; Fokus ist Linux und lokale Accounts. ## Hauptfunktionen - Sperren/Entsperren lokaler Nutzerkonten inkl. Session-Management und optionalem Shutdown. - Benachrichtigungen und optionaler Sound waehrend Countdown. - PAM-Login (immer aktiv) und optionaler OIDC-Login. - Systemd-Service mit Installations- und Update-Skripten. - Update-Client-Integration (Enrollment, Manifest, Apply, Rollback, Logs). - Dry-Run-Modus zum sicheren Testen. ## Quickstart (5 Minuten) ```bash # 1) Repo holen sudo mkdir -p /opt/sk sudo git clone ssh://git@git.wlkns.org:2222/stephan/kiddo /opt/sk # Hinweis: verwende hier die Repo-URL deiner Instanz cd /opt/sk # 2) Installieren (legt User, env und Systemd-Unit an) make install # 3) Status pruefen sudo systemctl status skd.service # 4) Login testen (PAM) curl -s -X POST -H "Content-Type: application/json" \ -d '{"username":"root","password":"example-password"}' \ http://localhost/login ``` Danach die Web-UI unter `http://localhost/` oeffnen und anmelden. ## Dokumentation nach Zielgruppe - Endnutzer (Consumers): `docs/FOR_USERS.md` - Technische Einsteiger: `docs/GETTING_STARTED.md` - Power-User: `docs/USAGE.md` und `docs/CONFIGURATION.md` - Entwickler/Professionals: `docs/ARCHITECTURE.md`, `docs/DEVELOPMENT.md`, `docs/DEPLOYMENT.md` - Gemeinsame Referenz: `docs/FAQ.md`, `docs/TROUBLESHOOTING.md` ## Externe Services - Update-Service (intern): https://git.wlkns.org/stephan/update-webservice - OIDC-Service (intern): https://git.wlkns.org/stephan/oicd Einbindung und Konfiguration: `docs/DEPLOYMENT.md` und `docs/CONFIGURATION.md`. ## Badges Derzeit keine offiziellen Badges, da im Repository keine CI, Coverage, Release oder Docker-Pipeline definiert ist. ## Hinweise - Abweichung von der Zielstruktur: Die OpenAPI-Spezifikation des Update-Services bleibt unter `docs/architecture/openapi.yaml` und `docs/architecture/openapi/` erhalten. - Altdokumente liegen unter `docs/_archive/` und sind nicht geloescht. - Konfigurationsdateien: `/etc/skd/env` (Core) und `/etc/skd/update.env` (Update-Service). ## Legacy Script Das Script `sk.sh` bleibt als CLI-Fallback. Details und Beispiele: `docs/USAGE.md`.