Dokploy Community Edition

This is a community fork of Dokploy. We are not affiliated with or competing against the Dokploy project. This fork exists to make new features available faster.

Based on Dokploy v0.30.8 Fork version v0.30.8-community.40

Everything in upstream Dokploy v0.30.8, plus features that upstream does not have and fixes ported from open upstream PRs, each ported 1:1 with credit to its original author. When a port merges upstream later, you lose nothing by switching back.

Guides

Switching from official Dokploy

One command. Keeps every app, database, domain, and setting — the extra migrations are additive:

docker service update \
  --image ghcr.io/devinosolutions/dokploy-community:v0.30.8-community.40 \
  --with-registry-auth \
  dokploy

Going back to official is just as easy (our extra tables/columns are simply ignored):

docker service update --image dokploy/dokploy:v0.30.8 --with-registry-auth dokploy

The image is public — no registry login required.

Running in production

Devino runs its own products on Dokploy Community, built and deployed through the fork and monitored by Uptimely. Each badge below is live and links to that product’s public status page.

Product What it is Status
Uptimely Uptime monitoring, on-call, status pages Uptimely status
Snapvisor Visual regression testing for pull requests Snapvisor status
DoDomain Custom domains for SaaS DoDomain status
Notifly Notification infrastructure API Notifly status
GetItDone AI daily planner and to-do list GetItDone status
SuperBooks AI bookkeeping and accounting software SuperBooks status
VoiceLabs AI text to speech, voice cloning VoiceLabs status
Shorty AI video and article summarizer Shorty status
Demofy Automated product demo videos Demofy status
Syncara Personal health record app Syncara status
Caramel Free open-source coupon extension Caramel status
Marka 0% fee buy and sell marketplace Marka status
SafeMeet Anonymous moderated 1:1 chat SafeMeet status
Caly Free scheduling app Caly status
BioFlow AI link in bio builder BioFlow status
uNotes Free university notes, past exams uNotes status

The fork’s own integrations guide shows how to wire Uptimely monitors, the deploy heartbeat and the incident channel into your apps: Integrations guide.

Key features

Only what upstream Dokploy does not ship. The changelog and the full release notes have the complete, per-PR credited list.

Remote MCP server with OAuth (fork original)

Build once, deploy by digest (fork original)

Preview deployments for Compose, GitLab and Gitea

Cloudflare Tunnels and Access

Domains

Integrations and monitoring

Backups

Security hardening (fork only)

Also

Concurrent deployments and Docker network management started as fork features and now ship in official Dokploy, so this fork uses the official implementations.

What’s new in v0.30.8-community.40

Older notes are in the changelog and on GitHub Releases.

Fresh install

On a clean Linux server with root access (same requirements as Dokploy):

curl -sSL https://dokploy-community.devino.ca/install.sh | sh

Install a specific version:

export DOKPLOY_VERSION=v0.30.8-community.40
curl -sSL https://dokploy-community.devino.ca/install.sh | sh

Update an existing installation:

curl -sSL https://dokploy-community.devino.ca/install.sh | sh -s update

Docker Image

ghcr.io/devinosolutions/dokploy-community:v0.30.8-community.40      # versioned (recommended)
ghcr.io/devinosolutions/dokploy-community:latest                  # latest release
ghcr.io/devinosolutions/dokploy-community:canary                  # latest build

Error reporting & privacy

The fork reports unhandled backend errors — crashes and internal server errors, i.e. the stack trace, error message, and fork version — to a Devino-hosted Sentry instance so we can catch regressions across installs without waiting on bug reports. No environment variables, secrets, deployment logs, request data, or personal information are ever sent, and the reporting server’s hostname is stripped before the event leaves your machine.

Opting out is one environment variable on the dokploy service:

docker service update --env-add DOKPLOY_DISABLE_SENTRY=true dokploy

The standard DO_NOT_TRACK=1 convention is also respected.

Browser session replay (opt-in, off by default)

The dashboard never records your browser sessions unless the instance operator turns it on. With nothing set, no replay or product-analytics code is downloaded, and nothing is sent. It only runs in production builds, and DOKPLOY_DISABLE_SENTRY=true or DO_NOT_TRACK=1 force it off even when enabled.

Where the data goes. When you enable it, by default session replays and browser errors are sent to the fork maintainers’ Sentry (the built-in DSN), and, if you configure one, to the PostHog host you set. To keep the data on infrastructure you control, set DOKPLOY_SESSION_REPLAY_SENTRY_DSN to your own Sentry project’s DSN; an invalid value disables the Sentry part instead of falling back to the built-in DSN. Do not enable it on an instance whose dashboard sessions you are not entitled to send to those servers.

Set these on the dokploy service (they are read at runtime, so the same image works everywhere):

Variable Default Meaning
DOKPLOY_SESSION_REPLAY unset (off) Master switch. Only the exact value true turns replay on.
DOKPLOY_SESSION_REPLAY_SAMPLE_RATE 0.1 Share of sessions recorded from the start, clamped to 0 to 1.
DOKPLOY_SESSION_REPLAY_ON_ERROR_SAMPLE_RATE 1.0 Share of sessions that hit an error whose replay is kept, clamped to 0 to 1.
DOKPLOY_SESSION_REPLAY_SENTRY_DSN built-in DSN Optional https://<key>@<host>/<project-id> DSN of your own Sentry project.
DOKPLOY_POSTHOG_KEY, DOKPLOY_POSTHOG_HOST unset Also record sessions and page views in a PostHog project (for example https://posthog.example.com). Used only when the switch is on and both are set. The browser loads PostHog’s recorder script from <host>/static, so that host must serve it.
docker service update --env-add DOKPLOY_SESSION_REPLAY=true dokploy

What is recorded: the page structure and interactions (clicks, scrolling, navigation), plus page views and browser errors. What is masked or left out: all text and all form inputs are replaced with placeholders, images, video and other media are blocked, console output is dropped, network request and response bodies and headers are not captured, and query strings and hashes are removed from every URL that is sent. Log viewers, terminals and code and environment editors are excluded from the recording entirely. Pages that carry credentials (password reset, invitations, registration, the MCP authorization screen, and any URL with a token, code or state parameter) are never recorded. Browser errors are scrubbed of secrets before they are sent. PostHog autocapture is off and users are never identified. The page URL recorded inside a Sentry replay can still include query strings (Sentry 10.72 has no hook for that event), which is why credential pages are never recorded.

Replays are stored by the servers you point it at. Roughly 10% session sampling keeps the volume low; lower DOKPLOY_SESSION_REPLAY_SAMPLE_RATE to reduce it further. Add the class ph-no-capture to an element to exclude it from the recording entirely.

Versioning

Tags follow v<upstream-version>-community.<n>: the upstream Dokploy release the fork is based on, then a counter that restarts at 1 for each new upstream version. For example, v0.30.8-community.40 is the 40th fork release on top of Dokploy v0.30.8.

Contributing

This fork tracks upstream Dokploy’s canary branch. To contribute:

  1. Fork this repo
  2. Create a feature branch from canary
  3. Open a PR targeting canary

For features that should go upstream, please also open a PR on the official Dokploy repo.

Contributors

This fork carries the work of 100+ contributors — upstream Dokploy’s authors plus the fork’s own community. GitHub hides the contributors panel on fork homepages, but the full list is here:

Contributors

See all contributors →

Credits

License

Same as upstream — Apache 2.0