Hardware FixRecommendedDevice not working? Your driver may be the problemCheck updates for common hardware issues.Fix DriversOctober DealsAmazon USOctober deal check: compare before you payAmazon US: current deals, useful picks and tech finds.Check DealsWindows FixRecommendedWindows errors stealing your time? Find the fix fastScan stability, cleanup and performance issues.Fix Now×
Skip to content
World desk6 min

How to Back Up Self-Hosted Spliit: PostgreSQL Dumps, S3 Receipts and a Docker Restore Rehearsal

A Spliit recovery plan must preserve PostgreSQL records and optional S3 receipt objects separately. Learn how to dump the database, retain deployment details and rehearse a Docker restore.

Free tools Windows power users keep installed

One-click scans. No signup required.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

A reliable Spliit backup has at least two separate parts: a PostgreSQL backup for groups, expenses and other database records, and a separate copy of any receipt-image objects stored in S3 or an S3-compatible service. Save the configuration and secrets needed to reconnect them, keep copies off the Spliit host, and rehearse restoring them in an isolated environment. A database dump alone cannot recreate receipt image bytes, and the documented components do not establish a guaranteed no-loss recovery procedure.

What a Spliit backup needs to preserve

Spliit uses PostgreSQL. Its optional Expense documents feature stores uploaded images in an S3 bucket and associates them with expenses. The database and bucket are independent recovery assets: the database dump preserves records and references, while a separate object-store backup preserves the image files. Receipt extraction also depends on expense documents and a public S3 storage endpoint, so preserve the source images as well as any extracted expense data.

As an Amazon Associate I earn from qualifying purchases.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
  • Database: a consistent dump of the Spliit database.
  • Receipt objects: a separate copy or protected versions of the bucket objects, if Expense documents are enabled.
  • Deployment details: the Spliit image tag or digest, PostgreSQL major version, Compose file, database name and role, connection settings, and the correct volume mount.
  • Storage configuration: whether documents are enabled, the bucket name, endpoint and region, object-key conventions, and required credentials.

Keep credentials in a protected secret manager or encrypted configuration backup. Do not use example credentials from a Compose file as production secrets.

How to back up Spliit in Docker

Record the deployment before copying data

Save the actual Compose file and record the exact Spliit image tag or digest and PostgreSQL image major version. The Spliit README’s moving main-branch example uses ghcr.io/spliit-app/spliit:latest, PostgreSQL 17.3, and a bind mount at ./database/data:/var/lib/postgresql/data; your deployment may differ. A tag such as latest can change, so record the resolved image digest too if you use a moving tag.

#1 Best Overall
Seagate 2TB Portable Hard Drive | USB 3.0 (STGX2000400) | Everyday HDD storage. Plug-and-play backup. Windows & macOS. Adobe CC trial included. 1-Year Warranty
  • Easily store and access 2TB to content on the go with the Seagate Portable Drive, a USB external hard drive
  • Designed to work with Windows or Mac computers, this external hard drive makes backup a snap just drag and drop
  • To get set up, connect the portable hard drive to a computer for automatic recognition no software required
  • This USB drive provides plug and play simplicity with the included 18 inch USB 3.0 cable
  • The available storage capacity may vary.

Confirm the database name, role and connection settings rather than assuming the README’s sample values apply. PostgreSQL Docker initialization variables such as POSTGRES_USER and POSTGRES_DB are applied when the data directory is empty; changing them in Compose does not rewrite an already initialized cluster.

Mount paths depend on the PostgreSQL image major version. PostgreSQL 17 and below use /var/lib/postgresql/data; PostgreSQL 18 and above use a major-version-specific PGDATA path (18 uses /var/lib/postgresql/18/docker) and the volume target changes to /var/lib/postgresql. Use the path documented for the image you actually run.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
Rank #2
Seagate Portable 5TB External Hard Drive HDD – USB 3.0 for PC, Mac, PS4, & Xbox - 1-Year Rescue Service (STGX5000400), Black
  • Easily store and access 5TB of content on the go with the Seagate portable drive, a USB external hard Drive
  • Designed to work with Windows or Mac computers, this external hard drive makes backup a snap just drag and drop
  • To get set up, connect the portable hard drive to a computer for automatic recognition software required
  • This USB drive provides plug and play simplicity with the included 18 inch USB 3.0 cable
  • The available storage capacity may vary.

Create a consistent database dump

pg_dump exports one database consistently while it is in use; it does not block readers or writers. A custom-format archive is a practical default for flexible restores:

pg_dump -Fc -d "$DATABASE_URL" -f spliit.dump

Use a trusted PostgreSQL client compatible with the server. Provide the connection string without exposing its password in shell history, process logs or a shared command transcript; use an appropriately protected environment or password-file mechanism. Check the command’s exit status and stderr for warnings, then store the dump securely because it may contain private group and expense data.

Rank #3
Seagate Portable 1TB External Hard Drive HDD – USB 3.0 for PC, Mac, PlayStation, & Xbox, 1-Year Rescue Service (STGX1000400) , Black
  • Easily store and access 1TB to content on the go with the Seagate Portable Drive, a USB external hard drive.Specific uses: Personal
  • Designed to work with Windows or Mac computers, this external hard drive makes backup a snap just drag and drop. Reformatting may be required for Mac
  • To get set up, connect the portable hard drive to a computer for automatic recognition no software required
  • This USB drive provides plug and play simplicity with the included 18 inch USB 3.0 cable
  • The available storage capacity may vary.

pg_dump covers one database, not cluster-wide roles or tablespaces shared across databases. If your installation depends on those global objects, capture them separately using an appropriate mechanism such as pg_dumpall.

Choose a dump format for your restore needs

Format Useful when Trade-off
Plain SQL You want a text export that is straightforward to inspect. It is restored with a SQL client rather than pg_restore; it does not provide the same selective and reordered restore workflow as archive formats.
Custom archive (-Fc) You want a flexible archive for selective or reordered restoration with pg_restore. It is not a plain text SQL script. PostgreSQL compresses this format by default.
Directory archive (-Fd) You need the directory archive format, including its support for parallel dumps. It produces a directory of files rather than one archive file, so copy and retain the whole directory.

PostgreSQL warns that restoring a dump can execute arbitrary code chosen by source superusers. Restore only dumps from a trusted source.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
Rank #4
Seagate Portable 4TB External Hard Drive HDD – USB 3.0, 1-Year Rescue | Everyday HDD storage. Plug-and-play backup. Windows & macOS. Adobe CC trial included. 1-Year Warranty
  • Easily store and access 4TB of content on the go with the Seagate Portable Drive, a USB external hard drive.Specific uses: Personal
  • Designed to work with Windows or Mac computers, this external hard drive makes backup a snap just drag and drop
  • To get set up, connect the portable hard drive to a computer for automatic recognition no software required
  • This USB drive provides plug and play simplicity with the included 18 inch USB 3.0 cable
  • The available storage capacity may vary.

Are Spliit receipt images included in a PostgreSQL dump?

No. The database may contain expense records and references to uploaded documents, but the S3 object bytes are stored separately. If Expense documents are enabled, copy or replicate the relevant bucket objects independently and retain the bucket name, endpoint, region and key conventions needed to put them back where Spliit expects them.

Ways to protect the object store

Method What it helps recover What to account for
Separate bucket copy A second copy of the current receipt objects. Keep it independent of the Spliit host and ensure the copy includes the objects and keys the application needs.
S3 Versioning Earlier object versions after overwrites, and prior object state after deletes that create delete markers. Versioning is disabled by default. Configure it deliberately and review lifecycle rules: noncurrent versions consume storage and may be expired.
Independent retained copy A recovery copy if the original bucket or its account is unavailable or damaged. Keep it separate from the original failure domain and coordinate its restore point with the database backup.

For a recovery point that keeps expense references and images aligned, make the object copy close enough in time to the database dump for your needs. S3 Versioning can help recover prior object states, but it is not a substitute for an independently retained copy.

Best Value
Sale
UnionSine 500GB Ultra Slim Portable External Hard Drive HDD-USB 3.0
  • [Upgraded Version] - This external hard drive features a mirrored logo stripe combined with a striped anti-slip design, and the rounded corners of the casing make it easier to grip. The stripes also have a heat dissipation function, ensuring stable and fast data transfer.
  • 【Ultra-thin and quiet】 - The motherboard adopts JMicron 578 noise-free solution, giving you a quiet working environment. Lightweight and portable size designed to fit in your pocket for easy portability.
  • 【Ultra-Fast Data Transfers】 - Pairing this external hard drive with JMicron 578 solution USB 3.0 and USB 2.0 interfaces enables blazing-fast data transfer. It boasts theoretical read speeds of up to 125MB/s and write speeds of up to 103MB/s.
  • 【Plug and Play】 - With no software to install, just plug it in and the drive is ready to use.The hard disk chip is wrapped with an aluminum anti-interference layer to increase heat dissipation and protect data.
  • 【What You Get】 - 1 x Portable Hard Drive, 1 x USB 3.0 Cable, 1 x User Manual, Gift-type shell packaging ,Three-year manufacturer's warranty and free technical support services.
Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Support on Ko-Fi

How to restore a Spliit database into a new Docker volume

Treat this as a restore rehearsal, not a proven no-loss recipe. The steps below follow the documented components, but the Spliit README does not provide a tested end-to-end disaster-recovery procedure. Rehearse on a separate host or isolated Compose project so you do not overwrite production data.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
  1. Prepare an isolated target. Create a new, empty database and a new volume using the intended PostgreSQL major version. Configure the volume mount target for that image version. Do not point the rehearsal at the production volume.
  2. Restore the database archive. Connect pg_restore to the empty target database. For example, with a protected target connection string in TARGET_DATABASE_URL:
    pg_restore -d "$TARGET_DATABASE_URL" spliit.dump

    Restore any separately saved cluster-global objects if your installation requires them. This example assumes a trusted custom-format dump and an empty target; adapt it to your actual database and access controls.

  3. Restore the matching application and configuration. Start the Spliit image version compatible with the recovered schema, with the correct database connection and, where used, the expected S3 endpoint, bucket, region and credentials. Preserve a pre-upgrade copy before allowing a newer application version to apply schema migrations: Spliit uses Prisma, and schema changes are tied to application versions.
  4. Put receipt objects back. Restore or copy the required objects into the expected bucket or compatible endpoint, preserving the keys Spliit uses. Restore the related runtime settings and credentials as well.
  5. Start the isolated app and validate data. Check GET /api/health/readiness, which includes database connectivity. Then inspect representative groups, expenses, balances and receipt links, and confirm that the corresponding images can actually be accessed.
  6. Record the rehearsal. Note the dump and object-copy timestamps, image version, database major version, result and any mismatch. Repeat after changing the Spliit release, PostgreSQL major version, storage provider or Compose volume layout.

What a successful health check does—and does not—prove

Spliit’s /api/health/readiness and /api/health endpoints check readiness, including database connectivity. /api/health/liveness only indicates that the application process is running. A healthy response is a useful startup check, not evidence that every group, expense, balance or receipt object was restored correctly; verify representative records and images directly.

Keep a recoverable copy off the Spliit host

Keep at least one backup copy somewhere other than the host running Spliit. An encrypted external drive can hold a database dump, but it is not a complete Spliit backup unless the receipt objects and necessary configuration are also included. Where appropriate, retain another copy in a separate location. Protect portable media and restrict access to both the database export and stored images.

Quick Recap

Bestseller No. 1
Seagate 2TB Portable Hard Drive | USB 3.0 (STGX2000400) | Everyday HDD storage. Plug-and-play backup. Windows & macOS. Adobe CC trial included. 1-Year Warranty
Seagate 2TB Portable Hard Drive | USB 3.0 (STGX2000400) | Everyday HDD storage. Plug-and-play backup. Windows & macOS. Adobe CC trial included. 1-Year Warranty
This USB drive provides plug and play simplicity with the included 18 inch USB 3.0 cable; The available storage capacity may vary.
$129.99
Bestseller No. 2
Seagate Portable 5TB External Hard Drive HDD – USB 3.0 for PC, Mac, PS4, & Xbox - 1-Year Rescue Service (STGX5000400), Black
Seagate Portable 5TB External Hard Drive HDD – USB 3.0 for PC, Mac, PS4, & Xbox - 1-Year Rescue Service (STGX5000400), Black
This USB drive provides plug and play simplicity with the included 18 inch USB 3.0 cable; The available storage capacity may vary.
Bestseller No. 3
Seagate Portable 1TB External Hard Drive HDD – USB 3.0 for PC, Mac, PlayStation, & Xbox, 1-Year Rescue Service (STGX1000400) , Black
Seagate Portable 1TB External Hard Drive HDD – USB 3.0 for PC, Mac, PlayStation, & Xbox, 1-Year Rescue Service (STGX1000400) , Black
This USB drive provides plug and play simplicity with the included 18 inch USB 3.0 cable; The available storage capacity may vary.
$119.80
Bestseller No. 4
Seagate Portable 4TB External Hard Drive HDD – USB 3.0, 1-Year Rescue | Everyday HDD storage. Plug-and-play backup. Windows & macOS. Adobe CC trial included. 1-Year Warranty
Seagate Portable 4TB External Hard Drive HDD – USB 3.0, 1-Year Rescue | Everyday HDD storage. Plug-and-play backup. Windows & macOS. Adobe CC trial included. 1-Year Warranty
This USB drive provides plug and play simplicity with the included 18 inch USB 3.0 cable; The available storage capacity may vary.
$208.99

Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.

Leave a Reply

Your email address will not be published. Required fields are marked *

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

More from the Wire

  1. World desk4 min
    How to Spot an AI Voice Scam Before Sending MoneyDon’t rely on how a caller sounds. Pause, call back through a known number, and verify the emergency with another trusted person before sending money.
  2. Mountain View desk4 min
    Google’s SynthID Detector: How to Check AI-Generated Images, Video and AudioGoogle’s SynthID Detector looks for an embedded watermark in supported images, video and audio. Here is what its results do—and do not—show.
  3. Redmond desk20 min
    How to create a link to File or Folder in Windows 11Windows 11 gives you several ways to point to a file or folder without moving or duplicating it. You can create a desktop shortcut,…
Recommended PC Tool
Recommended PC Tool
Crashes, No Sound, or Screen Glitches?Free driver scan
PC Slower Than It Used to Be?Free scan - under a minute

Two free Windows tools

One Free Minute Could Fix That PC

Before you go - each of these free tools takes about a minute and tackles what quietly slows a Windows PC down.

Special offer. View Outbyte info, uninstall instructions, EULA, and Privacy Policy.