71 lines
3.0 KiB
Markdown
71 lines
3.0 KiB
Markdown
ID: README_000001 | Version: 0.2.1 | 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`.
|