Migration 00003 adds the PKI key table, agents, enrollment tokens, immutable configuration revisions with their files, deployment reports and DHCP leases, each with database constraints. Repositories and DB tests for all of them. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
DDI-Suite
Selbst gehostete DDI-Lösung (DNS, DHCP, IP-Adressverwaltung) im Stil von VitalQIP: ein zentraler Management-Server verwaltet Netze und Adressen und rollt Konfigurationen auf Agents aus, die BIND 9 und Kea DHCP steuern.
„DDI-Suite“ ist ein Arbeitstitel. Alle Namen sind zentral konfigurierbar (ADR 0018).
Stand
| Meilenstein | Status |
|---|---|
| M0 Fundament (Repo, Build, Lint, CI, Entwicklungsumgebung, Architektur, ADRs) | abgeschlossen (v0.1.0) |
| M1 Server-Kern (Schema, Anmeldung lokal/OIDC/TOTP, Rollen, Audit, Lizenz, REST-API, Netze/Adressen, Oberfläche) | abgeschlossen (v0.2.0) |
| M2 Config-Generator (BIND/Kea aus dem Datenmodell, geprüft mit echtem BIND 9.18/9.20 und Kea 2.6/3.2) | abgeschlossen (v0.3.0) |
| M3–M6 | geplant, siehe ARCHITECTURE.md |
Der Management-Server verwaltet Netze und Adressen (QIP-artige Tabelle), Benutzer, Lizenz und Audit-Log. Aus den Daten erzeugt er die BIND- und Kea-Konfiguration (Vorschau unter Konfiguration); das Ausrollen über die Agents folgt ab M3.
Dokumentation
Entwicklung
Voraussetzungen
| Werkzeug | Version | Wofür |
|---|---|---|
| Go | 1.27 (siehe go.mod) |
Server, Agents |
| Node.js | 24 LTS | Weboberfläche |
| GNU make, bash | – | Build-Einstieg, Skripte |
| buf | 1.73 | Protobuf-Lint und -Generierung (Netzzugriff auf buf.build) |
| golangci-lint | 2.14 | Go-Linter |
| shellcheck | 0.11 | Shell-Linter |
| Docker mit Compose | aktuell | Entwicklungsumgebung, Integrationstests |
Unter Linux installiert scripts/ci/install-tools.sh buf, golangci-lint und shellcheck in den gepinnten Versionen mit Prüfsummenkontrolle.
Häufige Befehle
make help # alle Ziele
make build # Weboberfläche und Binaries für das eigene System nach bin/
make test # Go- und Frontend-Tests
make lint # alle Linter inkl. Lizenz-Header-Prüfung
make fmt # formatieren
make generate # Protobuf-Code neu erzeugen
make release # Tarballs für linux/amd64 und linux/arm64 plus SHA256SUMS nach dist/
Entwicklungsumgebung
make dev-up # PostgreSQL 17, BIND 9.20, Kea DHCPv4 3.2 starten
make dev-smoke # prüfen, dass alles antwortet
make dev-admin # ersten Administrator anlegen (gibt Einmal-Passwort aus)
make run-server # Server auf http://127.0.0.1:8080
cd web && npm run dev # Frontend mit Hot Reload, leitet API-Aufrufe an den Server weiter
make dev-down # stoppen (Daten bleiben erhalten)
| Dienst | Erreichbar unter |
|---|---|
| PostgreSQL | 127.0.0.1:5432 (DDI_DEV_PG_PORT), Benutzer/DB ddi, Passwort nur für Entwicklung (siehe Compose-Datei) |
| BIND | 127.0.0.1:5353 UDP/TCP (DDI_DEV_DNS_PORT), Zonen dev.test und 2.0.192.in-addr.arpa |
| Kea DHCPv4 | im Compose-Netz, bedient 192.0.2.0/24 über Relay (Testnetz nach RFC 5737) |
CI
Gitea Actions unter .gitea/workflows/: Go (Lint, Tests mit Race-Detector, govulncheck), Protobuf, Web (ESLint, Typecheck, Tests, npm audit, Build), Shell/SPDX, Release-Probebau und ein Compose-Smoke-Test. Tags v* erzeugen ein Release mit Artefakten. Anforderungen an den Runner stehen in ADR 0003.
Lizenz
Der Management-Server (server/, web/, tools/) ist proprietär. Agents, Protokoll und gemeinsamer Code (agent/, proto/, internal/, deploy/, scripts/, test/) stehen unter der Apache-2.0-Lizenz. Details in LICENSE.