Migrate from Railway

Move from Railway to your own server.

Move each Railway service to a server you own. The concepts map one to one, so the move is mostly copying settings and your data.

Railway, mapped to Beep.

RailwayBeep
ServiceService, built with Railpack or your Dockerfile
Variables and ${{ }} referencesEnvironment variables, with references written ${{ service.KEY }}
Postgres or Redis pluginManaged Postgres 16 to 18, Redis or Valkey
Cron scheduleA cron job service, in the time zone you choose
PR environmentsA preview environment for every GitHub pull request
Custom domainPoint a CNAME at Beep; certificates are issued and renewed for you
Deploy on pushEvery push to the tracked branch on GitHub or GitLab builds and releases

Step by step.

  1. Connect a server

    Use Beep Cloud, a server in your own cloud account, or any Ubuntu or Debian VPS. Beep installs its runtime and agent and locks the server down: inbound traffic is denied, and app ports are reachable only from Beep’s edge.

  2. Recreate each Railway service

    Create a Beep service from the same repository and branch for every web service, worker and cron job. Carry over the start command, pre-deploy command and health check path.

  3. Copy your environment variables

    Add each variable to the matching service, mark secrets as secret, and replace connection strings with references to Beep’s managed databases, written ${{ service.KEY }}.

  4. Create the databases and move the data

    Add managed Postgres, Redis or Valkey, then copy the data across. For Postgres, dump from Railway and restore into Beep; for large or busy databases, pause writes first so nothing is lost.

    Postgres
    pg_dump "$RAILWAY_DATABASE_URL" --format=custom --no-owner > app.dump
    pg_restore --no-owner --dbname "$BEEP_DATABASE_URL" app.dump
  5. Test on the Beep URL

    Every service gets a URL on edge.usebeep.sh. Check the app there while Railway still serves your users.

  6. Switch your domain

    Point your domain’s CNAME at Beep. Certificates are issued automatically, and traffic moves as DNS updates.

  7. Turn off Railway

    Once traffic has moved and the data is in place, remove the Railway services so you stop paying for them.

Leaving Railway, answered.

Straight answers. Anything missing, ask us directly.

Will moving from Railway cause downtime?

Your app keeps running on Railway while you set up and test Beep, and traffic moves when you switch DNS. The one thing to plan is the database: pause writes during the final dump and restore, or accept a short read-only window.

Do I need to change my code?

Usually not. Beep builds the same repository with Railpack or your Dockerfile and sets PORT for each service. Update connection strings to reference Beep’s managed databases.

How long does it take?

Most of the work is copying settings and variables, then moving the data. The data copy takes as long as your database size and connection allow.

Own your infrastructure again.

Plans from $1 a month, billed per server, never per service.

Early access · We’ll set up your workspace

Or talk to us →