To keep uploads, generated files, or database data when Coolify replaces a container, mount storage at the exact path where the application reads and writes it. In a standard Coolify application, open Configuration > Persistent Storage, add the appropriate mount, save, and redeploy. For Docker Compose resources, define the mount in the Compose file because that file is the storage configuration source of truth.
Antihost offers VPS plans with one-click Coolify, NVMe storage and a 14-day free trial.
What persistent storage changes in Coolify
A Coolify deployment runs in a container that can be replaced during a redeploy, restart, update, or removal. Files written only to that container’s writable filesystem are therefore disposable. As the official guidance puts it, “Data written only to a container filesystem can disappear when Coolify redeploys or removes that container.”
As an Amazon Associate I earn from qualifying purchases.
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 matchWindows Errors? Fix Them Before They Spread
Repair common Windows errors and clear accumulated junk for a smoother, more stable PC - no reinstall needed.Free scan · no reinstallA persistent mount joins storage on the deployment server to a path inside the container. The application sees an ordinary directory or file at that destination, but the bytes are held outside the replaceable container layer. Only data written below the mounted destination persists. Saving a file elsewhere in the container does not make it durable.
The destination is application-specific. An image might use /app/uploads, /var/lib/example/data, /srv/app/storage, or another path. Do not select /app merely because it is common; use the image or application’s documented write location and match its spelling and capitalization exactly.
#1 Best Overall
- BLUE LIGHT BLOCKING GLASSES: Our blue light glasses for women boast UV400 protection, blocking harmful blue rays from computer screens. With these bluelight glasses women, you can enjoy gaming, reading, or watching TV with no worries of eye strain.
- EYE RELIEF: Our blue light glasses are engineered to reduce blurry vision or strain caused by prolonged screen time. These womens blue light glasses aid in better sleep by preventing blue light from disrupting your natural sleep cycle, helping you fall asleep faster and enjoy a more restful night's sleep, making them the perfect christmas present.
- COMFORTABLE: Crafted from durable material, our trendy blue light glasses for woman or blue light glasses men ensure long-lasting comfort. The high-transmittance lenses accessories, gamer gifts for men, help keep your eyes relaxed. Perfect stocking stuffers, gifts for gamers men, christmas gifts for men, halloween costumes.
- LIGHTWEIGHT: These clear blue light glasses feature a lightweight frame, meaning they’ll stay comfy for long-term wear. Perfect as blue blockers glasses for women or mens blue light glasses, these non-prescription fake glasses for men can be worn throughout the day. The blue light blocking glasses women feature polycarbonate HD lenses, which are anti-reflective and restore true color.
- WORRY-FREE PURCHASE: If you experience any issues, our support team is ready to assist you quickly. These are the perfect costume glasses for cosplay dressing up.
Plan the mount before changing the deployment
Persistent storage is easiest to configure when you identify what must survive and who should control its source location.
- Changing application data: uploads, generated media, caches that must survive, user content, and database files normally need a directory-backed mount.
- One fixed file: a configuration file, policy, script, certificate bundle, or mapping file can use a file mount.
- Storage ownership: decide whether Docker should choose the server-side location or whether an administrator needs a known host directory.
- Deployment topology: note which server runs the application. Coolify storage is local to that deployment server; adding another server does not turn a local volume into shared storage.
- Preview behavior: decide whether each preview needs isolated data or whether the application explicitly supports sharing it.
- Recovery: plan backups separately. A mount protects against ordinary container replacement, not deletion, disk failure, corruption, or loss of the server.
How to add storage to a standard Coolify application
- Open the application in its Coolify project and select the intended environment.
- Open Configuration > Persistent Storage.
- Select Add, then choose Volume Mount, Directory Mount, File Mount, or Host File Mount.
- Enter the source location, or enter the managed file content when the selected mount type asks for it. Enter the exact Destination Path inside the container where the application reads and writes.
- Save the configuration.
- Redeploy or restart the application so the next container starts with the mount.
- Use the application to create a small, recognizable record or file. Confirm that it can read the data, then redeploy once more and verify that the same data is still present.
If the application writes to more than one independent location, add a mount for each location or change the application’s storage configuration so all durable data is under one mounted directory. Mounting a parent directory can also hide files that were baked into the image at that path, so make sure the application can initialize correctly with an empty or newly created mount.
The Tool Desk
Outbyte PC Repair FREEClear out junk files and repair common Windows errorsFree Scan →Outbyte Driver Updater FREEScan for outdated or missing drivers - takes under a minuteDriver Scan →Coolify mount types compared
| Coolify choice | Use it when | Source control | Path shape | Host path required? | Important considerations |
|---|---|---|---|---|---|
| Volume Mount | Docker can manage the storage location and no fixed server path is needed | Docker creates and manages a named volume on the deployment server | Directory | No | Usually the simplest choice for application data; migration and inspection require handling the Docker volume rather than a familiar host directory |
| Directory Mount (bind mount) | The application or operations process needs a known server directory | You maintain the host directory | Directory | Yes | Create the directory and set permissions before deployment; the container user must be able to read and write it |
| File Mount | Coolify should manage one configuration or initialization file | Coolify manages the supplied file content | One file | No fixed directory path, but a file destination is required | The destination must be a file path, not a directory; it is not a substitute for an uploads or database-data directory |
| Host File Mount | An existing server file must appear at an exact path in the container | You maintain the source file on the server while Coolify stores the mount configuration | One file | Yes | Keep the source file present and readable on the deployment server; use it for a specific file rather than a changing data tree |
When a named volume is the better default
Choose a Volume Mount when the application only needs durable storage and there is no operational requirement to browse a particular host path. Docker creates a named volume on the server, which avoids tying the deployment to a hand-picked directory name. This is commonly appropriate for application data and database directories managed by the container.
When a directory or bind mount is necessary
Choose a Directory Mount when another host process, an administrator, or a migration procedure must use a specific directory such as /srv/my-app/uploads. Create that directory on the deployment server before the first deployment and assign ownership and permissions that match the user running inside the container. A bind mount does not automatically correct host permissions.
Rank #2
- WINDEX GAMING WIPES: effortlessly clean all your gaming gear and gaming electronics in one easy step with our new Windex Gaming Wipes
- AMMONIA FREE: our ammonia-free formula is safe to use on all of your favorite gaming equipment like consoles, headsets, controllers, screens, keyboards, and more
- PRE-MOISTENED WIPES: each wipe instantly removes dust, dirt, and stubborn smudges and fingerprints leaving a streak-free shine
- ANTI-STATIC: great for cleaning and wiping down your gaming gear and electronics leaving behind no visible residue
- COMPACT RESEALABLE PACKAGE: store your pack of Windex Gaming Wipes anywhere in your home for whenever a quick and easy wipedown is needed
When to mount a single file
Use File Mount for one managed configuration, script, policy, or mapping file. Use Host File Mount when the source already exists on the server and must be exposed at an exact container path. In both cases, the destination is the full file name, not the directory that contains it.
Find the application's real write directory
The most common persistence failure is a correct-looking mount pointed at the wrong destination. Inspect the container image documentation and the application's own storage settings. Look for separate locations for uploaded files, generated assets, sessions, logs, and database data. Some applications use an environment variable to set their data directory; configure that variable and mount the resulting path.
What’s actually slowing this PC down?
Pick the symptom - the matching free tool is one click away.
Confirm whether the application writes relative to its working directory. A documented path such as /app/uploads is useful only if that image actually writes there. If the application writes to /data while the mount targets /app/data, the deployment will appear healthy but the files will remain ephemeral.
- Check the image documentation for its declared data directory.
- Check the application configuration for upload, media, storage, or database path settings.
- Identify the user and group that perform the writes.
- Mount the exact resulting path, including the leading slash and case.
- Keep temporary caches outside the persistent mount unless they are intentionally part of the data set.
Docker Compose applications and one-click services
For a Docker Compose application or one-click service, the Compose file defines volume and bind-mount behavior. Add the mount under the relevant service, save the file, and reload the Compose configuration. Coolify can display parsed mounts, but it does not provide the same editable mount fields used by a standard application.
Rank #3
- Ergonomic & Adjustable Design: Fight "text neck" and improve your posture. Designed for comfort, it offers an adjustable height (7.1in-8.5in) (1.4in adjustable range) and angle (5°-85°) Please note: cell phone stand is only 9 inches tall—the length of a standard pencil
- Without blocking subtitles Perfect for office desk Tiktok Face Time Zoom video—this is the ultimate kitchen desk essential for phones! Perfect viewing experience while reducing neck back strain, A must-have for gamers streamers desk, and anyone who values both style and support!
- Sleek & Stable Design fits Otterbox Case: Say goodbye to bent cables, tangles, and tip-overs! LISEN’s stylish adjustable desk phone holder features a built-in charging hole and smart cable management, keeping your phone secure and your workspace clutter-free cool gadgets for men
- ANTI-SLIP DESIGN free hands: The under 10.00 items easy gadgets back and the bottom of this kitchen essentials for women are fully covered by anti-skid silicone, which LISEN stand up desk decor can provide maximum protection device from any scratches and slides
- Your Perfect Viewing Companion:If your product arrives damaged or breaks within 365 days, reach out to LISEN for a quick and hassle-free solution. Struggling with assembly, like tightening the screw? We’ve got your back! Your experience matters to us. (Product including: phone Holder stand*1, screw*1, hexagon screwdriver*1, specification*1)
Named-volume example
services:
app:
image: example/app:latest
volumes:
- app-data:/app/data
volumes:
app-data:
Here, app-data is a named Docker volume and /app/data is the container destination. Replace that destination with the path documented by the image.
Bind-mount example
services:
app:
image: example/app:latest
volumes:
- /srv/my-app/uploads:/app/uploads
The left side is a directory on the deployment server and the right side is the application path inside the container. Create /srv/my-app/uploads first and set its ownership and permissions for the container user. After saving the Compose file, reload the Compose configuration and redeploy.
Free tools Windows power users keep installed
One-click scans. No signup required.
Keep the mount declaration in version control with the rest of the Compose file. Editing a parsed display in Coolify without changing the Compose source will not provide a durable configuration for the next reload.
Permissions and concurrent access
A persistent mount can be present and still fail because the process cannot write to it. Check the effective user and group inside the image, then make the volume or host directory readable and writable by that identity. Test both file creation and file reading; read-only access can make an upload appear to succeed until the application attempts to save metadata or a derivative.
Rank #4
- Easy Installation: Our gaming lights have been designed to enhance your entertainment experience. Simply position the led light bar next to your TV or game console to create a game room environment with ease. They come with USB power and a 60 inch cord for direct mounting and mobility
- Audio Syncing & Extensive Mode: The built-in high-sensitivity music sensor allows you to sync the TV led lights to your favorite music. Lights react and move to the beat of music, film and game audio, creating an incredible immersive sound and light experience – and all without the need for an additional hub. You can choose from 64+ patterns, including strobe, illusion, jump, energy, gradient, running, chasing, fluttering mode etc. Each mode can be applied to different scenes
- 64+ Chasing IC+RGB & W Effect: The independent control design of IC+RGB and white all-in-one multifunctional rgbw led bar lights monitor backlight allows you to easily switch the led lights for desk between IC+RGB and white to enjoy a variety of lighting effects, you can choose white lighting mode with high brightness for better illumination when working, etc. Choose IC+RGB lighting mode when you need to create an entertaining atmosphere for the light show, 16 million colours of Color changing rgb light bar let you dance to the beat and create a dynamic party atmosphere
- Dynamic and Dimmable Lights: 1%-full brightness free brightness adjustment gives you the flexibility to adjust dimmable led light bar for room decorations or a variety of occasions
- USB Powered: USB light bars for room can be powered by powernank, usb charger, TV, Monitor, laptop PC mainframe, making behind TV led lighting bar easy to install in any location.TV led lights are powered by the TV usb interface / PC mainframe, can be turned on/off synchronously with TV / PC
Do not share one writable directory between containers unless the application explicitly supports concurrent access and file locking. Two processes may overwrite each other, observe partial files, or corrupt a format that assumes a single writer. A shared read-only directory is a different case, but it still requires compatible paths and permissions.
Quick wins for a faster PC:
Repair Windows errors before they cause bigger problemsFix Now →Fix the driver behind crashes, sound loss and screen glitchesFind Drivers →Avoid broad host mounts such as /, /etc, /var/lib/docker, or /data/coolify. They expose far more of the server than the application needs and can allow an application mistake to alter the host or other deployments. Mount the narrowest directory or file that satisfies the application.
Preview deployments and storage isolation
Coolify gives preview deployments separate volume storage by default and appends a -pr-N suffix. Leave that suffix behavior enabled when previews must be isolated from production. A preview that writes to production storage can overwrite user files, run incompatible migrations, or leave test data mixed with live data.
Bind mounts receive analogous preview path suffixing by default. Review the resulting host path before deploying a preview, especially when scripts or external jobs expect a fixed directory. If a preview genuinely needs shared read/write data, document the concurrency and locking requirements and accept that it is no longer isolated; do not disable isolation merely to make a test convenient.
Best Value
- Compatible with Wide Screens - To ensure compatibility with the dual monitor mount, your each monitor must meet three conditions at the same time: First, computer screens size range: 13 to 32 inches. Second, screen weight range: 4.4 to 19.8 lbs. Third, the back of the monitor screen must have VESA mounting holes with a pitch of 75x75mm or 100x100mm.
- Regarding the compatibility with desks - Your desk must meet three conditions at the same time: First, desk material: Only wooden desks are recommended, plastic or glass desks cannot be used. Second, desk thickness range: 0.59" - 3.54". Third, the bottom of the desk should not have any cross beams or panels, as this will interfere with installation. We recommend carefully checking that your desk and monitors meets all above conditions before purchasing.
- Dual C-Clamp Hold - Worried your dual monitors might wobble or slip? Our upgraded base uses a larger platform plus a dual C-clamp structure to lock the dual monitor arm firmly to your desk. Each arm safely keeps your screens steady while you type, click and game—no shaking, no sliding, just a clean and secure setup you can trust every day. It also provides Grommet Mounting installation choice, both options ensure stable and secure fixation for your 0.59" - 3.54" desk.
- Full-Motion Adjustment For Comfortable View - Pull the screen closer when you’re deep in a spreadsheet, push it back to watch videos, or rotate to portrait for coding — moving everything smoothly with just one hand. The monitor stand offers +85°/-50° tilt, ±90° swivel and 360° rotation. Raise your monitor up to 15.75″ to support a healthy sitting posture. Whether you’re working from home, gaming through the night, or switching between video calls and documents, getting the screens to your natural line of sight helps relieve neck, shoulder and back strain so you can stay focused longer with less fatigue.
- Keep Your Desk Organized: By lifting both screens off the desktop, this dual monitor stand opens up valuable space for your keyboard, notebook, docking station or a simple, clutter-free work area. Built-in cable management guides wires along the arms, keeping cords out of sight and out of the way. Enjoy a tidy, modern workstation that looks as good as it feels to use.
Verify persistence instead of assuming it
- Deploy with the mount attached and wait for the application to become healthy.
- Create a test upload, generated file, or application record that is easy to identify.
- Close and reopen the application or otherwise confirm that it can read the new data.
- Redeploy the application, which creates a replacement container.
- Check that the test data remains and that new writes still work.
- For a Directory Mount, inspect the intended host directory. For a Volume Mount, use the deployment server's Docker administration process to confirm that the named volume is still attached; do not edit its files while the application is running unless the application supports that operation.
If the test disappears, first compare the application's actual write path with the destination path. If the path is correct, check permissions, the selected server, and whether a startup script copies an empty directory over the mount.
Do these 3 things before closing this tab:
1Clear out junk files and repair common Windows errors2Scan for outdated or missing drivers - takes under a minute3Repair Windows errors before they cause bigger problemsPersistent storage is not a backup
A mount protects against ordinary container replacement, but it does not protect against accidental deletion, disk failure, server loss, or corruption. Coolify can schedule file-level archives for eligible volume and directory mounts and can optionally copy those archives to S3-compatible storage. Treat those archives as one layer of a recovery plan, not as proof that every application state is restorable.
Database files require an application-aware backup workflow. A file-level archive taken while a database is writing may capture an inconsistent state. Use the database engine's supported dump or snapshot method, or stop writes and containers when that is the appropriate procedure. Store backups separately from the deployment server and test restoration on a separate destination; a backup that has never been restored is only an assumption.
Server locality, migration, and replacement
Volumes and local bind mounts belong to the server that runs the deployment. Connecting another server to the same Coolify instance does not make those files available there, and Coolify documents restrictions for multi-server applications that use persistent storage.
Before moving an application, identify every mount, create equivalent storage on the destination server, copy the data with the application stopped or quiesced when consistency requires it, and verify ownership. For a named volume, the migration process must export and restore the volume data; for a bind mount, the host directory and its permissions must be recreated. Update any external jobs or paths that refer to the old server.
Troubleshooting common failures
| Symptom | Likely cause | What to check |
|---|---|---|
| Uploads vanish after redeploy | The mount targets the wrong path, or no mount was attached | Compare the destination with the application's documented upload path and repeat the write/redeploy test |
| Application starts but cannot save files | Host directory or volume permissions do not match the container user | Check the effective UID/GID, directory ownership, and write permission on the mounted path |
| Configuration file is treated as a directory | A file mount was given a directory destination | Set the destination to the complete file path, including its filename |
| Compose mount disappears after reload | The change was made only in a parsed UI view | Add the volume declaration to the Compose file, save it, and reload the configuration |
| Preview changes production data | Preview storage was shared or its suffix was removed | Restore the default preview suffix and use separate storage unless sharing is deliberately supported |
| Data is present on one server but missing after moving | Local storage was not copied to the new deployment server | Export or copy the volume or bind directory, restore permissions, and verify before switching traffic |
| Database restores with errors | A raw file archive was captured during writes | Use the database's supported backup format or stop writes during a consistent file-level capture |
A practical decision checklist
- Use a Volume Mount when Docker can manage the server-side location.
- Use a Directory Mount when a known host directory is required and you can manage its permissions.
- Use a File Mount for one file whose content Coolify should manage.
- Use a Host File Mount for one existing server file at an exact container path.
- For Compose, edit the
volumessection in the Compose file rather than relying on parsed UI fields. - Mount the exact application write path, not a guessed parent or sibling directory.
- Keep preview storage isolated unless the application explicitly supports safe sharing.
- Test a write, redeploy, and test the read before declaring the setup complete.
- Back up persistent data with a method appropriate to its file format, and practice restoration.
The durable setup is therefore specific rather than broad: choose the mount type that matches the data, attach it to the documented container path, give the container user the required access, and verify the result across a replacement deployment.
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.




