Automate Coolify backups as two separate schedules: a storage backup for application files and a database backup for database records. A storage job creates a compressed archive from an eligible volume or directory mount, optionally uploads it to validated S3-compatible storage, and applies local and remote retention rules. A database job uses the database engine’s dump process. Keep at least one tested copy away from the deployment server; a successful archive is not proof that recovery will work.
Antihost offers VPS plans with one-click Coolify, NVMe storage and a 14-day free trial.
What Coolify can back up, and why two schedules are required
Coolify treats application files and database contents as different backup problems. Files live in persistent mounts and can be archived as a unit. Databases need an engine-aware dump so indexes, transaction metadata, and logical records are captured consistently. An archive of a database volume can contain an unusable or internally inconsistent data directory, so it is not a substitute for a PostgreSQL, MySQL, MariaDB, MongoDB, ClickHouse, or SQLite dump.
As an Amazon Associate I earn from qualifying purchases.
The Tool Desk
Outbyte PC Repair FREERepair Windows errors before they cause bigger problemsFix Now →Outbyte Driver Updater FREEScan for outdated or missing drivers - takes under a minuteDriver Scan →| Characteristic | Storage backup | Database backup |
|---|---|---|
| Data covered | Files in an eligible volume or directory mount | Records exported by the supported database engine |
| Consistency approach | Keep containers running or stop them while the archive is made | Database-aware dump executed on the database server |
| Supported targets | Eligible Volume Mounts and Directory Mounts | PostgreSQL, MySQL, MariaDB, MongoDB, ClickHouse, and SQLite |
| Remote copy | Optional upload to a validated S3-compatible destination | Optional S3 destination when configured for the database job |
| Retention | Local and S3 limits are configured independently | Retention options are supplied when the database schedule is created |
| Timeout | Schedule has a configurable timeout | Controlled by the database backup job and its CLI options |
| Dashboard restore action | No documented one-click restore; download and test the archive separately | Restore a dump into a disposable database and verify the application |
Redis, Dragonfly, and KeyDB are not supported by Coolify’s scheduled database workflow. Use each engine’s own persistence and backup facilities, or deploy a separate backup-capable service for those databases.
Prepare the backup design before creating a schedule
Check that the application data is in an eligible mount
Storage backups can target an application Volume Mount, whether or not it has a Source Path, or a Directory Mount. File Mount and Host File Mount are not supported by this workflow. If the data you care about is mounted through one of those unsupported types, change the mount design or use a separate host-level backup method before relying on the Coolify schedule.
#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.
Decide where the second copy will live
A local archive on the deployment server protects against an accidental overwrite inside the application, but not against loss of that server. Configure a validated S3-compatible storage destination when you need an off-server copy. You can choose to retain the local archive after a successful upload or remove it to save disk space. Local and S3 retention are independent, so each location needs its own count, age, and maximum-storage limits.
Choose a consistency policy
In a storage schedule’s general settings, you decide whether containers remain running during the archive. Keeping them running avoids application downtime, but files may change while they are being read. Stopping the containers reduces that consistency risk, but the application is unavailable for the archive interval. For data that must be transactionally consistent, prefer an application-aware backup or stop writes before the archive begins.
Free tools Windows power users keep installed
One-click scans. No signup required.
Plan a restore test, not just a schedule
Coolify documentation states that a backup is not a restore test. Decide in advance where you will restore a copy without touching production: a disposable database for dumps, or an isolated mount and test deployment for file archives. A backup should be called recoverable only after the restored application can read the expected data.
Create an automated application storage backup in the dashboard
1. Open the storage backup screen
- Open the application inside its Coolify project and environment.
- Choose Backups.
- Under Storage backups, select Add.
- Select the eligible volume or directory you checked earlier.
2. Set the frequency
Enter one of Coolify’s named frequencies or a five-field cron expression. A newly created schedule defaults to daily; change it when that cadence does not match the data’s recovery-point objective.
| Label | Cron expression | When it runs |
|---|---|---|
every_minute |
* * * * * |
Every minute; useful only for short-lived testing because it produces archives rapidly |
hourly |
0 * * * * |
At the start of every hour |
daily |
0 0 * * * |
At midnight according to the server’s scheduler time zone |
weekly |
0 0 * * 0 |
At midnight on Sunday |
monthly |
0 0 1 * * |
At midnight on the first day of each month |
yearly |
0 0 1 1 * |
At midnight on January 1 |
Use a five-field cron expression when a named interval is too broad, such as a database dump at 02:00 every day: 0 2 * * *.
3. Set runtime behavior
Open the schedule’s general settings and choose whether containers stay running or stop during the archive. Treat this as a data-integrity decision, not merely a performance setting. A running container can write a file after Coolify has already archived an earlier portion of the directory; stopping the workload creates a cleaner point-in-time file set at the cost of downtime.
Quick wins for a faster PC:
Repair Windows errors before they cause bigger problemsFix Now →Scan for outdated or missing drivers - takes under a minuteDriver Scan →4. Configure S3 and retention
Select a validated S3-compatible storage destination when the archive must survive a server failure. Configure whether Coolify keeps the local archive after a successful upload. Set local and S3 retention separately by the number of archives, archive age, and maximum storage consumed. A generous S3 retention policy does not compensate for an overly short local limit, and vice versa; they are enforced independently.
5. Verify each execution
After the schedule runs, open Executions. Treat Success as usable only when an archive location is shown. Success (S3 Warning) means the local archive completed but the remote upload failed, so investigate the destination before assuming you have an off-server copy. Failed and Needs attention require investigation before the next recovery point is trusted.
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.
Automate storage schedules through the Coolify API
For many applications, use the authenticated API instead of repeating dashboard clicks. The schedule endpoint is:
PUT /api/v1/applications/{uuid}/storages/{storage_uuid}/backups
The operation creates or replaces the backup schedule for the specified application storage. Supply the fields exposed by your Coolify API version:
frequency— a named frequency or five-field cron expression.enabled— whether the schedule is active.save_s3— whether to upload the archive to S3-compatible storage.s3_storage_uuid— the validated S3 storage record to receive the archive.- Local and S3 retention fields for count, age, and maximum storage.
stop_during_backup— whether containers are stopped while the archive is created.timeout— the maximum time permitted for the operation.
Keep the request authenticated and record the application UUID, storage UUID, and schedule values in your deployment configuration so a replacement server can recreate the policy. Do not assume a successful API response proves that an archive exists; inspect the execution created by the schedule.
Queue an immediate storage backup
Once a storage already has a schedule, queue an on-demand run with:
POST /api/v1/applications/{uuid}/storages/{storage_uuid}/backups/run
This is useful after changing retention, validating an S3 destination, or making a release that should have a known recovery point. Check the resulting execution and its location rather than treating the queued request itself as evidence of a completed backup.
Automate database backups with the Coolify CLI
Confirm context, databases, and S3 destinations
Start by verifying that the CLI is connected to the intended Coolify instance, then list the database and S3 records:
coolify context verify
coolify database list
coolify s3 list
Use the database UUID returned for the target instance and the S3 UUID returned for the validated remote destination. Database jobs execute on the database server and run only while that database is running; a stopped database cannot produce its scheduled dump.
Create a scheduled dump
A complete example using a daily 02:00 schedule, S3 upload, and seven days of local retention is:
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.
coolify database backup create {database_uuid} --frequency "0 2 * * *" --enabled --save-s3 --s3-storage-uuid {s3_uuid} --retention-days-locally 7
Save the backup UUID returned by the command. It identifies the schedule for later runs and execution checks. Add the retention and timeout options supported by the CLI version you are running; do not copy options from a different release without checking its command help.
Trigger and inspect a run
Use the database backup trigger command for an immediate execution:
Outdated Drivers Are Slowing You Down
One free scan finds every outdated or missing driver and matches the right update for your exact hardware.Free scan · exact hardware matchPC Slower Than It Used to Be?
A free scan shows the junk files, broken settings and background clutter dragging Windows down - then fixes them in one click.Free scan · Windows 10 & 11coolify database backup trigger
When your CLI version asks for a backup identifier, provide the UUID saved from the create command. Then inspect the result:
coolify database backup executions
Look for a completed execution and a usable local or S3 location. A scheduled dump that has never produced a verified execution is only configuration, not a recovery asset.
Database engine coverage
| Engine | Scheduled Coolify database backup | Operational note |
|---|---|---|
| PostgreSQL | Supported | Use the engine-aware dump workflow |
| MySQL | Supported | Use the engine-aware dump workflow |
| MariaDB | Supported | Use the engine-aware dump workflow |
| MongoDB | Supported | Use the engine-aware dump workflow |
| ClickHouse | Supported | Use the engine-aware dump workflow |
| SQLite | Supported | Ensure the application is quiescent when file-level consistency matters |
| Redis | Not supported by this workflow | Use Redis persistence or a separate backup-capable service |
| Dragonfly | Not supported by this workflow | Use the engine’s own persistence and backup tools |
| KeyDB | Not supported by this workflow | Use the engine’s own persistence and backup tools |
Choose schedules and retention by recovery objectives
Match frequency to acceptable data loss
The interval determines the maximum normal gap between recovery points. Hourly schedules reduce the exposure window for frequently changing uploads; daily schedules are often sufficient for configuration or low-change content. Use a custom cron expression when a workload has a predictable quiet period, such as a database dump at 02:00. The named frequency mapping is the same cron mapping shown earlier, so document the server time zone alongside the schedule.
What’s actually slowing this PC down?
Pick the symptom - the matching free tool is one click away.
Separate local speed from remote durability
Local archives make short-term restores faster, while S3-compatible copies protect against a failed or replaced deployment server. Keeping both locations is usually safer than choosing one, but storage limits still apply independently. Before enabling deletion of local files after upload, confirm that the remote object is visible and that your restore procedure can access it with the credentials available during an outage.
Set a timeout that reflects archive size
The storage API exposes a timeout setting. A timeout that is shorter than the time needed to read, compress, and upload the data will create false failures. A very long timeout can delay detection of a hung job. Adjust it from observed execution duration and review it again after a major data-volume increase.
Prove that a Coolify backup can be restored
Test a storage archive
- Choose a recent execution with Success and a recorded location, or retrieve the object from the S3 destination.
- Download the compressed archive to an isolated test host or a disposable mount.
- Extract it using tooling appropriate to the archive format and inspect expected directories, permissions, and representative files.
- Attach the restored data to a non-production deployment with the same application configuration.
- Exercise the application paths that read and write the restored data, including uploads, sessions, generated assets, or configuration files relevant to your workload.
- Record the elapsed restore time and any manual steps; those details become your recovery runbook.
Coolify does not provide a documented dashboard restore action for storage archives. Downloading an archive and confirming that it can drive a working test deployment is therefore part of operating the backup, not an optional audit exercise.
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.
Test a database dump
- Obtain a completed database execution and copy the dump into a disposable database instance of the same engine.
- Restore the dump using that engine’s supported import or restore procedure.
- Connect a test deployment of the application to the disposable database.
- Check schema version, row counts for important tables or collections, recent records, indexes, and application reads and writes.
- Document credentials, extensions, users, and post-restore migrations that must be recreated during an incident.
A dump that exists in S3 but cannot be imported, or imports while the application fails its normal reads, is not a successful recovery point.
Understand what a control-plane backup covers
An instance backup protects Coolify’s own projects, resources, settings, and deployment history. It does not include application data, databases, or volumes, so it must complement—not replace—the storage and database schedules.
The APP_KEY in /data/coolify/source/.env encrypts stored credentials and private keys. Save the complete key line in a secure location separate from the server. If the instance is rebuilt without the original key, restored secrets cannot be read even when the control-plane backup itself is available.
Troubleshoot the failures that matter most
The mount does not appear in Storage backups
Check the mount type first. File Mount and Host File Mount are outside this workflow. Convert the data to an eligible Volume Mount or Directory Mount, or implement a separate backup method that understands the current mount.
The execution says Success (S3 Warning)
The local archive completed, but the S3 upload failed. Verify the S3 storage record, endpoint, bucket, credentials, network access, and available capacity. Until a new execution shows a remote location, treat the local archive as the only copy and investigate its retention window.
Recommended Free Tools
The archive is present but files are inconsistent
If containers remained running, writes may have occurred during archiving. Repeat the run with containers stopped, pause application writes, or use an application-aware backup. Do not solve a consistency problem by merely increasing retention.
The database schedule produces no dump
Confirm that the database is running on its database server, that the schedule is enabled, and that the backup UUID and S3 UUID point to the intended records. Review coolify database backup executions for the first failed run rather than waiting for several missed intervals.
Restored secrets are unreadable after an instance rebuild
Restore the original APP_KEY line before expecting encrypted credentials and private keys to work. Keep that key separate from the server and from any single control-plane backup location.
Operational checklist
- Every application data directory is an eligible Volume Mount or Directory Mount.
- Storage and database schedules use frequencies documented with their cron expressions and server time zone.
- Containers are stopped or writes are quiesced when file consistency requires it.
- An S3-compatible destination is validated for every workload that needs off-server protection.
- Local and S3 retention limits leave enough room for the intended recovery window.
- At least one recent storage archive and one recent database dump have a recorded location.
- A disposable restore test has confirmed that the application can read restored data.
- Redis, Dragonfly, and KeyDB are covered by their own backup mechanisms.
- The Coolify control-plane backup is stored separately, with the complete
APP_KEYline protected separately as well. - There is no assumption that a successful backup execution equals a tested restore.
Coolify’s official documentation does not publish an authoritative numeric backup reliability or success-rate statistic. The practical evidence is an execution with a usable location followed by a repeatable restore test under conditions similar to an outage.
Do these 3 things before closing this tab:
1Clear out junk files and repair common Windows errors2Fix the driver behind crashes, sound loss and screen glitches3Repair Windows errors before they cause bigger problemsQuick 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.




