Skip to main content

dokploytools

فارسی

Go CLI to manage multiple Dokploy panels. NAME = panel name; omit it (or use all) to run on every panel.

go build -o dokploytools ./src
ln -sf "$PWD/dokploytools" ~/.local/bin/dpt   # short alias: dpt (or: alias dpt=dokploytools)

Global flags: --json (machine-readable rows, exit 1 if any panel errored) and --watch SECS (repeat).

Panels & config

panel add NAME URL (--key KEY | --user EMAIL --pass PASS)
panel list | panel edit NAME [--url U] [--key K] | panel rm NAME | panel encrypt
  • Stored in ~/.config/dokploytools/panels.json (0600). Set DOKPLOYTOOLS_PASSPHRASE and keys are AES-GCM encrypted (scrypt) on save; panel encrypt seals an existing file.
  • No file needed: DOKPLOY_<NAME>_URL + DOKPLOY_<NAME>_KEY define panel <name> (never written to disk).

Overview

projects | status [--project P] | servers [--check] | containers [--stats]
deployments NAME PROJ/SVC | monitor | update [--check]
alert [--cpu 90 --mem 90 --disk 90 --cert-days 14 --no-certs --webhook URL --telegram TOKEN@CHATID]

alert exits 1 when the panel is down, a service/server is in error, a metric is over its limit or an HTTPS domain's cert is near expiry — put it in cron.

Services

svc start|stop|deploy|redeploy NAME PROJ/SVC [--env E] [--wait]     # NAME=all hits every panel
env NAME PROJ/SVC [set K=V.. | unset K.. | --file F]

One-line compose deploy from a git repo (creates project/environment/compose if missing, updates if present):

dokploytools deploy prod --repo https://github.com/me/app.git --branch main \
  --domain app.example.com --service web --port 3000 --set KEY=val --wait

Other flags: --project P (default = repo name), --env production, --name, --compose-path, --env-file F, --ssh-key-id, --server ID, --auto-deploy, --no-deploy, --no-https; --file compose.yml deploys a local compose file instead of a repo.

Backups

backup [NAME] [--dest D] [--keep N] [--download DIR]                        # panel (web-server) backup
dbbackup create NAME PROJ/SVC [--dest D --schedule "0 2 * * *" --keep 7 --database DB --prefix P --disabled]
dbbackup list NAME [PROJ/SVC] | run NAME PROJ/SVC [--id B] | set NAME BACKUPID [--schedule --keep --enable false] | rm NAME BACKUPID
dbbackup files NAME --dest D --search PREFIX | download NAME --dest D --search PREFIX --download DIR
dbbackup copy all --dest D --search PREFIX --to-endpoint E --to-bucket B --to-access K --to-secret S [--to-prefix P]

backup/dbbackup run also accept --download DIR and the --to-* flags (or DOKPLOYTOOLS_TO_ENDPOINT/BUCKET/ACCESS/SECRET) to mirror the new file into one central bucket under <to-prefix>/<panel>/. Postgres, MySQL, MariaDB, Mongo supported. Restore is not exposed by Dokploy's REST API (it uses a websocket subscription), so it is not implemented.

Domains, certificates, Traefik

domains | domain add NAME PROJ/SVC --host H --port N [--service S] [--cert letsencrypt|none|custom] [--no-https]
domain rm NAME HOST | domain check NAME [HOST]        # panel DNS check + live TLS expiry
cert list NAME | cert add NAME CERTNAME --cert fullchain.pem --key privkey.pem [--domain H] [--auto-renew] | cert rm NAME ID|NAME
traefik get NAME main|web|middleware | traefik get NAME --path FILE | traefik ls NAME
traefik set NAME main|web|middleware --from FILE | traefik reload NAME

For a domain whose DNS is not on the server (CDN/other host, so Let's Encrypt HTTP challenge fails): upload its cert with cert add (validated locally: key pair, expiry, --domain coverage), then add the domain with --cert none; Traefik serves the uploaded cert by SNI. traefik set saves the previous config to traefik-<panel>-<file>-<ts>.bak first.

People

users | member invite NAME EMAIL [--role admin] | member rm NAME USERID | member invitations NAME | member uninvite NAME ID
apikey list|create NAME [--days N]|rm NAME ID | orgs

Status

Endpoint paths and bodies follow the Dokploy docs reference. Untested against a live panel; least certain: project.all nesting (handled for environments and legacy layout), user.getMetricsToken / monitoring port + /metrics, user.getContainerMetrics, auth/organization/invite-member (better-auth), login → API key. Use raw NAME GET PATH to probe. go test ./... runs a mock-server deploy test.

CI & releases

  • .github/workflows/ci.yml: gofmt check, go vet, go test -race on every push to main and every PR.
  • .github/workflows/release.yml: after CI passes on main, python-semantic-release reads the conventional commits since the last tag (feat: minor, fix:/perf: patch, feat!: / BREAKING CHANGE major), bumps the version, updates CHANGELOG.md, tags and creates the GitHub release. If a release was made, the same run builds the binaries (version embedded: dokploytools version), attaches them to the release and publishes the PyPI wheels. Commits without a releasable type (docs:, chore:, …) release nothing. Config: semantic-release.toml.

PyPI

Each release also publishes platform wheels (the Go binary + dokploytools/dpt entry points) to PyPI: pipx install dokploytools (or uv tool install dokploytools), then run dpt. Needs the repo secret PYPI_API_TOKEN; versions are plain X.Y.Z (PEP 440). Wheels are built by scripts/build_wheels.py (stdlib only).

Metadata

Release files for dokploytools 1.0.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Built distributions (wheels)

Table of built distributions (wheels) for dokploytools 1.0.0
File
dokploytools-1.0.0-py3-none-win_amd64.whl Python 3 none Windows x86-64 Details
dokploytools-1.0.0-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl Python 3 none Linux glibc 2.17+ x86-64 Details
dokploytools-1.0.0-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl Python 3 none Linux glibc 2.17+ ARM64 Details
dokploytools-1.0.0-py3-none-macosx_11_0_arm64.whl Python 3 none macOS 11.0+ ARM64 Details
dokploytools-1.0.0-py3-none-macosx_10_9_x86_64.whl Python 3 none macOS 10.9+ x86-64 Details

Total release size: 16.2 MB

Release files / dokploytools-1.0.0-py3-none-win_amd64.whl

Download URL dokploytools-1.0.0-py3-none-win_amd64.whl
Size 3.4 MB
Tags Python 3 Windows x86-64
SHA-256 checksum
How to use checksums
1e46a49cced0dc71d7bd20aaa73d957dd25d639cace5eaad51b62dd8ace13e7d
BLAKE2b-256 checksum
How to use checksums
88441a1c03fe5a2bda22b86486232e9dfed9b3438c206fad392499b5a78ccb5f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 9, 2026.

Transparency log

Release files / dokploytools-1.0.0-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL dokploytools-1.0.0-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 3.3 MB
Tags Linux glibc 2.17+ x86-64 Python 3
SHA-256 checksum
How to use checksums
e1b0db49b61ebba46537990de1e19e507e62457c4318aaf971a74b50df3db170
BLAKE2b-256 checksum
How to use checksums
d5e85a21d0f3f574eda38522e09ab159e0d80abe810e95317aa3fd6148cc9e54
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 9, 2026.

Transparency log

Release files / dokploytools-1.0.0-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl

Download URL dokploytools-1.0.0-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Size 3.0 MB
Tags Linux glibc 2.17+ ARM64 Python 3
SHA-256 checksum
How to use checksums
aede3f8b5895d1c6d3134b4c66214f8cc87477513b2bd7761a6624713d31b446
BLAKE2b-256 checksum
How to use checksums
afc294e37a0fdf0936bd8c6d293dbcfa3b9eed886e2aa68035ca073b2162338b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 9, 2026.

Transparency log

Release files / dokploytools-1.0.0-py3-none-macosx_11_0_arm64.whl

Download URL dokploytools-1.0.0-py3-none-macosx_11_0_arm64.whl
Size 3.1 MB
Tags Python 3 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
f6c7a50e1dc6dc5fde49aadce5de0546122ec419a60a38e7aa41d73000313f5c
BLAKE2b-256 checksum
How to use checksums
e5e060a6f0a048a7fb7fc604a693daaf7ac705e175e384109562f1745c75fbb5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 9, 2026.

Transparency log

Release files / dokploytools-1.0.0-py3-none-macosx_10_9_x86_64.whl

Download URL dokploytools-1.0.0-py3-none-macosx_10_9_x86_64.whl
Size 3.4 MB
Tags Python 3 macOS 10.9+ x86-64
SHA-256 checksum
How to use checksums
fa21cca74771283b55a69214dcdb2230551f40acf20a471eb13affaef170fdeb
BLAKE2b-256 checksum
How to use checksums
00014599f8437b1bd72eb2672b0a7090551ca6d2596d3b3bd0bc4c89a8ff7fca
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 9, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

1.0.0 This release

5 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page