Journal-indexDockup / praktijknotitie
Note / claude-code-production-deployment

Claude Code-deployment: productionhandleiding

Claude Code-deployment met Dockup: installeer de agent skill, authenticatie veilig, deploy vanuit Git, controleer het resultaat en beheer production veilig.

Claude Code-deployment is pas betrouwbaar wanneer de agent onderscheid kan maken tussen ‘verzoek geaccepteerd’ en ‘production is gezond’. Dockup biedt die deploymentlaag via een CLI die is ontworpen voor machine callers: gestructureerde JSON, echte process exit codes en een --wait-modus die actief blijft totdat een deployment een eindstatus heeft bereikt.

In deze handleiding brengen we een repository van lokaal werk naar een geverifieerde production release. Ook wordt vastgelegd welke rechten Claude Code moet krijgen, welk bewijs de agent moet teruggeven en op welk moment een mens een destructieve actie moet goedkeuren.

Wat heeft Claude Code nodig voordat het naar production kan?

Een coding agent moet niet beginnen met het raden van een servicenaam of door een dashboard klikken. Geef de agent een duidelijk afgebakend operating contract: zoek het exacte doel op, voer één bedoelde wijziging uit, wacht op het resultaat en rapporteer machineleesbaar bewijs.

De basisvereisten zijn eenvoudig:

VereisteWaarom dit belangrijk isVerificatie
Node.js 18 of nieuwerVereist door het Dockup CLI-packagenode --version
Dockup-accountBeheert workspaces, services en databasesMeld je aan bij app.dockup.ai
Git-repositoryBron voor de service-buildControleer de remote URL en branch
API-tokenAuthenticatie zonder interactieve invoerdockup whoami --json
Health-endpoint of luisterende poortBepaalt of de blue-green cutover mag plaatsvindendockup health ... --json

Bepaal de productiongrens voordat de agent handelt. Claude Code mag een service aanmaken, niet-geheime configuratie instellen, een deployment starten, logs inspecteren en een rollback voorstellen. De agent mag geen service verwijderen, database verwijderen of configuratie opschonen zonder expliciete goedkeuring van een mens.

Dockup versterkt die grens. Destructieve commando’s weigeren uit te voeren zonder --yes en geven een gestructureerde needs_confirm-fout terug, in plaats van ontbrekende bevestiging te behandelen als een uitnodiging om zelf iets te bedenken. Gebruik voor een breder beleid de production guardrails voor AI-agents.

Hoe installeer je de Claude Code-skill en authenticeer je veilig?

Installeer de CLI, installeer de meegeleverde skill en controleer of de skill overeenkomt met de geïnstalleerde binary:

npm install -g dockup-cli
dockup skill install
dockup skill status --json

Het installatieprogramma schrijft de canonieke skill naar ~/.agents/skills/dockup/ en maakt er een link naartoe in de skill-directory van Claude Code. Omdat de skill in hetzelfde npm-package als de CLI wordt meegeleverd, werkt dockup update beide bij. Claude Code hoeft daardoor niet te vertrouwen op een gekopieerde commandoreferentie die mogelijk flags beschrijft die de lokale binary niet ondersteunt.

Gebruik voor autonome sessies een token in een environment variable:

export DOCKUP_TOKEN="<TOKEN>"
dockup whoami --json

Een geslaagd antwoord identificeert het account en rapporteert tokenSource als env. Plak het token niet in een prompt, commit het niet naar de repository en schrijf het niet naar een CI-log. Secretwaarden die in Dockup zijn opgeslagen, worden gemaskeerd wanneer de configuratie opnieuw wordt uitgelezen.

De volledige Dockup CLI-referentie is de gezaghebbende commandoset. Met 135 commando’s moet Claude Code de actuele referentie en de meegeleverde skill raadplegen, in plaats van te vertrouwen op onthouden flags.

Omdat de skill onderdeel is van het CLI-package, werkt dockup update het uitvoerbare bestand en de instructies samen bij. Deze versie-uitlijning is veiliger dan een commandolijst kopiëren naar een langdurig gebruikte prompt.

Hoe maakt de Dockup CLI een service aan vanuit Git?

Vraag de agent eerst om de workspace te identificeren en geen slugs op basis van display names samen te stellen. Bestaande targets worden teruggegeven door:

dockup services --json

Voor een repository die nog nooit is gedeployed, kan één transactie de service aanmaken, deployen, wachten tot de actie is voltooid en de huidige directory koppelen:

dockup create my-api \
  --repo https://github.com/acme/my-api \
  --project production \
  --deploy \
  --wait \
  --link \
  --json

Wanneer de repository een Dockerfile bevat, gebruikt Dockup die. Zonder Dockerfile valt Dockup terug op Nixpacks voor automatische builddetectie. Deze keuze wordt toegelicht in Nixpacks versus Dockerfile, inclusief wanneer expliciete buildinstructies de extra onderhoudslast waard zijn.

Voer na een onderbroken sessie opnieuw dockup services --json uit voordat je het aanmaken opnieuw probeert, en inspecteer het exacte doel. Als de service al bestaat, ga dan verder op basis van de status in plaats van nog een create-request te versturen.

Eenmaal gekoppeld kunnen commando’s in die repository het doel oplossen via .dockup, maar production-runbooks moeten nog steeds de volledige waarde project/service vastleggen. Discovery vormt de veilige grens tussen een onzekere eerdere actie en een nieuwe wijziging in production.

Hoe bereid je environment variables, databases en health checks voor?

Houd gewone configuratie gescheiden van secrets. Claude Code kan een publieke runtimewaarde en een gemaskeerd secret instellen zonder opgeslagen secretwaarden later af te drukken:

dockup env set NODE_ENV=production \
  -s production/my-api \
  --json

dockup env set API_KEY="$API_KEY" \
  --secret \
  -s production/my-api \
  --json

Wijzigingen in de environment worden bij de volgende deployment toegepast. Dat is bewust zo ontworpen: een draaiende container behoudt zijn huidige process environment totdat de container wordt vervangen. Het volledige operationele patroon wordt behandeld in environment variables en secrets.

Als de applicatie een beheerde PostgreSQL-database nodig heeft, maak je die aan in de geselecteerde workspace en lees je de details uit via de gedocumenteerde databasecommando’s:

dockup db create --name main-db --type postgresql --json
dockup db list --json

Private networking kan services en databases later stabiele hostnames als <slug>.internal geven binnen één project. Laat de agent geen database-URL verzinnen; gebruik de connection information die Dockup teruggeeft en sla die op als secret.

Configureer vóór de eerste belangrijke production release een readiness gate:

dockup health production/my-api \
  --path /healthz \
  --interval 5 \
  --retries 5 \
  --json

Dockup voert zero-downtime blue-green deployments uit en stuurt pas verkeer naar de nieuwe versie nadat de health gate is geslaagd. De architectuur wordt besproken in zero-downtime deployments.

Hoe deployt Claude Code en bewijst het dat de deployment is geslaagd?

Gebruik --wait; laat de agent ‘deployment queued’ niet interpreteren als ‘applicatie draait’:

dockup deploy production/my-api --wait --json

De standaard wait-timeout is 900 seconden. Bij succes eindigt het commando met 0 en geeft het de eindstatus, duur, deployment-ID en URL terug. Als de build mislukt, eindigt het commando met een non-zero exitcode en code:"deploy_failed". Als de bewerking na de timeout nog loopt, eindigt het eveneens met een non-zero exitcode en code:"deploy_timeout".

Een nuttige instructie voor Claude Code is: ‘Behandel de process exit code als het primaire resultaat en vat daarna de JSON-velden samen.’ Zo voorkom je optimistische formuleringen wanneer het platform al een fout heeft teruggegeven.

Verzamel na succes drie onafhankelijke signalen:

dockup status production/my-api --json
dockup uptime production/my-api --hours 24 --json
dockup security production/my-api --json

status bevestigt de service- en de status van de meest recente deployment. uptime geeft monitoringstatistieken per minuut terug, waaronder de gemiddelde responstijd en p95. security toont de meest recente CVE- en configuratiescan van de image. Deze checks vullen practices voor security op applicatieniveau aan; ze vervangen applicatietests niet.

Wat moet Claude Code doen als production faalt?

Maak onderscheid tussen een build failure en een runtime failure. Voor een mislukte build heb je het meest recente buildlog nodig:

dockup logs production/my-api --build --json

Voor een container die wel is gebouwd maar na het opstarten crasht, heb je runtime-output nodig:

dockup logs production/my-api --json

Gebruik de NDJSON follow-modus om een build te volgen en tegelijk machineleesbare batches te behouden:

dockup logs production/my-api --build -f --json

Het commando stopt wanneer de deployment een eindstatus bereikt en eindigt met een non-zero exitcode als de deployment is mislukt. Claude Code kan de voortgang streamen zonder zelf een polling loop te verzinnen.

Als de huidige release ongezond is en een bekende eerdere deployment opnieuw moet worden uitgevoerd, lijst je de geschiedenis op en gebruik je de exacte ID:

dockup deployments production/my-api -n 20 --json
dockup rollback <deploymentId> production/my-api --json

De agent moet rapporteren welke deployment-ID is geselecteerd en waarom. Rollback is een operationele beslissing, geen vervanging voor inzicht in de oorzaak van de fout. Bewaar het buildlog, runtime-log, de exitcode en het auditrecord zodat het incident reconstrueerbaar blijft.

Een afgerond Claude Code-deploymentrapport moet het doel, de commit of branch, deployment-ID, eindstatus, URL, verstreken tijd, healthresultaat en eventuele resterende risico’s bevatten. Dat bewijs maakt van een autonome actie een controleerbare wijziging in production.

Definieer een production completion contract

Neem het verwachte completion contract op in de taak voordat je begint. Een nuttige aanvraag is: deploy de gekoppelde repository naar production/my-api; wacht op een eindresultaat; verwijder, prune of verplaats niets; geef bij een fout de foutcode en de laatste 60 relevante regels uit het buildlog terug; geef bij succes de status, URL, deployment-ID, duur en health evidence terug.

Deze formulering geeft Claude Code een afgebakend doel en een rapportageschema. Ook voorkomt dit dat de agent bij een mislukte release ‘behulpzaam’ niet-gerelateerde infrastructuur gaat wijzigen. De agent kan een aparte fix voorstellen, maar de productionactie blijft herleidbaar tot één verzoek.

Houd voor terugkerende releases een klein release record bij in de repository of het change-managementsysteem. Leg het doel, de source branch, het verwachte health path, de normale timeout en de goedgekeurde recovery action vast. Een Claude Code-deployment is veiliger wanneer de volgende sessie deze feiten niet uit de chatgeschiedenis hoeft te reconstrueren.

Controleer de accountgrens vóór de eerste write

Workspaces vormen grenzen voor eigenaarschap en facturering. Laat Claude Code whoami tonen, services opsommen en de geselecteerde workspace aangeven voordat de agent iets wijzigt. Het Pro-plan kost $20 per maand en bevat $20 aan usage credit; het is het aanbevolen betaalde plan. Alle betaalde plannen staan onbeperkte workspaces, databases en deployments toe, terwijl CPU-, RAM- en schijfgebruik per minuut wordt gemeten en wordt verrekend met het plansaldo.

Dat prijsmodel verandert niets aan de veiligheidsregel: een agent moet het verbruik en de scope van het doel controleren voordat hij resources schaalt of extra resources aanmaakt. Het productionrapport moet onderscheid maken tussen het abonnementsplan en het daadwerkelijke gemeten verbruik.

Breng de workflow naar production

Installeer de skill in dezelfde omgeving waarin Claude Code draait, verifieer de authenticatie en begin met een service met laag risico waarvan het health endpoint al bekend is.

npm install -g dockup-cli
dockup skill install

Het eerste commando installeert de CLI. Het tweede installeert de bijbehorende Dockup-skill voor Claude Code en Codex. Begin gratis via app.dockup.ai.

FAQ

Kan Claude Code rechtstreeks naar production deployen met Dockup?

Ja. Installeer de Dockup-skill, geef een afgebakende DOCKUP_TOKEN op, los het exacte project/service-doel op en voer het deploycommando uit met --wait en --json.

Waarom moet Claude Code --wait gebruiken?

Zonder --wait betekent een geslaagde response alleen dat de deployment in de wachtrij is geplaatst. Met --wait eindigt Dockup pas met 0 nadat de deployment is geslaagd en geeft het anders gestructureerde fouten deploy_failed of deploy_timeout terug.

Kan Claude Code opgeslagen secretwaarden zien?

Dockup maskeert secretwaarden in de output. De agent kan een secret instellen of vervangen, maar het uitlezen van environmentconfiguratie geeft de opgeslagen secretwaarde niet terug.

Wat gebeurt er als een repository geen Dockerfile heeft?

Dockup gebruikt Nixpacks om de applicatie automatisch te detecteren en te builden. Een Dockerfile in de repository krijgt voorrang wanneer die aanwezig is.

Hoe kan Claude Code herstellen van een slechte release?

De agent moet de build- en runtime-logs inspecteren, de deploymentgeschiedenis opvragen en een bekende eerdere deployment opnieuw uitvoeren met dockup rollback en de exacte deployment-ID.