- commands: serve, migrate, bootstrap-admin, gen-master-key - /metrics with route-pattern labels and license gauge, /readyz checks DB - fix OpenAPI flow mappings with commas; generate TypeScript API types (openapi-typescript) and check them in CI 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–M6 | geplant, siehe ARCHITECTURE.md |
Server und Agents bieten derzeit nur den Programmrahmen (version, help, Server mit /healthz und /readyz sowie Startseite). Die Fachfunktionen folgen ab M1.
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 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.