Feature: Cloud Providers — auto-provision servers (OVH, AWS, DigitalOcean, etc)
Maintainers usually reply within 1 day
Nobody has claimed this yet.
Assessment
- Difficulty
- 5/5
- Estimated time
- Over a week
- Newbie friendliness
- 45/100
- Issue type
- Feature
- Clarity
- Mostly clear
- Activity status
- Active
- Tech stack
- aws, terraform, typescript
- Domain
- backend-api-design, cloud, devops, infrastructure
Research direction
Start by reading the existing Secrets Providers and DNS Providers implementations, then inspect the planned files: packages/server/src/db/schema/cloud-provider.ts, packages/server/src/services/cloud-provider.ts, apps/dokploy/server/api/routers/cloud-provider.ts, and the settings UI directory. Done means a DigitalOcean-first provider can connect, create a server with the selected size, region, image, and SSH key, and invoke the existing bootstrap flow; the async behavior and permission model still need maintainer input.
Written by the indexing model from the issue text.
Description
What problem will this feature address?
I'm always frustrated when adding a server to Dokploy requires provisioning the VM manually first — through the provider's console, CLI, or an external tool like Terraform — and only then pasting the IP and SSH key into Dokploy to register it. There's no way to create the underlying infrastructure from within Dokploy itself, so the "multi-server from day one" story still needs a separate tool/workflow before Dokploy even enters the picture.
Describe the solution you'd like
Add a "Cloud Providers" section under Settings, following the same pattern as the existing Secrets Providers / DNS Providers: you connect a provider account (API token/credentials, with a Test Connection button like the others), and can then create a new server directly from Dokploy — pick size/region/image, Dokploy provisions the instance via the provider's API, waits for it to become reachable, and runs the existing server bootstrap flow (Docker, Traefik, monitoring agent) automatically. No manual SSH copy-paste for the initial setup.
I'd like to start with DigitalOcean only (simplest API surface — a single droplet creation call with ssh_keys attached), then follow up with AWS EC2 and OVH in separate PRs once the pattern is validated by maintainers.
Describe alternatives you've considered
Provisioning the server outside Dokploy with Terraform or a provider's own CLI, then registering it via the existing server.create API once it has an IP. This works today, but it's a separate tool and workflow instead of a first-class Dokploy feature, and it doesn't benefit from being wired into the same UI/permissions model as everything else.
A fully generic "any provider via Terraform" approach was also considered, but it's a much bigger scope and harder to review/maintain than dedicated provider integrations following the existing pattern (Secrets/DNS Providers).
Additional context
Planned approach mirrors the existing Secrets Providers module:
- packages/server/src/db/schema/cloud-provider.ts
- packages/server/src/services/cloud-provider.ts (CRUD + testConnection + createServer)
- apps/dokploy/server/api/routers/cloud-provider.ts
- Settings UI under components/dashboard/settings/cloud-provider/
Open questions I'd want input on before starting:
- Should server creation be async (queued job + status polling), or is a blocking request acceptable for v1?
- Any preference on which provider should land first, or is OVH fine as the initial scope?
- Should this live behind the same permission-resource pattern as vaultProvider, or its own dedicated permission?
Will you send a PR to implement it?
Yes
- Dominant language
- TypeScript
- Stars
- 38.2k
- Forks
- 3.1k
- Avg merge
- 2d 7h
- Merged PRs (30d)
- 69
Getting set up
Starts the project's dev container in your browser, under your own GitHub account.
- Ships a Dockerfile or Docker Compose file
- Has a pull request template
- Read the contributing guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from Dokploy/dokploy
-
needs-triage🔍
Difficulty 2/5 1-3 hours Newbie friendliness 62/100
Dokploy/dokploy#5836 · 1 comment ·
Maintainers usually reply within 1 day
-
Server threshold (CPU/Memory) alerts for the main Dokploy server never reach any notificationPossibly taken @ghazy2001 claimed this 3 days ago. Open
Difficulty 2/5 1-3 hours Newbie friendliness 75/100
Dokploy/dokploy#5830 · 1 comment ·
Maintainers usually reply within 1 day
-
Add a "System" option to the dark/light mode setting (follow OS appearance)Possibly taken @fabianfrankwerner claimed this 24 days ago. Openenhancement
Difficulty 2/5 1-3 hours Newbie friendliness 62/100
Dokploy/dokploy#5638 · 1 comment ·
Maintainers usually reply within 1 day
-
compose.search omits services missing from member accessedServices, even for owners/adminsPossibly taken @imrja8 claimed this 5 days ago. Open
Difficulty 2/5 1-3 hours Newbie friendliness 82/100
Dokploy/dokploy#5361 · 2 comments · 1 reaction ·
Maintainers usually reply within 1 day
-
[Feature Request] Show usage example for File Mounts created in the UIPossibly taken @jereok91 claimed this 47 days ago. Openenhancement
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
Dokploy/dokploy#5147 · 3 comments · 1 reaction ·
Maintainers usually reply within 1 day
Similar issues
-
Difficulty 2/5 1-3 hours Newbie friendliness 75/100
Maintainers usually reply within 1 day
-
Difficulty 1/5 Under an hour Newbie friendliness 83/100
Maintainers usually reply within 1 day
-
🔊 a11y
Difficulty 2/5 1-3 hours Newbie friendliness 82/100
betagouv/mon-entreprise#4726 ·
Maintainers usually reply within 9 days
-
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
Deltares/fews-pi-requests#357 ·
Maintainers usually reply within 1 day
-
bug confirmed js v6
Difficulty 2/5 1-3 hours Newbie friendliness 85/100
Maintainers usually reply within 1 day