Already have a site or an app running somewhere else? This page is the starting point. Find your stack below, open its guide and follow the steps. Each guide covers the code, the database and the domain.
Pick your stack
WordPress
Move a WordPress site from its current host to a WordPress app on FlyNode. The site is copied from server to server with a migration key, then you attach your domain, replace the old address in the database and check the result.
- How to migrate WordPress to FlyNode
- Deploy WordPress on a Cloud Workspace, if you have not created the WordPress app yet
Next.js
Deploy the app from Git as a Custom app and create a PostgreSQL database next to it, for Prisma or Drizzle.
Laravel
Deploy the app from Git with MySQL and Redis created next to it, then run your migrations from the terminal. Laravel 12 works today. Laravel 13 needs PHP 8.4, which the builder does not have yet.
MERN (MongoDB, Express, React, Node)
Deploy the Node and Express server as a Custom app with a MongoDB beside it, then import your data.
Django, Rails and other stacks
There is no step-by-step guide for Django or Rails yet. Any app in a Git repository follows the same path: deploy it as a Custom app and add the database it needs. For Django and Rails that is usually PostgreSQL, and the Custom app form has a preset for it. FlyNode builds with Nixpacks, which detects most Node, Python and Go projects on its own. If it cannot work out how to start your app, set the install, build and start commands under Advanced build options.
- Deploy a GitHub repository
- Deploy a private repository
- Add a database to your app
- Bring your own Compose, for an app made of several services
The same steps for every stack
- Put the code in Git. FlyNode deploys from a GitHub repository, public or private.
- Deploy it and add the database. The Custom app form creates the database with the app and sets the connection variables for you.
- Bring the data across. Import a dump into the new database from the Database tab. Files up to 500 MB are accepted.
- Check it on the temporary address. Every app gets a FlyNode address, so you can test before you touch your domain.
- Point your domain at FlyNode. Follow Custom domains for apps and change your DNS only when you are happy with the result.
Good to know
- Each database counts as one app of your Workspace. See Understanding resource allocation.
- Set backups before you cut over. Databases can be downloaded or saved to your own Google Drive, as described in Add a database to your app.
- If a build fails, open the build log and see Build logs, variables and rollback.
Still stuck?
Open a support ticket from your dashboard and include the container name.