Migrate from Dokploy to Temps

To move from Dokploy to Temps, generate a Dokploy API key, point the Temps import wizard at your Dokploy instance, review the plan it generates, and execute it. Temps reads the Dokploy API, recreates the application as a Temps project with its build config, environment variables and domains, creates managed services for its databases, copies their data when the database has an external port, and deploys the app. Dokploy keeps serving traffic until you move DNS.

Comparing the two platforms before you move? See Temps vs Dokploy, or the Dokploy alternatives for how Temps compares with Coolify, CapRover, Dokku, Kamal and Easypanel.


What Temps discovers from Dokploy

Discovery walks every Dokploy project and environment. When you import an application, its Dokploy environment becomes the project boundary:

  • Applications deployed from Git or from a Docker image. The one you pick becomes the project; other applications in the same environment become additional deployments.
  • Databases in that environment (PostgreSQL, MySQL, MariaDB, MongoDB, Redis), which become Temps-managed services.
  • Environment variables, parsed from the application's Dokploy environment settings.
  • Domains attached to the application, imported as custom domains.

Will my data come across?

PostgreSQL, MySQL/MariaDB and MongoDB data is copied by a one-off dump/restore during the import only if the database has an external port set in Dokploy, because that is the only way Temps can reach it from outside the Dokploy server. Without one, the plan marks the data as not migrated and tells you to either set an external port before importing or dump the database on the Dokploy server (docker exec) and restore it into the new Temps service. Remove the external port once the copy is done.

What the Dokploy importer does not move:

  • Compose services. Dokploy's Docker Compose services aren't scanned yet. Deploy the Compose file as a Temps project, or recreate the containers as Temps services.
  • Generated *.traefik.me hosts. They are planned as skipped; Temps gives the project its own address instead.
  • Redis data. The Redis service is created empty, which is fine for a cache. If you keep data in Redis that you need, copy it yourself.
  • Files in Docker volumes. Temps app containers have no persistent volumes, so move uploads and other file data to object storage such as Temps managed S3 before you cut over.

Before you start

You need a Dokploy API key:

  1. In Dokploy, go to Settings → API/CLI → Generate API key.
  2. Leave rate limiting off for this key. Discovery makes many API calls, so if you enabled rate limiting on the key, disable it or raise the limit, or the import stops partway through.

You'll also need your Dokploy instance's URL (e.g. http://your-dokploy-server:3000).

The Temps import wizard's Connect to Dokploy credentials form, showing the Instance URL and API token fields

Step 1: Connect and discover

Discover what's running on Dokploy

  1. 1

    In the Temps dashboard, go to Projects, then click Import.

  2. 2

    Select Dokploy as the source.

  3. 3

    Enter the instance URL and the API key.

  4. 4

    Click Discover Workloads.

Temps queries the Dokploy API directly — nothing is created on this step.


Step 2: Review the plan

Pick the application to import and Temps shows the plan it will execute: the project name, build configuration, every environment variable it found (secrets masked), the databases it will create as managed services with what will happen to each one's data, and the domains it will import or skip.

Linking a Temps-tracked Git repository at this step is optional. Temps' own discovery already picks up the application's Git source (if Dokploy has one configured), so linking is for future git-push auto-deploys, not a requirement to proceed.


Step 3: Execute the import

Run the import end to end

  1. 1

    Review the plan and click Execute Import.

  2. 2

    Temps creates the project, its services, and deploys the application.

  3. 3

    Wait for the deployment to reach a healthy state — Temps verifies the app actually answers before reporting the import complete.

Your Dokploy instance keeps running the whole time — the import only reads from it. Verify the imported app on its Temps-provided address before touching DNS.


After the import

Once you've confirmed the imported app behaves correctly, point DNS for its domains at the Temps server; Temps issues the TLS certificates once the records resolve. To add a domain the import didn't bring over, use the dashboard or bunx @temps-sdk/cli custom-domains create --project-id <id> -d app.example.com -y, as shown in moving the production domain. Keep the Dokploy deployment running until you've verified normal traffic on Temps, then delete the API key you created for the import.

For the general import flow that applies across every supported platform, see Import an Existing Platform.

Last updated

Was this page helpful?