Migrating from Heroku

Migrating from Heroku

View as Markdown

Move a Heroku app to Atlasflow.

Heroku builds with buildpacks and runs processes defined in a Procfile. Atlasflow builds a container image instead, either from a Dockerfile or via automatic detection.

What maps over

HerokuAtlasflow
Git push deployPush to your default branch
BuildpacksAutomatic builds (Railpack) or a Dockerfile
Config varsEnvironment variables
web dynoYour container listening on port 3000
Custom domainsCustom domains

Steps

  1. Create a project from your GitHub repository.
  2. Replace the Procfile. Heroku's web process becomes your container's start command. With a Dockerfile, put it in CMD. With automatic builds, your framework's standard start command is used.
  3. Set the port to 3000. Heroku assigns a dynamic $PORT; Atlasflow expects port 3000 bound to 0.0.0.0. Update your app to listen on 3000.
  4. Recreate config vars as runtime variables. Replace Heroku add-on URLs (such as a database) with your own connection strings.
  5. Respond on /. Make sure GET / returns a 2xx status for the health check.
  6. Deploy, test the preview URL, then move your domain.

Things to know

  • Each Heroku process type (worker, clock) becomes a separate Atlasflow project running that command.
  • Atlasflow doesn't run release-phase commands or one-off dynos. Run migrations as part of your container start or as a separate job.
  • Managed Postgres is coming soon; use your own database until then.

Next steps