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

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

Open the application in its Coolify project and environment, go to Configuration > Persistent Storage, choose a mount type, and map storage to the exact path where the container reads and writes data. Save the mount, redeploy, create a test file or record, redeploy again, and confirm it remains. For Docker Compose applications, define the volume or bind mount in the Compose file instead of relying on the standard application form.

Persistent storage protects data from normal container replacement, but it is not a backup and it is local to the deployment server. The correct mount type, destination path, permissions, preview behavior, and backup plan determine whether uploads and application data actually survive.

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

What persistent storage changes in Coolify

Coolify deploys applications in containers that can be replaced during a redeploy, restart, update, or removal. Files written only to a container’s own writable filesystem are therefore disposable. As the Coolify documentation puts it, “Data written only to a container filesystem can disappear when Coolify redeploys or removes that container.”

A persistent mount connects storage on the deployment server to a path inside the container. Data persists only when the application writes beneath that mounted destination. Mounting a directory at /app/data does not preserve files written to /app/uploads unless the latter is also inside the mounted location or is itself mounted.

#1 Best Overall
Sale
Compressed Air Duster,130000RPM Super Power Cordless Air Duster,Rechargeable Brushless Blower,3 Gear Adjustable Blower with LED Light,Dust Remover for Computer/House/Outdoor/Car
  • Powerful Turbo Fan:CAGIWIRU Electric Air Duster have reached speed up to 130000RPM,Can efficient remove dust and debris.With LED light and Three Adjustable Speed to meet with different cleaning tasks.
  • With Attached USB C Fasting Charging cable.Charing 3 hours,Enjoy up to 240 minutes of use on the lowest setting, For third speed can use for 25mins.with four charging options to meet with your needs.
  • Wide Application: attached 5 different nozzles,making it suitable for a variety of scenes, such as car,pet, pc, keyboards, and other electronic devices. It also serves for office and home clean duster.
  • Handy Design & Portable:Cordless air duster electric nozzle is Light weight and small size, design and comfortable to hold and space saving, convenient to carry around. You can put it in your room or inside the car without taking up space.
  • Economical &Reusable: Built durable materials with a long-lasting battery,our CAGIWIRU air duster it's a sustainable alternative to disposable air cans.

The destination is application-specific. Some images use paths under /app; others use locations such as /var/lib, /usr/src, or a service-specific data directory. Use the image or application documentation, its configuration, or the application’s startup output to identify the real write location. Do not choose /app/uploads merely because it is a common example.

Before adding a mount

  • Identify every category of data that must outlive a container: user uploads, generated files, caches that are expensive to rebuild, database files, or configuration files.
  • Find the exact container path used for each category. A mount at the wrong path can be completely healthy while the application continues writing ephemeral data elsewhere.
  • Decide whether Docker should choose the server-side location or whether you need a known directory on the server.
  • For a bind or directory mount, create the host directory before deployment and give the container user the required read and write access.
  • Decide whether preview deployments should be isolated from production and whether the data needs an application-aware backup process.

Add persistent storage to a standard Coolify application

  1. Open the application. In Coolify, open the relevant project, environment, and application.
  2. Open the storage settings. Select Configuration > Persistent Storage.
  3. Add a mount. Select Add, then choose Volume Mount, Directory Mount, File Mount, or Host File Mount.
  4. Enter the source and destination. Supply the managed volume or server location, or the managed file content where applicable. Enter the exact Destination Path inside the container where the application reads and writes.
  5. Save and deploy. Save the configuration, then redeploy or restart the application so the new container is created with the mount.
  6. Test persistence. Create a test file, upload, or application record. Redeploy once more and verify that the same data is still present and usable.

A successful deployment alone does not prove persistence. The final redeploy test distinguishes a real mount from data that happened to remain in the current container.

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

Choose the right Coolify mount type

Coolify choice Source location control What it mounts Best use Important requirements
Volume Mount Docker manages the storage location on the deployment server. A named Docker volume, normally presented as a directory inside the container. Uploads, generated files, and database data when you do not need a particular host path. Plan how the volume will be backed up or moved because its location is managed by Docker.
Directory Mount You specify a fixed directory on the deployment server. A host directory mapped to a container directory; this is a Docker bind mount. Data that must live at a known server path, such as /srv/my-app/uploads. Create the directory first and set permissions for the container user.
File Mount Coolify manages the file content. One file at a container path. A configuration, initialization script, policy, or mapping file that Coolify should provide. The destination must be a file path, not a directory.
Host File Mount You maintain an existing file on the deployment server. One server file mapped to an exact container file path. A certificate, configuration, or other file already maintained on the host. The host file must exist and remain readable by the container process.

Use a volume mount for Docker-managed application data

A volume mount is the default choice when the application needs a persistent directory but you do not care where Docker stores it on the server. Docker creates and manages a named volume, while the application sees only the destination path in the container. This avoids coupling the deployment to a hand-picked host directory.

Volumes are suitable for changing data such as uploads, generated reports, and database files. They are not automatically portable to another server; the volume remains on the deployment server unless you explicitly back it up and restore or migrate it.

Use a directory mount when the host path matters

A directory mount is appropriate when another process, backup job, administrator, or migration procedure needs a predictable server location. For example, a host directory such as /srv/my-app/uploads can be mapped to the application’s documented upload directory.

Rank #2
EVEO® Screen Cleaner Spray Kit (Streak-Free) TV Screen Cleaner for Smart TV, Lcd, LEd, Oled | Computer Screen Cleaner Spray and Wipe Microfiber Cloth - TV, Monitor, Laptop, iPad, Car - 6.7oz 1 Pack
  • Screen Cleaner is Your Screen’s New Bestfriend! - EVEO is proud to present a screen cleaner that’s perfectly suited for your TV. Meet your new screen cleaner, computer screen cleaner, laptop cleaner, iPad cleaner, Macbook,tv cleaner or any other electronic device. Our screen cleaner spray and wipe along with the included plush microfiber cloth, easily removes dust, fingerprints & other smudges on the screen’s surface. Clean effectively for a streak-free screen
  • Gentle on your Screens - Our screen cleaner spray and wipes is compatible to be used even for the most sensitive LCD, LED, CRT, and OLED screens in proper use. Be at ease knowing that this product is compatible with all the major brands: LG, SONY, Samsung, Sharp, iPad, iPhone, Android screens, Kindle, PC monitors - we’ve got you covered! Can be used as LCD screen cleaner, tv cleaner, smart tv screen cleaner, and more
  • Premium Super Soft Plush Microfiber Cloth - Included in this efficient screen cleaning kit. This screen cleaner spray and wipe has our signature plush microfiber cloth specially designed to comply with screens and monitors and leave them streak-free. Has been shown to effectively absorbs stubborn stains, zero streaks, and no fiber shedding. Always use this together with our screen cleaner for the best results
  • Easy-to-Use Screen Cleaner Kit + microfiber cleaning cloth - The EVEO Screen Cleaning Kit will easily be your new favorite tool when it comes to taking care of the things you love most, quick and easy solution for a streak-free screen. Simply screw on the sprayer gun on the screen cleaner bottle. Spray the cleaning liquid onto the microfiber cloth, then wipe the screen until desired cleanliness & shine is achieved.
  • Quality Screen Care Kit Worth Purchasing - Enjoy a convenient Screen Cleaner anytime, anywhere you need it. Your satisfaction is our top priority. We stand behind the quality of our products and that’s why, you shouldn’t be worrying at all. We manufacture the Best Screen Cleaner. and can be used for laptop cleaning kit, laptop screen cleaner, tv screen cleaner for smart tv. MacBook screen cleaner, monitor cleaner or screen cleaner spray for electronic devices with microfiber cleaning cloth

Create the host directory before deploying and set ownership and mode so the user inside the container can read and write it. A directory that is writable by the administrator but not by the container user produces a permission error even when the mount definition is correct. Conversely, granting unnecessarily broad permissions can expose data to unrelated processes.

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

Use a file mount for one managed file

Choose a file mount when the application needs one file rather than a writable data directory. Examples include a configuration file, startup script, policy file, or static mapping. The destination must name the file that the application opens. Mapping a file mount to a directory path, or mapping a directory mount where the application expects a file, causes startup or read errors.

Use a host file mount for an existing server file

A host file mount exposes a file that already exists on the deployment server. Coolify stores the mount configuration, but you remain responsible for creating, updating, securing, and backing up the source file. Use this option when the server-side file is managed outside Coolify and must appear at an exact path inside the container.

Get the destination path and permissions right

The destination path is the most important field in a persistent-storage configuration. It must be the directory or file path used by the running application, not simply a convenient path that exists in the image. Check the image documentation, application settings, and startup configuration for the write location.

Only content written under the destination path is persistent. If an application stores uploads in /var/lib/example/uploads but the mount is attached to /app/uploads, the upload files remain on the replaceable container filesystem. If the application uses multiple independent directories, add a mount for each one or mount a common parent directory only when that does not hide files the image needs at startup.

What’s actually slowing this PC down?

Pick the symptom - the matching free tool is one click away.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
Rank #3
Sale
BladeHawks RGB Gaming Mouse Pad Extra Large Extended 31.5x12 Inch-Black | LED mouse pad with 14 lighting modes, covers keyboard & mouse, anti-slip rubber base, waterproof surface, USB powered
  • 【Large size】:Measuring 800 x 300 mm/ 31. 5×12 inches, which is wider and taller than others. Large mouse pad can perfectly fit your keyboard and mouse of any size, and there is also ample space for peripherals such as phones, tablets, etc.
  • 【LED backlight mouse pad】:Blade Hawks RGB mouse pad provides 7 static modes and 7 dynamic modes will give you the options you are looking for. Power-off memory function remembers the last lighting mode you selected. The super glow fiber Chroma will give you a colorful gaming setup that you want.
  • 【Anti-slip rubber base】:Made from Natural rubber, this gaming mousepad will firmly grip your desktop, allowing you to enjoy the ultimate precision in the games you are most passionate about. It also comes with a texture that enhances this ability even further.
  • 【Smooth and waterproof surface】: Micro-textured cloth surface, for extremely precise mouse control and a smooth movement. When liquid splashes on the gaming mouse pad, it forms water droplets and slides down. Will not delay your work or gameplay.
  • 【Plug and play】: This mouse and keyboard pad is powered by USB, plug and play, no driver required. One button control light modes. Press one time to change the lighting mode, press twice to change the brightness, press and hold about 3 seconds turn ON/OFF.

Permissions apply at both layers: the container process must have access to the destination, and the underlying volume or host directory must permit that access. For a directory mount, create the directory, inspect the user and group used by the image, and assign ownership or permissions accordingly. Test an actual write and read as the application, not just as a root shell.

Avoid broad host mappings. Do not mount sensitive or system-wide locations such as /, /etc, /var/lib/docker, or /data/coolify into an application container. A narrow, purpose-built directory limits accidental overwrites and reduces the impact of a compromised application.

Configure persistent storage for Docker Compose applications

For a Docker Compose application or one-click service, the Compose file is the source of truth for volume and bind-mount definitions. Coolify parses that file and displays the resulting mounts, but it does not provide the same editable mount fields used by standard applications.

  1. Open the Compose resource in its Coolify project and environment.
  2. Edit the Compose file and add the mount under the specific service that needs the data.
  3. Use a named volume when Docker should manage the source location:
services:
  app:
    image: example/app:latest
    volumes:
      - app-data:/app/data
volumes:
  app-data:

Replace /app/data with the path documented by the image. The top-level volumes declaration gives the named volume a stable Compose identity.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
  1. Use a bind mount when a fixed server directory is required:
services:
  app:
    image: example/app:latest
    volumes:
      - /srv/my-app/uploads:/app/uploads

Create /srv/my-app/uploads on the deployment server and set permissions before deploying. The right-hand side must be the application’s real write path.

Rank #4
Sale
Vaydeer Wrist Rest for Keyboard and Mouse, Computer Ergonomic Wrist Support Pad, Soft Memory Foam Arm Cushion for Desk, Palm Hand Office Laptop Typing
  • 【Softer and More Comfortable】Vaydeer wrist rest has unique diamond pattern, which is the combination of softness and aesthetics. The materials of wrist rest are improved into higher quality memory foam and covered with silky smooth lycra. The computer wrist rest makes you as comfortable and cushiony as like rest your wrists on clouds.
  • 【Ergonomic Wrist Saver】The wrist rests for keyboard and mouse comes with a 17.32×3.15×0.83 inch keyboard wrist pad and a 5.94×3.15×0.83 inch mouse wrist support. Based on ergonomic design, the unique concave shape is the perfect fit for your wrist joints. The wrist rest pad fits most computer keyboards and laptops, improve hand and wrist posture, release your wrist and arm stress.
  • 【Non-Slip Rubber Bottom】Featuring an anti-skid silicone base on the bottom, this wrist keyboard support stays firmly in place on your desk, preventing the padding from sliding around, ensuring stable and consistent wrist support during extended computer sessions.
  • 【Better Experience & Pain Relief】Our keyboard arm rest is beneficial to alleviate the soreness caused by direct contact and friction between your arm and a hard desk surface, reducing the risk of wrist fatigue or carpal tunnel. The soft texture of memory foam can evenly distribute the pressure around your wrists and provide good support with just enough give.
  • 【Helpful in Multiple Scenarios】Whether you're working, studying, writing, typing, gaming, this keyboard and mouse rest combo is an essential accessory to add comfort and support to your hands and wrists. It’s also a great gift for men, women, family, friend, coworker, gamer, teacher, etc.
  1. Save the Compose file and reload the Compose configuration in Coolify so the parsed service definition includes the new mount.
  2. Redeploy, create or upload test data, redeploy again, and verify that the service reads the same data.

Editing a visually displayed mount without changing the Compose definition will not make the configuration durable. When troubleshooting a Compose resource, inspect the file first.

Preview deployments and storage isolation

Coolify gives preview deployments separate volume storage by default and adds a -pr-N suffix. Keep that suffix enabled when a preview must be isolated from production. A preview that shares production storage can overwrite user files, apply incompatible schema or format changes, or fill the production volume with test data.

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

Bind mounts receive analogous preview path suffixing by default. Treat the generated preview directory as a separate data area unless the application explicitly requires shared read-only content. If you deliberately share storage, document which process owns each directory and how concurrent writes are coordinated.

Server locality, multiple servers, and concurrent access

Persistent storage is local to the deployment server. Connecting another server to the same Coolify installation does not make a Docker volume or local bind mount shared. If an application moves to a different server, its local volume and host directory do not move with it automatically.

Coolify documents restrictions for multi-server applications that use persistent storage. Check the deployment topology before placing a stateful service on a resource that may be scheduled or redeployed elsewhere.

Best Value
Sale
Under Desk Cable Management Tray No Drill, Metal Mesh Cable Management Under Desk with Clamp Mount, 2 Hole Cable Tray with Wire Management and Cord Organizer for Home Office Standing Desk
  • 【No Drill Mounted】Cable management tray can be assembled in as little as 3 minutes or less-simply. Side clips easily clampe the edge of desk, pass through the holes on the sides, and secure excess cables with baskets. Desk cable management supports inward or outward installation to meet your needs in different scenarios, and provides you with great convenience when collecting and organizing wires.
  • 【Rubber Pad Protects Desk】Wire organizer under desk built-in soft rubber pads on the clamp protect your desk from scratches, so you will not damage your furniture or office.
  • 【Sturdy and Beautiful】Cord management under desk is made of high-quality carbon steel and holds about 15 lbs. The wire basket has 2 holes on each side of the tray to enable your cables to pass freely. Cable baskets are suitable for desk thickness use from 0.4" to 2.4".
  • 【Space Saving & Keep Organized】Desk cable management tray holds all your power cords, outlet strips, USB hubs and computer transformers hidden from your feet, and the data cables will not enter the vacuum cleaner to keep your desk clean and tidy. Desk wire organizer is also suitable for use in the kitchen and outdoors.
  • 【Reduce Safety Risks】Cable tray under desk keeps all plugs away from your kids, no more worry about tripping. Using 2 holes wire tray saves extra space, helps you easily cabling and wire protection. The mesh design is not easy to accumulate dust, but avoids safety accidents caused by messy wires.

Do not point two containers at the same writable directory unless the application supports concurrent access and file locking. Many file-based databases and upload processors assume one writer or rely on locking semantics that are not safe when independent containers write simultaneously. Use separate directories for independent environments and services unless shared access is an intentional, supported design.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Support on Ko-Fi

Verify a mount and diagnose common failures

Run a persistence test

  1. Confirm that the destination path exactly matches the application’s documented write directory.
  2. Write a uniquely named test file, upload a small test object, or create a record through the application itself.
  3. Read the object back before restarting or redeploying so you know the application can use the path.
  4. Redeploy the application.
  5. Check the same path or record after the new container starts.
  6. Repeat the test after a second deployment if the first redeploy also changed application configuration.

Files disappear after a redeploy

  • Verify that the mount is attached to the correct service and destination.
  • Check whether the application actually writes to a different directory.
  • For Compose, inspect the Compose file rather than relying on the parsed display.
  • Confirm that the deployment used the intended project and environment; a mount in one environment does not automatically apply to another.

The application reports permission denied

  • Confirm the container user and group used by the image.
  • For a directory mount, check ownership and mode on the host directory.
  • Test both reading existing files and creating a new file; a directory can be readable but not writable.
  • Do not solve an application-specific permission problem by mounting a broad system directory or granting unrestricted access.

The container fails to start after adding a file mount

  • Check that the destination is the file path expected by the application.
  • Ensure the source content or host file exists and is readable.
  • Confirm that a directory was not accidentally mapped over a file, or a file over a directory.

A preview changes production data

  • Keep the default preview suffix and separate storage enabled.
  • Inspect both the volume name and bind-mount path for a missing or manually removed -pr-N isolation suffix.
  • Use a separate database and upload directory for previews when the application writes mutable data.

The mount works on one server but not another

Check the deployment server first. A local volume or bind source is not replicated merely because both servers are connected to Coolify. Migrate or restore the data on the target server before switching traffic, and verify permissions there.

Two containers corrupt or overwrite files

Stop sharing a writable directory unless the application explicitly supports concurrent writers and file locking. Separate the storage by service or environment, or use the application’s supported shared-storage mechanism instead of a common local directory.

Backups and recovery

“Persistent 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 data corruption.

Coolify can schedule file-level archives for eligible volume and directory mounts and can optionally copy those archives to S3-compatible storage. Configure retention and an off-server destination appropriate to the importance of the data, then test that an archive can actually be restored.

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

Database files need 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 backup method, or stop writes and containers when an offline copy is required. Treat the resulting backup as a separate artifact from the persistent mount and test restoration independently.

Moving an application or changing its storage

Because local volumes and bind mounts belong to a deployment server, a server migration requires an explicit data move. Plan the migration around the application’s consistency requirements: stop or quiesce writes when necessary, copy or restore the data to the target storage, recreate the mount at the same container destination, and verify ownership before starting the application.

After the cutover, perform the same write, read, and redeploy test used for a new mount. Keep the original storage until the restored application has been checked and the rollback window has passed.

A practical storage decision guide

Need Preferred choice Reason
Persistent uploads without a required host path Volume Mount Docker manages the server-side location while the application receives a stable container path.
Uploads or generated files at a known server directory Directory Mount A fixed path simplifies host-level administration and migration planning.
One configuration or startup file managed in Coolify File Mount The mount represents a single managed file rather than a writable directory.
One existing server file maintained outside Coolify Host File Mount The host remains the source of the file while Coolify defines its container destination.
Compose or one-click service Compose volumes definition The Compose file controls the resource’s volumes and bind mounts.
Preview environments Separate volume or suffixed bind path Isolation prevents test deployments from changing production data.

Operational checklist

  • Use the application’s documented write path as the destination.
  • Choose a named volume unless a fixed server directory is genuinely required.
  • Create bind-mount directories and set container-compatible permissions before deployment.
  • Define Compose storage in the Compose file and reload it after editing.
  • Keep preview storage isolated with the default suffixing behavior.
  • Remember that storage is local to the deployment server.
  • Never treat a persistent mount as a backup.
  • Test writes, reads, redeploys, and restoration instead of assuming the configuration works.

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.

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