Dokploy / Dokploy/cli

application drop-deployment is missing required multipart upload options

Open
#54 0 comments 0 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

Summary

In @dokploy/cli@0.30.2, the generated application drop-deployment
command cannot upload a ZIP file.

The command exposes only --json and calls the JSON-oriented apiPost
helper with an empty options object. However, Dokploy's
application.dropDeployment server procedure expects multipart form data
with:

  • applicationId — required string
  • zip — required file
  • dropBuildPath — optional string

This makes the existing CLI command unusable for local artifact deployment
and CI/agent workflows.

Reproduction

dokploy --version
# 0.30.2

dokploy application drop-deployment --help

Current output:

Options:
  --json
  -h, --help

Trying to supply the required values fails because the options do not exist:

dokploy application drop-deployment \
  --applicationId <application-id> \
  --zip ./artifact.zip

Calling the command without them sends JSON rather than the multipart payload
required by the server procedure.

Expected behavior

The command should support an interface similar to:

dokploy application drop-deployment \
  --applicationId <application-id> \
  --zip ./artifact.zip \
  --dropBuildPath dist \
  --json

Suggested options:

  • --applicationId <value> — required
  • --zip <path> — required local ZIP file
  • --dropBuildPath <value> — optional

The request should be sent as multipart form data, preserving the existing
Dokploy authentication headers, rather than being wrapped as a JSON tRPC
payload.

It would also be helpful to validate that the ZIP path exists before sending
the request.

Relevant implementation

The current generated command has no input options and calls:

apiPost("application.dropDeployment", opts)

The Dokploy server endpoint uses zfd.formData and requires:

{
  applicationId: string;
  zip: File;
  dropBuildPath?: string;
}

This likely needs special handling in the CLI generator for file/form-data
procedures, plus a multipart request helper in src/client.ts.

Use case

This would enable deploying locally built artifacts from CI systems and
coding agents without requiring interactive use of the Dokploy dashboard.

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 at the generated application drop-deployment command and read src/client.ts, then trace the application.dropDeployment entry point and existing authentication handling. Done means the command accepts applicationId, zip, and optional dropBuildPath, validates the ZIP path, and sends the required multipart request while preserving authentication headers.

Written by the indexing model from the issue text.

Assessment

Tech stack
typescript
Domain
api, cli
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
62/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.