feat: add sync pull/diff/push commands for infrastructure-as-code workflow

Aperta
#22 0 commenti 2 reazioni 0 assegnatari Vedi su GitHub

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
5/5
Tempo stimato
Più di una settimana
Idoneità per principianti
20/100
Tipo di issue
Funzionalità
Chiarezza
Abbastanza chiara
Stato di attività
Ferma
Stack tecnologico
typescript

Direzione di ricerca

Inizia con l’implementazione funzionante nella PR #21 e confrontala con l’ambito v1 dell’issue. Esamina gli entry point sync pull, sync diff e sync push, inclusi i relativi flag e gli endpoint di aggiornamento tRPC. Il lavoro è completato quando i progetti, gli ambienti, le applicazioni, compose, i database e le sottorisorse elencate esistenti supportano il comportamento specificato di pull, diff e push senza operazioni di creazione o eliminazione.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

Problem

Dokploy currently has no infrastructure-as-code story. There's no way to:

  • Snapshot server state to version-controlled files
  • Track configuration drift between environments
  • Apply changes from local files back to the server

Proposed Solution

Add three new commands under dokploy sync:

  • sync pull - Serialize full Dokploy state (projects, environments, apps, compose, databases) to local YAML files
  • sync diff - Compare local YAML state against the live server with colored field-level output
  • sync push - Apply local changes back via tRPC update endpoints
Flags
  • --project / -p - Filter by project name or ID
  • --redact / -r - Mask sensitive fields (passwords, env vars, tokens)
  • --dry-run / -d - Preview changes without applying
  • --yes / -y - Skip confirmation prompt
v1 Scope
  • Pull/diff/push for projects, environments, applications, compose, all 5 DB types
  • Sub-resources: domains, ports, mounts, redirects, security
  • Update existing resources only (no create/delete on push)
Deferred to v2
  • Create/delete resources via push
  • Interactive project selection
  • .dokployignore, --format json
  • Syncing global settings (registries, certificates, servers)

I have a working implementation ready in PR #21.

Lingua principale
TypeScript
Stelle
152
Fork
46
Metriche di merge delle PR
Nessuna PR unita negli ultimi 30g

Guida per i contributori

Apri la guida per i contributori

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di Dokploy/cli

Tutte le issue di Dokploy/cli

Issue simili

Altre issue su TypeScript

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.