Dumpling

Guides / Neon

Back up Neon PostgreSQL to DigitalOcean Spaces

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

Why back up off-platform?

Neon has branching and point-in-time restore inside Neon. A logical dump in your own bucket is portable to any Postgres and survives account issues.

If your stack is on DigitalOcean, Spaces keeps billing in one place. Still, prefer a different region from your database.

Step 1 โ€” Find your Neon database credentials

Neon dashboard โ†’ your project โ†’ Connection details. Use the direct (non-pooled) host, e.g. ep-xxxx.region.aws.neon.tech, port 5432, with SSL required.

Then allow the Dumpling worker's static IP address 2.28.121.200 to connect. Keep SSL enabled โ€” Neon requires it. For extra safety, create a read-only user; the exact GRANT statements are in the docs.

Step 2 โ€” Create a DigitalOcean Spaces bucket and access key

  1. Spaces โ†’ Create a Space (private).
  2. API โ†’ Spaces Keys โ†’ Generate New Key.
  3. Endpoint is https://<region>.digitaloceanspaces.com.

In Dumpling, the endpoint is https://nyc3.digitaloceanspaces.com and the region is nyc3. Spaces is $5/month for 250 GB including 1 TB egress.

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 DigitalOcean Spaces 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 Spaces. Every run shows the object key, size, duration and log.

Restoring

Download the object from DigitalOcean Spaces 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://nyc3.digitaloceanspaces.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 Neon PostgreSQL to Spaces in 3 minutes

No agent. No card. Your bucket.

Start free โ†’

Related guides