Migrate
Move to Levelrail without a big bang
A read-only importer reads your Coolify, Dokploy or CapRover instance and creates the matching apps and databases here. The old platform keeps serving traffic until you switch DNS.
Choose where you are coming from
Four steps, and the source keeps running through the first three
- ImportRead the source and create the matching apps and databases here, empty. Start with a dry run that shows what would be created.
- Copy dataCopy each database and check the row counts match.
- Copy volumes and run in parallelMove volumes, then run the app here while the source keeps serving traffic.
- Cut overCheck each domain, then switch DNS one domain at a time. The source stays untouched until you stop it.
You can run it from the dashboard (Settings, Import from another platform), from the CLI (levelrail-cli import platform) or through the API.
What does not migrate automatically
- Databases the copy step does not support (ClickHouse, KeyDB, Dragonfly), and any database you did not run the copy for. They stay empty.
- Volume contents move only when you run the generated copy commands. Bind mounts need the same host path on the target node and the root ability.
- Health checks that are shell commands, pre and post deploy commands, extra ports and raw host port mappings. They are called out as needing attention.
- TLS certificates, DNS records, deploy history, logs and metrics. Certificates are issued here on first use.
- Cron jobs are reported with their schedule and command so you can recreate them as scheduled tasks.
Each platform page lists the extra items that apply to it. The guide in the docs has the full list and the manual checklist.
Coming from somewhere else
There is no importer for the platforms below. Each page says what to do by hand.
- Dokku: No importer for Dokku. Deploy the same repositories and recreate environment variables and domains.
- Kamal: No importer for Kamal. Point Levelrail at the same images and recreate configuration.
- Vercel: No importer; migration is manual. The runbook maps each Vercel concept to its Levelrail equivalent and lists the gaps.
- Heroku: Repos with a Dockerfile deploy as-is; managed databases cover common add-ons, but third-party add-ons are not replicated.
- Railway: There is no Railway importer. Deploy from the same git repos and recreate env vars and domains.
- Cloud Run: No importer. Deploy the same container image; the runbook maps each Cloud Run concept and lists what has none.
Migration questions
Does the Levelrail importer change my old platform?
No. It reads the source through its own HTTP API and only creates things on the Levelrail side. The source keeps serving traffic until you switch DNS.
Can I try it without changing anything?
Yes. Start with a dry run, which reads the source and lists what would be created per item without creating anything.
What happens to my data?
Databases are created empty and you copy the data in, then check row counts. Volume contents move with copy commands you run yourself, because the control plane never reaches the source host.
Can I undo an import?
The importer only adds resources, and every imported app carries import labels. To undo, delete those apps and databases. The source needs no rollback because it was never changed.
Levelrail is pre-release. Run it next to your current platform for a while before you retire anything.