Before you start
- Connect a server to Symplax and make sure it is online. Everything in the import is created on that one server.
- Connect the GitHub account that owns each service’s repository. Symplax builds from GitHub only.
- Check you have room for the databases on your plan: Free allows 2, Pro 5, Team unlimited. See Databases.
Get a Railway token
In Railway, open your account menu at the bottom left, then Account Settings, then Tokens. Create a token with no team selected. A project token cannot list your projects, so it will not work. Symplax stores the token encrypted and only reads from it when you ask for a project. You can remove it at any time with Disconnect.Import a project
1
Open Integrations
Click Integrations in the sidebar. On the Railway card, click Connect and import.
2
Connect Railway
Paste the token into API token and click Connect.
3
Choose a project
Pick the project. Symplax reads each service, which can take a moment on a large project.
4
Review what will be created
Check Will be created and Will not be imported. Fix anything flagged as cannot be imported or needs a different name (use Rename, which only changes the name in Symplax).
5
Choose a server and import
Pick the server, then click the import button, which names what it will create, for example Import 2 apps and 1 database. Each app starts its first build straight away.
What comes across
Apps. Each service with a GitHub repository becomes an app, with its root directory, build command, start command and health check path. If the service has a Railway domain, its port is used andPORT is set. Otherwise the app listens on port 3000.
Databases. Each database service becomes a new, empty Symplax database of the same engine: PostgreSQL, MySQL, MariaDB, MongoDB, Redis, Valkey or ClickHouse. Symplax picks the version from the image tag, using the nearest version it offers at or above Railway’s. When it cannot match exactly, the review shows a note.
Variables. Your own service variables come across. Railway’s injected RAILWAY_* variables do not. References to a database, such as ${{Postgres.DATABASE_URL}}, PGHOST or REDIS_URL, are rewritten to point at the new Symplax database over the server’s private network. Apps that wait on a database start building once it is running.
What does not come across
A Railway database without a public endpoint blocks the import. In Railway, open the database, then Settings, Networking, Add Public Access, and refresh the review in Symplax.
If the project has several environments and none is called
production, the import cannot pick one and stops with a message listing them.After importing
1
Watch the first builds
Each app shows Building now, watch the log. A failed build is an ordinary failed deploy, nothing else is undone.
2
Fill in unset variables
If the import lists Some variables were left unset, set them on the app’s Variables tab and redeploy.
3
Move your data
Dump each Railway database and load it into the new one, for example over public access with your usual tools.
4
Check the branch, cron jobs and volumes
Fix the branch if it is not
main, recreate cron jobs, and add storage for any volumes.5
Move your domains
When everything works on the
*.symplax.app address, point your DNS at the server and add your custom domains.