Installation #
Der offizielle Installer erkennt macOS oder Linux und die Architektur, lädt das passende Release, prüft dessen SHA‑256-Checksumme sowie die eingebettete Version und ersetzt die Zieldatei atomar.
curl -fsSL https://dckreg.d1cloud.io/install.sh | sh
Standardziel ist ~/.local/bin/dckreg. Stelle sicher, dass ~/.local/bin in deinem PATH liegt. Der Installer verwendet kein sudo.
dckreg version
Login #
Melde dich mit dem zentralen dckreg-Verwaltungstoken an. Die CLI prüft den Token vor dem Speichern gegen den Server.
dckreg login https://dckreg.d1cloud.io
Gib den Token ausschließlich am verdeckten Terminal-Prompt ein. Er gehört niemals in einen Befehl, eine URL, ein Ticket oder einen Chat.
~/.dckreg/config.json, der Token in ~/.dckreg/credentials.json. Das Verzeichnis hat Modus 0700, beide Dateien 0600.
dckreg auth status
dckreg logout
logout entfernt nur die lokale Anmeldung. Eine zentrale Sperrung erfolgt durch die Rotation des Verwaltungstokens.
Repository erstellen #
Ein logisches Repository erzeugt ein privates Harbor-Projekt und einen eigenen Benutzer mit Pull- und Push-Rechten.
dckreg repo create checkout-api --show-kamal
Das generierte Registry-Passwort erscheint genau einmal. Speichere es sofort in einem Secret Store. Mit --repo-name checkout und --username legacy-checkout kannst du Pfad und Benutzer festlegen. --password fragt ein eigenes Passwort zweimal verdeckt ab; für sichere Automation gibt es --password-stdin.
Credentials & Deployment #
Behandle Repository-Credentials wie Passwörter. Teile sie nicht zwischen Projekten und verwende kurze, klar zugeordnete Secret-Scopes. Für Kamal liefert --show-kamal eine Konfiguration ohne Passwort:
image: checkout-api/app
registry:
server: registry.d1cloud.io
username: dckreg_checkout_api
password:
- KAMAL_REGISTRY_PASSWORD
Lege das einmal ausgegebene Passwort in KAMAL_REGISTRY_PASSWORD ab. Schreibe es niemals in deploy.yml.
Repositories verwalten #
dckreg repo list
dckreg repo inspect checkout-api
dckreg repo rename checkout-api checkout-service --keep-old-for 7d
dckreg repo policy show checkout-service
dckreg repo policy set checkout-service --quota-gib 25 --retention-count 20
Rename kopiert und verifiziert Tags, Multi-Arch-Indizes und unterstützte Referrer, bevor dckreg auf den neuen Namen umschaltet. Mit dckreg job watch JOB_ID wartest du auf den Abschluss.
Rotation #
Rotiere Repository-Zugangsdaten regelmäßig und sofort bei Verdacht auf Kompromittierung:
dckreg repo credentials rotate checkout-service
Das neue Passwort wird wieder genau einmal angezeigt. Für den zentralen Verwaltungstoken nutzt du dckreg auth rotate --grace-period 30m; die CLI speichert den neuen Token nach erfolgreicher Rotation unter ~/.dckreg.
Löschen & Wiederherstellen #
dckreg repo delete checkout-service
dckreg repo restore checkout-service
Normales Löschen sperrt den Zugriff und startet die Wiederherstellungsfrist. Restore reaktiviert das Repository innerhalb dieser Frist. Dauerhaftes Löschen ist irreversibel und verlangt Name und Bestätigung:
dckreg repo delete checkout-service --purge --confirm checkout-service
Docker-Hub-Import #
dckreg repo import docker.io/example/app --name app --all-tags
dckreg job list
dckreg job inspect JOB_ID
dckreg job watch JOB_ID
Die Quelle wird nie verändert. Private Quellen verwenden --source-username USER --source-password; das Passwort bleibt nur im Arbeitsspeicher. Nach einem Neustart wartet ein privater Import auf dckreg job retry JOB_ID --source-password.
CLI aktualisieren #
Die CLI prüft bei ihrer Verwendung höchstens alle sechs Stunden beim angemeldeten dckreg-Server auf ein neueres Release. Ist eines verfügbar, erscheint auf Standardfehler ein Hinweis mit diesem Befehl:
dckreg update
update lädt das Release für dein Betriebssystem und deine Architektur, verifiziert die SHA‑256-Checksumme und die Binärversion und ersetzt das laufende Executable atomar. Bei einem Fehler bleibt die vorhandene Version unverändert.
~/.dckreg/update-check.json.
Automation & Agents #
Für stabile maschinenlesbare Ausgabe setze --json. Übergib Tokens nie als Argument. Passwörter kommen ausschließlich aus verdeckten Prompts oder den ausdrücklich vorgesehenen --*-password-stdin-Schaltern.
Agents müssen vor der ersten Aktion die vollständige Agent-Dokumentation unter /skill.md lesen. Der API-Vertrag steht unter /openapi.json.
Troubleshooting #
dckreg doctor
dckreg auth status
dckreg version
doctor prüft lokale Credentials, Token und Serverbereitschaft, ohne Secrets auszugeben. Bei Serverfehlern gehört die Request-ID in den Fehlerbericht — niemals der Authorization-Header, Token, Passwortdateien oder Docker-Credentials.