Dumpling

Guides / Railway

Back up Railway PostgreSQL to Amazon S3

Set up automatic, scheduled PostgreSQL backups from Railway into your own Amazon S3 bucket โ€” with retention, optional encryption and failure alerts โ€” without writing a script or maintaining a cron server.

Why back up off-platform?

Railway offers volume backups on paid plans, but they live inside Railway. An off-platform copy protects you from account lockouts, billing issues and accidental deletes.

The default choice if you already run on AWS. Eleven nines of durability, lifecycle rules, and Glacier tiers for cheap long-term retention.

Step 1 โ€” Find your Railway database credentials

Open your database service in the Railway dashboard โ†’ Variables. Use the public DATABASE_PUBLIC_URL / MYSQL_PUBLIC_URL (host, port, user, password, database). Railway exposes a TCP proxy host like xyz.proxy.rlwy.net with a non-standard port.

Then allow the Dumpling worker's static IP address 2.28.121.200 to connect. Enable SSL if your server supports it. For extra safety, create a read-only user; the exact GRANT statements are in the docs.

Step 2 โ€” Create a Amazon S3 bucket and access key

  1. Create a bucket (keep Block all public access on).
  2. Create an IAM user with a policy allowing s3:PutObject, s3:GetObject, s3:DeleteObject and s3:ListBucket on that bucket only.
  3. Generate an access key pair for that user.

In Dumpling, the endpoint is (leave empty) and the region is us-east-1. Uploads into S3 are free; you only pay for storage (~$0.023/GB-month) and for egress when you download a restore.

Step 3 โ€” Create the backup job

  1. Sign in (free, no card) and add the database from step 1. Dumpling tests the connection and reports the version and size immediately.
  2. Add the Amazon S3 bucket from step 2. Dumpling writes and deletes a tiny test object to confirm the key works.
  3. Create a job: pick a schedule (daily at 02:00 UTC is a good default), how many backups to keep, and optionally a passphrase to encrypt files client-side-decryptably.

The first backup starts right away. From then on, Dumpling runs pg_dump on schedule and streams the output straight into S3. Every run shows the object key, size, duration and log.

Restoring

Download the object from Amazon S3 and run:

createdb restored_db
pg_restore --no-owner --no-acl -d restored_db 2026-09-10T02-00-01Z.dump

Encrypted files (.enc) decrypt with openssl enc -d -aes-256-cbc -pbkdf2; see the restore docs.

Prefer to do it yourself?

It is a few lines of shell โ€” the hard part is the machine to run it, retention, and knowing when it silently stops working:

# DIY alternative: a cron job on a server you maintain
0 2 * * * PGPASSWORD=... pg_dump -Fc -h HOST -U USER DB \
  | aws s3 cp - s3://BUCKET/backups/$(date -u +%FT%TZ).dump --endpoint-url https://s3.amazonaws.com
# ...plus retention, alerting, and a machine to run it on.

Dumpling exists so you do not have to babysit that cron job. The free plan covers one database with daily backups forever.

Back up Railway PostgreSQL to S3 in 3 minutes

No agent. No card. Your bucket.

Start free โ†’

Related guides