Deploy to your own servers.

Deploy from Git and manage your apps, databases, and backups from one dashboard.

7-day free trial · No credit card required
01
Not a host
Depfloy never hosts your code or traffic. Everything runs on servers you own.
02
You keep root
SSH access stays yours. Depfloy automates on top of it, not instead of it.
03
Any provider
Provision on Hetzner, AWS or DigitalOcean through their APIs, or connect any server that speaks SSH.

10 frameworks. 6 data services.

Every one of these deploys to your servers and gets its own guide.

WHERE IT RUNS

Bring a machine from anywhere.

Depfloy provisions servers through a provider's API where it can, and connects over SSH where it cannot. Either way the machine is rented in your name and billed to you.

Hetzner One-click provisioning

Create a server from the dashboard and Depfloy provisions the whole stack: machine, SSH key, setup script. Delete it in Depfloy and the machine goes with it.

Amazon Web Services One-click provisioning

Order an EC2 instance from the dashboard: region, subnet, instance type, root volume, Elastic IP. Delete it in Depfloy and AWS releases the instance, key pair, security group and Elastic IP with it.

DigitalOcean One-click provisioning

Order a droplet from the dashboard: region, size, and whether you want a Cloud Firewall and a Reserved IP. Delete it in Depfloy and the reserved IP, droplet, firewall and SSH key all go with it.

Everything else, over SSH

Any VPS you can reach over SSH works — another provider, a box in your own rack, the machine under your desk. Depfloy provisions the stack on it the same way it does on one it created.

Ubuntu 26.04 Ubuntu 24.04 Ubuntu 22.04
DEPLOYMENTS

Push to deploy. Zero downtime. Rollback in one click.

  1. STEP 1
    You push

    A push to the connected branch triggers the deploy. Or trigger one manually — from the dashboard, the CLI, or an agent over MCP.

  2. STEP 2
    Your server builds

    The new release is built in its own directory while the current one keeps serving. Your per-project deploy script runs here.

  3. STEP 3
    The symlink flips

    When the build succeeds, current is re-pointed at the new release. The swap is atomic — no request ever hits a half-deployed app.

Every push becomes a release

Connect GitHub, GitLab or Bitbucket, and a push to the branch you picked triggers the build on your server. The new release goes live with a symlink flip — the site never stops serving while it happens.

Last 7 days: 19 deploys 18 succeeded 1 failed
Success acme-app-staging develop · 16c6653 1m 9s
Success acme-app main · 9c0382a 1m 14s
Success acme-web main · 0a19dbb 1m 58s
Failed acme-app main · acd9b30 48s
Success acme-blog main · c0420e6 54s
A failed build leaves the current release selected

With release-based deployments, a build failure before switchover leaves the current release selected. Shared configuration, database changes and server resource pressure can still affect it.

releases/
2026-07-25_1402 ✕ build failed
2026-07-24_0917 ← current, still serving
2026-07-23_1130
Return to an earlier deployment

PHP-FPM rollback reuses a release still on disk. Node.js, Octane and missing releases are rebuilt at the selected commit.

current ⟲ release-142
Deploy scripts
Per-project scripts run on every release.
Scheduled jobs
Cron, managed from the dashboard.
Background workers
Queue workers, supervised and restarted.
DATA LAYER

Databases, caches, and search — on your hardware.

Provision PostgreSQL, MySQL, Redis, Valkey, ClickHouse and Meilisearch on your own servers. Depfloy manages the service; the data never leaves your machines.

Databases, users and replication

Create databases and users, edit the config file, and run PostgreSQL streaming-replication clusters from the same dashboard as your apps.

acme-db-1 Online
PostgreSQL 18 203.0.113.31
acme_productionCopy connection URL
acme_analyticsCopy connection URL
Backups you can restore from

Seven sources on a schedule — the six data services plus project files — to S3, Cloudflare R2, any S3-compatible endpoint, SFTP, FTP, or the server's own disk. Restore and exclusion rules included.

acme_production — daily active → Acme S3 · keep 14
✓ completed4.5 GB8fbd148ee6…
acme_production — weekly offsite active → Cloudflare R2 · keep 8
✓ completed4.5 GB710000002b…
OPERATIONS

The rest of running a server.

Certificates, Cloudflare DNS records, firewall rules, uptime checks and alert thresholds are the work that fills the weeks between deploys. They are in the same dashboard, not a second tool you also have to remember.

SSL certificates

Issued per domain and renewed before they expire, including domains that point at a load balancer.

DNS records

Connect a Cloudflare token and its zones are editable here: A, AAAA, CNAME, TXT, MX, NS and CAA. Adding a domain to a project opens the record for it.

Firewall

Rules per server, applied over SSH. When the server and the dashboard disagree, a re-sync settles it.

Uptime monitoring

A health check requests a URL on a schedule; a heartbeat waits for a scheduled job to report in. Three consecutive failures is what counts as down, so one bad minute is not an alert.

Server resource alerts

CPU, memory and disk against a threshold you set. A notification when it trips, and another when it clears.

nginx and PHP, editable

Edit the generated nginx config or php.ini from the dashboard. Projects pin any PHP from 7.0 to 8.4.

Activity log

51 kinds of action recorded with the member who ran them: deploys, server changes, team changes.

GitHub, GitLab and Bitbucket

Connect the account once. A push to the branch you picked starts the deploy.

Laravel plugins in one click

Horizon, Octane, Reverb and Nightwatch install and stay supervised, without writing the service file yourself.

Maintenance mode

Put a project behind a holding page you wrote. Deploys still run while it is on, so you can fix, verify, then reopen.

Notifications

Email or Slack for five events: a deploy that worked, a deploy that failed, a server gone quiet, an alert, a failed backup.

AI & AUTOMATION

Your servers, over MCP.

Connect Claude or any MCP client. Agents can deploy, roll back, read logs, edit env vars, and manage backups, firewalls, domains, and certificates — limited to the same permissions as the user's role and token.

Need a shell? Open an interactive terminal in the Console, on a server or in a project's live release.

CLAUDE · MCP
The 14:02 deploy on acme-app failed — roll back and show me the log tail.
▸ depfloy.rollback project=acme-app → release-142 live
▸ depfloy.read_logs lines=40 → composer install failed: ext-intl missing
Rolled back to release-142 — the site never stopped serving. The build failed on a missing PHP extension; want me to add ext-intl to the server?
$ depfloy deploy acme-app
→ building on acme-web-1 … release live in 1m 14s
$ depfloy backups run acme_production
NAME ROLESCOPE
JD
Owner all servers · all projects
AO
Amara Okafor
Admin all servers · all projects
LB
Lukas Brandt
Manager all servers · all projects
PR
Priya Raman
Developer acme-web-1 · acme-app
TV
Tomas Vega
Viewer acme-blog only
TEAMS

Roles that map to how agencies work.

Organizations with Owner, Admin, Manager, Developer, and Viewer roles. Scope any member down to specific servers or projects — including shared terminal sessions, where one person has the keyboard.

Two different things get metered.

The workflow is the same either way: push, build, go live. What changes is what shows up on the invoice — and whether it moves when your traffic does.

Usage-based platform
What the invoice is made of
  • ↑Compute time per request
  • ↑Bandwidth by the gigabyte
  • ↑Function invocations
  • ↑Per-seat team charges
  • ↑Build minutes
Every line moves with usage.
Your own server + Depfloy
What the invoice is made of
  • ·Server capacity charged by your provider
  • ·One flat Depfloy plan
  • ·Bandwidth and storage priced by your provider
  • ·Team seats included on Business
  • ·Deploys and builds unmetered
Depfloy has a flat fee. Provider charges depend on capacity, storage and bandwidth.
Your provider bills you for the machine; Depfloy bills a flat plan. Full comparison vs Vercel →
PRICING

Starts at $5/mo. Flat, in USD.

Compare plans →
$5–$39
Per month, across all 3 plans
Up to 17%
Off the monthly rate when billed yearly
7 days
Full product on trial, no credit card
Depfloy only — the machines stay on your provider's invoice.
FAQ

Common questions

What is Depfloy? +
Depfloy is a server management and deployment platform for applications running on servers you rent. You connect a VPS over SSH — a Hetzner, AWS or DigitalOcean machine ordered through its API, anything else as a plain SSH host — and Depfloy provisions it, then deploys releases to it and manages PostgreSQL, MySQL, ClickHouse, Redis, Valkey and Meilisearch on it. It is not a host: your code and your traffic never touch our infrastructure.
How is Depfloy different from Laravel Forge, Ploi, Coolify or Dokploy? +
Compare the exact workflow and plan you need. Forge also offers database management, backup restoration and resource-scoped teams. Depfloy provisions six data engines and provides PostgreSQL replication and PgBouncer controls alongside PHP and JavaScript deployments. Coolify offers both self-hosted and Cloud control planes; its Docker-based workflow differs from Depfloy managing services directly on your server. The linked comparisons describe the scope of each product.
Does Depfloy host my app? +
No. Depfloy never hosts your code or traffic. Everything runs on servers you own — we connect over SSH, provision them, and automate from there. If you leave, your servers keep running as configured.
What happens when a deploy fails? +
For release-based deployments, a build failure before switchover leaves the current release selected. Shared configuration, database changes and server resource pressure can still affect the running application. PHP-FPM projects can reuse a target release that is still on disk. Node.js, Octane and targets missing from disk use a normal deployment at the selected commit. Rollback does not reverse database migrations.
How do I find out when a site or a scheduled job stops working? +
Two kinds of monitor, on every plan. A health check requests a URL on an interval you set — as fast as every five minutes on Starter, every 60 seconds from Pro up — and reads the status code; redirects are not followed, so a 301 counts as a failure unless 301 is the status you asked for. A heartbeat is switched on from the scheduled job or background worker itself, with nothing to add to a crontab and no package to install, and it separates a job that ran and exited non-zero from one that never ran at all. Three consecutive failures is the default before either reports an outage, so the first notice is minutes rather than seconds. Checks run from a single region, and there is no public status page.
Which server providers work? +
Hetzner, AWS and DigitalOcean servers are created and destroyed through their APIs from the dashboard. On AWS you pick a region, a subnet in it, an instance type and the root volume; on DigitalOcean a region, a droplet size, and whether to add a Cloud Firewall and a Reserved IP. Neither asks for an image id — Depfloy resolves it from the Ubuntu release you picked — and deleting the server releases everything it created, down to the SSH key. Everything else connects over SSH — a Vultr box, a machine in your own rack — running Ubuntu 22.04, 24.04 or 26.04.
How many servers can I connect? +
One on Starter, unlimited on Pro and Business. Projects and deploys are unlimited on all three — the server count is what separates them. Each machine keeps its own configuration and its own deployment queue, and you can cap how many deploys run at once on a given server; that cap is available on every plan and stays off until you set it. Moving a project from one server to another is a Business feature.
Can Depfloy manage my DNS? +
If your zone is on Cloudflare, yes. Connect an API token with zone read and DNS edit, and A, AAAA, CNAME, TXT, MX, NS and CAA records become editable from the console. Adding a domain to a project opens its A record for you — unproxied, so a certificate can be issued — and Depfloy removes only records it opened itself. Before a certificate is requested it reads the CAA policy on the name and stops if that policy does not authorise Let's Encrypt, saying which record carries it and what to add. Cloudflare is the only provider: a zone at Route 53 or your registrar stays where it is.
What can I run on it? +
10 frameworks: Laravel, Next.js, Nuxt, Astro, Remix, React Router, WordPress, Symfony, Statamic and PHP. 6 data services, with the versions Depfloy installs: PostgreSQL 18, 17 or 16 · MySQL 8 · Redis 8.4 · Valkey 8.1 or 8.0 · ClickHouse · Meilisearch 1.11, 1.10 or 1.9. PHP projects pin any version from 7.0 to 8.4. WordPress and phpMyAdmin can also be installed from a catalog, on a server you already have, with no repository to connect.
Do I keep root access to my servers? +
Yes. SSH and root stay yours the whole time. Depfloy automates on top of your access rather than replacing it.
What does the trial include? +
7 days of the full product, no credit card. Prices are in USD; your server provider bills you separately for the machines themselves.
Side by side: Forge · Ploi · Coolify · RunCloud · Vercel
Where people arrive from: agencies · solo developers · leaving a PaaS

Connect a server. Deploy your stack.

7 days free, no credit card. If it's not for you, your servers keep running exactly as Depfloy configured them.