Adopting an Existing Server
Import a server's running Docker Compose projects and databases as managed DeployOS apps, without redeploying anything.
If you already run apps on a VPS outside of DeployOS — your own Compose stacks, a previous manual deploy setup — you can bring the whole server under DeployOS management without touching what's already running.
Coming from Coolify, Dokploy, CapRover, Dokku, or Render.com specifically? Importing From Other Platforms understands those platforms directly and is the faster path.
Scan
From a server's card, choose Scan. DeployOS opens an SSH session and inventories the box:
- OS, architecture, installed Docker and Compose versions.
- Whether the shared edge network exists.
- What's already listening on port 443 (Traefik, Caddy, Nginx, something else, or nothing) — and whether that means bootstrap should adopt or step aside.
- Firewall (ufw) status.
- Every running container, grouped by its Compose project label.
- Databases it can detect (Postgres, MySQL, MongoDB, Redis, MSSQL).
- A list of modernization advisories — things worth knowing about the server's current setup, each with a severity level.
Adopt
You have two options once you've scanned:
- Adopt individually — pick a specific running Compose project from the container table and adopt just that one as a managed app.
- Adopt everything — import every Compose project on the box as a managed app in one go, plus register any detected databases. This is the fastest path for "I want DeployOS to manage a server I've been running by hand."
Adopting doesn't redeploy or restart anything — it just teaches DeployOS about what's already there so you get logs, restarts, rollbacks, and monitoring for it going forward.
After adopting
Adopted apps start with their repo/branch/domain fields blank, since DeployOS didn't create the container and doesn't know where the code came from. Fill those in from the app's Config tab if you want DeployOS to redeploy from GitHub in the future — until then, restart/logs/monitoring all work, but deploy doesn't have a source to pull from yet.
💡 Tip — an adopted database defaults to a
deployosuser for its backups and health checks. If it actually uses different credentials, set them from the Databases page so backups work correctly.
Also useful for "bare" workloads DeployOS didn't recognize as a Compose project at all (a Node process running under pm2, for instance) — Scan surfaces these separately with a Containerize button that pre-fills the New App form with what it detected, so you can bring it under proper container management.