// Migration Guide · 2026
Migrate from DigitalOcean to Runsite
Whether you're on App Platform or managing Droplets, DigitalOcean leaves you choosing between limited managed tiers and hands-on server work. Runsite reads your App Platform app.yaml and runs the whole stack managed in Frankfurt.
- ~15 min
- typical migration
- PaaS, not droplet ops
- keep your workflow
- Keep DigitalOcean running
- until you cut over
// the mental model
Every DigitalOcean concept has a Runsite home
DigitalOcean App Platform describes your app in an app.yaml spec. Runsite reads it and recreates each component as a managed EU resource — no Droplet to babysit.
name: my-app
services:
- name: api
github:
repo: me/app
branch: main
run_command: npm start
http_port: 8080
databases:
- name: db
engine: PG
version: "16" - →App Platform servicedigitaloceanWeb service autoSame git-driven build and run command
- →run_command + builddigitaloceanStart & build commands autoCarried over from app.yaml unchanged
- →Managed PG databasedigitaloceanManaged PostgreSQL you doProvision in Frankfurt; dump and restore
- →Managed Redis (Valkey)digitaloceanManaged Redis you doProvision Redis; repoint REDIS_URL
- →Droplet (if used)digitaloceanManaged web service autoStop patching a VM — Runsite runs your container for you
- →App-level env varsdigitaloceanEnvironment variables autoNon-secret vars imported; secrets pasted once
// step by step
From DigitalOcean to live in the EU
Six steps. Most of them take seconds. DigitalOcean keeps serving traffic until you flip your DNS.
- 1
Create a Runsite project
~30 secSign in at runsite.app and create an empty project. No credit card, no sales call.
- 2
Connect your Git repo
GitHub · GitLab · BitbucketAuthorize GitHub, GitLab or Bitbucket. Runsite scans the selected branch for your app.yaml and detects the stack automatically.
- 3
Review the detected setup
Full preview before provisioningRunsite lists every service, database and env var it found and how each maps onto a Runsite resource. Tweak build or start commands inline. Nothing is created yet.
- 4
Provision in Frankfurt
One click · eu-centralCreate the whole stack in one step. Cross-resource env vars are wired up for you, and you get fresh database and Redis credentials in the EU.
- 5
Drop in your secrets
Secrets stay out of GitSecret values are never read from your repo. Paste API keys and tokens once in the dashboard; they're encrypted at rest and never logged.
- 6
Push to go live
Live in < 2 mingit push and your app builds and deploys in the EU in under two minutes. Point your custom domain when ready. DigitalOcean keeps running until you cut over.
// no surprises
What moves on its own — and what you touch
Honest about the boundaries. The supported stack is recreated in one click; a short list needs a human, and Runsite flags every item.
Imported automatically
- ✓ App Platform services — build & run commands
- ✓ HTTP ports and health checks
- ✓ Non-secret environment variables
- ✓ Auto-deploy on git push
You handle once
- → Managed databases — dump and restore into managed PostgreSQL
- → Managed Redis / Valkey — recreate as managed Redis
- → Droplet workloads — repackage as a web service
- → Secret environment variables — paste once after import
// digitalocean problems → runsite solutions
Common DigitalOcean frustrations — sound familiar?
Every DigitalOcean frustration, solved.
DigitalOcean problem
"I have to manage the server myself"
Droplets require SSH access, OS updates, security patches, nginx config, and manual deployment.
Runsite solution
Fully managed PaaS
Push to GitHub, auto-build, auto-deploy. SSL, scaling, and maintenance handled for you.
DigitalOcean problem
"DigitalOcean is a US company"
Your data is subject to US jurisdiction even on Amsterdam droplets.
Runsite solution
EU entity, EU law
Runsite is registered in the EU. Your data is governed by European privacy laws.
DigitalOcean problem
"$200 trial credit runs out"
DigitalOcean's trial is generous but temporary. After 60 days, you pay for everything.
Runsite solution
Permanent free tier
No trial period. No credit card. Build and deploy at zero cost, forever.
// comparison
Runsite vs DigitalOcean
Side-by-side. No marketing fluff — just facts.
| Feature | Runsite | DigitalOcean |
|---|---|---|
| Deployment Method | ✓ Git push, auto-build | Manual server setup |
| Server Management | ✓ Fully managed | ✗ You manage everything |
| EU Data Centers | ✓ Frankfurt (eu-central) | ✓ Amsterdam, Frankfurt |
| GDPR Compliance | ✓ EU entity | ✗ US company |
| Free Tier | ✓ Permanent | ✗ $200 trial credit |
| Basic Droplet | €5/mo (managed) | $6/mo (unmanaged) |
| SSL Certificates | ✓ Automatic | Manual setup |
// migration questions
Migrating from DigitalOcean, answered
Does Runsite replace App Platform or Droplets?
Both. Runsite is fully managed like App Platform, but it also replaces hand-managed Droplets — you stop patching and securing a VM and run your container managed instead.
Can Runsite read my app.yaml?
Yes. Runsite reads your App Platform app.yaml, maps services, build and run commands, and databases onto Runsite resources, and shows the full plan before provisioning anything.
How do I move my DigitalOcean managed database?
Runsite provisions a managed PostgreSQL of the same major version in Frankfurt. Export with pg_dump from DigitalOcean and restore with pg_restore; the connection string is auto-wired into DATABASE_URL.
Is there downtime migrating from DigitalOcean?
No. Your DigitalOcean app or Droplet keeps serving while you build and verify on Runsite, then you switch DNS to cut over and can roll back at any time.
Why migrate from DigitalOcean to Runsite?
Runsite gives you fully managed EU hosting in Frankfurt for GDPR, predictable EUR pricing with hard spending caps and a permanent free tier — without choosing between limited tiers and manual server ops.
Leave DigitalOcean behind
Bring your app.yaml. We'll handle the rest — in Frankfurt.
Start your migration →