dckreg verwenden

Installiere die CLI, melde dich sicher an und verwalte private OCI-Repositories vom Terminal aus.

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.

Lokale Daten: Einstellungen liegen in ~/.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.

Sicherheitsregel: dckreg speichert keine Registry-Passwörter. Nach dem Create- oder Rotate-Ergebnis können sie nicht erneut abgerufen werden.

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.

Versionsprüfung: Netzwerkfehler blockieren deinen eigentlichen Befehl nicht. Der letzte Prüfstatus liegt geschützt in ~/.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.