Dokploy / Dokploy/cli

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

Open
#22 0 comments 2 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
TypeScript
Stars
152
Forks
46
PR merge metrics
No merged PRs in 30d

Description

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.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with the working implementation in PR #21 and compare it with the issue's v1 scope. Review the sync pull, sync diff, and sync push entry points, including their flags and tRPC update endpoints. Done means existing projects, environments, applications, compose, databases, and listed sub-resources support the specified pull, diff, and push behavior without create or delete operations.

Written by the indexing model from the issue text.

Assessment

Tech stack
typescript
Domain
cli, infrastructure
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
20/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.