Free tools Windows power users keep installed
One-click scans. No signup required.
iTechGuides is reader-supported. When you buy through links on our site, we may earn an affiliate commission. As an Amazon Associate I earn from qualifying purchases. Learn more
A reliable Spliit backup has at least two separate parts: a PostgreSQL database dump for groups, expenses, and other records, plus a separate copy of any receipt images stored in S3 or a compatible object store. Keep the deployment configuration and secrets needed to reconnect those parts, then rehearse restoring them into an isolated Docker setup. The official Spliit documentation does not establish a tested, no-loss disaster-recovery procedure, so a successful backup is not proven until a restore rehearsal succeeds.
What a Spliit backup must contain
Spliit uses PostgreSQL for application data. If Expense documents are enabled, uploaded images are stored separately in an AWS S3 bucket or a compatible object store configured with a custom endpoint. A database dump does not include the bytes of those objects, even if database records refer to them.
- Database: a consistent export of the Spliit database, and any required cluster-wide roles or other global objects captured separately.
- Receipt objects: a separate copy or recovery mechanism for the image objects, along with the bucket name, endpoint, region, and object-key conventions.
- Deployment configuration: the Compose file, Spliit image tag or digest, PostgreSQL major version, database name and role, connection settings, and required secrets.
Spliit’s README describes PostgreSQL, Docker Compose, and optional S3-backed Expense documents. Its Compose example is a mutable main-branch example, not a record of your installation; document the versions and settings actually deployed. Store secret values in a protected secret manager or encrypted configuration backup rather than in an unprotected archive.
What’s actually slowing this PC down?
Pick the symptom - the matching free tool is one click away.
How to back up Spliit in Docker
1. Record the deployment details
Before a failure, save the exact Spliit image tag or digest, PostgreSQL image tag and major version, Compose file, database name and role, and the values needed to connect to the database and object store. Include whether Expense documents are enabled, the S3 endpoint, region and bucket, and the relevant credentials. Do not assume the illustrative credentials or values in a sample Compose file are suitable for production.
#1 Best Overall
- 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.
Record the database volume mapping too. PostgreSQL’s official Docker image documentation specifies different data-directory mount targets by major version: PostgreSQL 17 and earlier use /var/lib/postgresql/data; PostgreSQL 18 uses a version-specific PGDATA path, /var/lib/postgresql/18/docker, and the image’s volume target changes to /var/lib/postgresql. Use the documented path for the image major version you actually run. A changed mount target can mean the container does not use or persist the data directory you intended.
2. Export the PostgreSQL database
pg_dump makes a consistent export of one database while it is in use; it does not block ordinary readers or writers. A custom-format archive is a practical default because it is compressed by default and can be restored selectively or in a different order with pg_restore.
pg_dump -Fc -d "$DATABASE_URL" -f spliit.dump
Use a trusted PostgreSQL client compatible with the server. Supply credentials through a protected method appropriate to your environment; avoid putting a password directly in a command that may be saved in shell history or logs. Check the command’s exit status and stderr for warnings, then protect the resulting dump as sensitive data. PostgreSQL warns that restoring a dump can execute code selected by source superusers, so restore only dumps from a trusted source.
Do these 3 things before closing this tab:
1Scan for outdated or missing drivers - takes under a minute2Repair Windows errors before they cause bigger problems3Fix the driver behind crashes, sound loss and screen glitchesThis command exports one database, not an entire PostgreSQL cluster. If your installation depends on shared roles or tablespaces, capture the required global objects separately using an appropriate mechanism, such as pg_dumpall, and include them in the restore plan.
Rank #2
- 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.
3. Protect receipt images separately
If Expense documents are enabled, copy or replicate the bucket objects independently of the database dump. Preserve the bucket and endpoint details and coordinate the object-copy recovery point closely with the database dump. The closer the two recovery points, the less likely the restored records and available images are to describe different moments in time.
AWS S3 Versioning is not enabled by default. When enabled, overwrites create new object versions and deletes create delete markers, which can help recover earlier objects. Configure lifecycle rules deliberately: noncurrent versions consume storage and can be expired by policy. Versioning is useful protection, but it is not a substitute for an independently retained copy.
4. Keep a copy outside the Spliit host
Retain at least one backup copy somewhere other than the host running Spliit. An encrypted external drive can be an offline destination for dump files, but it is not a complete recovery set unless it also contains the separately exported receipt objects and protected configuration needed to restore the service. Keep another copy elsewhere when your recovery needs justify it.
Which backup format should you use?
| Format | What it is useful for | Trade-off |
|---|---|---|
| Plain SQL | Readable export that can be inspected and replayed with PostgreSQL tools. | Less flexible than an archive for selective or reordered restoration. |
Custom archive (-Fc) |
Compressed by default; supports selective restoration and reordering with pg_restore. |
Not a plain text SQL file for direct reading. |
| Directory archive | Supports parallel dumps and flexible restoration. | Produces a directory of files that must be retained together. |
For a straightforward Spliit recovery workflow, custom format is a reasonable choice. Choose directory format when parallel dump capability is important, and plain SQL when human inspection or a text-oriented workflow matters more. Whatever format you choose, rehearse restoring it rather than relying on the file’s existence as proof that it is usable.
Rank #3
- 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.
Are Spliit receipt images included in a PostgreSQL dump?
No. The database dump contains database content, not image bytes stored in S3 or a compatible object store. Spliit’s optional Expense documents feature requires ENABLE_EXPENSE_DOCUMENTS=true and S3 configuration, including credentials, bucket, and region; the README also allows a custom S3 endpoint for another compatible provider. Back up those objects separately.
Receipt extraction depends on Expense documents and a public S3 storage endpoint. If you use receipt extraction, protect the original image objects as well as the extracted expense data: restoring database records does not recreate missing source images.
How to restore a Spliit database into a new Docker volume
The following is a reasoned recovery sequence based on the documented components, not an officially tested Spliit disaster-recovery recipe. Rehearse it on a separate host or isolated Compose project before relying on it. Do not restore over the only surviving copy of production data.
The Tool Desk
Outbyte Driver Updater FREEScan for outdated or missing drivers - takes under a minuteDriver Scan →Outbyte PC Repair FREEClear out junk files and repair common Windows errorsFree Scan →1. Prepare an isolated, compatible target
Use the recorded Compose configuration and a compatible Spliit deployment, with an empty database on the intended PostgreSQL major version. Confirm the volume target for that image version before starting it: PostgreSQL 17 and earlier use /var/lib/postgresql/data; PostgreSQL 18 uses /var/lib/postgresql/18/docker as its data path and /var/lib/postgresql as its image volume target. Preserve a pre-migration copy of the restored database before allowing a newer application release to act on its schema.
Rank #4
- 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.
The Spliit README’s local development notes say that installing dependencies applies migrations and updates Prisma Client. Treat schema changes as an application-version concern: restore against a compatible Spliit deployment first, and do not let a newer version migrate the only recovered copy.
2. Restore the archive into the empty database
Provision the target database and role with the intended connection settings. If the dump depends on separately captured global objects, restore the necessary ones using your planned procedure. Then restore the custom archive to the empty target database:
pg_restore --dbname="$DATABASE_URL" spliit.dump
Use a trusted archive and inspect errors and warnings. This example assumes the target database and required role setup are already in place; ownership, privileges, extensions, and environment-specific configuration may require additional handling. Do not add destructive cleanup options casually, especially when the target might contain data you need.
3. Restore objects and runtime settings
Copy or recover receipt objects into the expected bucket or compatible endpoint, then configure Spliit with the matching bucket, region, endpoint, and credentials. Restore the other protected environment settings and start the intended Spliit version against the recovered database.
Best Value
- [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.
4. Validate the application and actual data
After startup, check /api/health/readiness or /api/health; Spliit documents these as readiness checks that include database connectivity. The /api/health/liveness endpoint only indicates that the application process is running. None of these checks proves that every record or receipt object was restored.
- Open representative groups and expenses and confirm expected balances and relationships.
- Open representative receipt links or otherwise verify that the corresponding object is accessible.
- Check for missing records, inaccessible images, configuration mismatches, and any restore warnings before treating the rehearsal as successful.
How to make the backup plan dependable
Set a backup cadence and retention period to match how much recent data you can afford to lose and how quickly you need service back. The available Spliit and PostgreSQL documentation does not prescribe those values; they depend on your usage and recovery needs. Keep database and object-store recovery points coordinated, retain copies away from the application host, and protect all copies as sensitive data.
Record each rehearsal’s date, dump timestamp, object-copy timestamp, application image version, and outcome, including any mismatch discovered. Repeat the exercise after changing Spliit release, PostgreSQL major version, storage provider, or Docker volume layout. A tested restore is the way to find problems a successful dump command cannot reveal.
Quick Recap
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.

