Skip to main content

apx-dokploy

Dokploy for Action Platform: the dokploy deploy target, its overlay, readiness checks, and tools that read what runs on the instance. apx- is the prefix every Action Platform extension carries.

action-platform plugin install dokploy
export DOKPLOY_URL=… DOKPLOY_API_KEY=…      # or Plugins → Dokploy → Configure on the platform
action-platform cloud set dokploy               # Dockerfile, compose file, image workflow
action-platform deploy --dry-run                # readiness: settings, image, key, application
action-platform deploy                          # point Dokploy at <image>:<version>, follow to done
action-platform diagnose

How it works

The build never runs on the platform or on Dokploy. The overlay's workflow publishes ghcr.io/<owner>/<repo>:<version> on every published release; the target tells Dokploy which tag to run and waits for the deployment to end. Every deployment therefore references a release, and rolling back is pointing at the previous tag.

Overlay Dockerfile (two stages on the images-base build and runtime images, ap-build package, port 8000), .dockerignore, docker-compose.yml for a machine, .github/workflows/docker-publish.yml (GitHub CI only), DEPLOY.md. One overlay for every language of the official web/* templates
Mapping Dokploy project = [project] name; environment = the scope (dev, prod); application = <name>-<scope>. create and the first deploy provision what is missing, the domain included when [deploy.domains] names one
Readiness dokploy.settings (url, key, image known), image.published (a manifest HEAD at the registry, following the bearer challenge), dokploy.credentials (the key opens project.all), dokploy.application (exists, not mid-deployment). The platform runs it after every release and refuses a blocked deploy
Deploy application.saveDockerProvider with <image>:<version>, application.deploy titled v<version>, then application.one until done or error (15 minutes at most). Every step reaches the platform's run log
Rollback the previous done deployment titled v<version> in the history, or the version asked for, deployed again
Diagnose status, image, version and url of the scope's application
Delete application.delete of the scope's application
Tools dokploy_projects, dokploy_applications, dokploy_deployments
Commands action-platform dokploy projects|applications|deployments

Configuration

platform.toml:

[deploy]
target = "dokploy"
# url = "https://dokploy.example.com"    # overrides the plugin option
# image = "ghcr.io/acme/shop"            # default: ghcr.io/<[source_host] repo>
# project = "shop"                       # default: [project] name
# application = "shop"                   # default: [project] name
# port = 8000
# health = "/health"                    # checked after the deploy; "" skips it

[deploy.domains]
prod = "shop.example.com"
dev = "shop-dev.example.com"

[deploy.env]                             # set on the application before each deploy,
LOG_LEVEL = "info"                       # over what it already has

Plugin options (Plugins → Dokploy → Configure on the platform; on a machine, the environment or ~/.action-platform/plugins/dokploy.json):

Option Environment
url DOKPLOY_URL where the dashboard answers. Order on a machine: [deploy], AP_DOKPLOY_URL, DOKPLOY_URL, the options file
api_key DOKPLOY_API_KEY Settings → API Keys in Dokploy. Never in platform.toml
registry_username, registry_password AP_DOKPLOY_REGISTRY_* only for a private image; a GitHub token with read:packages for ghcr.io

A deploy job carries the options as AP_DOKPLOY_<KEY>.

Requirements

  • Dokploy 0.20 or newer (projects with environments; application.saveDockerProvider).
  • An API key without a rate limit (Settings > API Keys): a deploy makes more calls than a limited key allows and gets 401 half-way.
  • The image published before the deploy: on GitHub, the overlay's workflow does it on every release. Another CI publishes <image>:<version> itself; the image.published check waits for it.
  • The container listens on $PORT (8000 in the overlay's Dockerfile).

Development

pip install -e ".[dev]"
ruff check . && ruff format --check . && pytest

Tests never reach the network: tests/fake.py is a Dokploy in memory.

Module Responsibility (ABC in abc.py)
target.py DokployTarget: the core's DeployTarget contract, composing the parts below
spec.py Spec: options, platform.toml and settings resolved once per call
client.py Api: the Dokploy REST API
registry.py Registry: whether an image tag was published
provision.py Provisioner: project → environment (scope) → application
domains.py Domains: the scope's domain, or one Dokploy generates
deployments.py Deployments: point at the tag, deploy, wait, previous version
health.py Health: the app answers its health route after the deploy
checks.py Readiness: settings, image, API key, application state
settings.py where a value comes from: argument, job env, process env, options file
tools.py, cli.py read-only views for MCP and the terminal

Metadata

Release files for apx-dokploy 0.4.0

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

Source distribution (sdist)

Source distribution for apx-dokploy 0.4.0
File Size Uploaded
apx_dokploy-0.4.0.tar.gz 30.6 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for apx-dokploy 0.4.0
File Interpreter ABI Platform
apx_dokploy-0.4.0-py3-none-any.whl Python 3 none any Details

Total release size: 62.3 kB

Release files / apx_dokploy-0.4.0.tar.gz

Download URL apx_dokploy-0.4.0.tar.gz
Size 30.6 kB
Tags Source
SHA-256 checksum
How to use checksums
be75c0ae6af278a31e7de1a00389ed73714b3dca261a3d5f7e95bdb71fd4250b
BLAKE2b-256 checksum
How to use checksums
3709436fc8db82b59e61c8c03efd9fc55914fa13d9556813e24f6be3860389ff
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 Sep 27, 2026.

Transparency log

Release files / apx_dokploy-0.4.0-py3-none-any.whl

Download URL apx_dokploy-0.4.0-py3-none-any.whl
Size 31.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
cc4b2b70eaed8063f06dfae872ff678e7aa818fe9919299b8fec8b63617e858b
BLAKE2b-256 checksum
How to use checksums
d178101a63a4b1c0d6a5bdbaa3e5d86b3682510e5d548f0e7d042b96afdee5ba
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 Sep 27, 2026.

Transparency log

Release history Release notifications | RSS feed

0.5.0

2 release files

This release

0.4.0 This release

2 release files

0.3.2

2 release files

0.3.1

2 release files

0.3.0

2 release files

0.2.0

2 release files

0.1.0

2 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