Storage in the homelab is designed around a single guiding principle: persistent data must survive container restarts, VM rebuilds, and host reboots without manual intervention. A 1TB HDD provides the physical backing for both Proxmox-level backups and Docker volume persistence. That disk is exposed to the rest of the infrastructure through an NFS share, making the same storage path available to both the Proxmox host and the Docker VM — ensuring that all stateful services write to one consistent, centrally managed location regardless of which guest is running them.Documentation Index
Fetch the complete documentation index at: https://mintlify.com/IsaiasCarrion/Homelab/llms.txt
Use this file to discover all available pages before exploring further.
Storage Resources
| Resource | Use |
|---|---|
| HDD 1TB | Backups + Docker Volumes |
| NFS Share | Shared between Proxmox and Docker VM |
Mount Point
The HDD is mounted at the following path on both the Proxmox host and the Docker VM:Persistent Directory Structure
Thedocker/ subdirectory under the mount point is organised by function, giving each class of data its own dedicated folder.
| Directory | Purpose |
|---|---|
portainer/ | Portainer agent data and configuration |
stacks/ | Docker Compose stack definitions |
volumes/ | Named volume data for running containers |
backups/ | Automated service backup archives |
git/ | Self-hosted Git repository data |
dashboards/ | Dashboard configuration files (Dashy, Grafana) |
NFS Share
The 1TB HDD is exported as an NFS share so that both the Proxmox host and the Docker VM (docker.home.arpa, 192.168.1.30) can mount and read from the same storage path. This centralised approach means:
- Docker containers bind-mount volume paths from
/mnt/hdd-backup/docker/volumes/without needing local disk space on the VM’s system drive. - Proxmox can write guest backups and snapshots directly to the same physical disk without requiring a separate backup server.
- Data written by one host is immediately visible to the other, enabling straightforward migration and recovery workflows.
Backup Strategy
Each service running in the homelab has independent backup support through thebackup.sh script located in the scripts/ directory of the repository. The script is designed to be run on a schedule and archives service-specific data into /mnt/hdd-backup/docker/backups/, keeping each service’s backup isolated from the others.
This means a failed or corrupted backup for one service does not affect the archives of any other service, and restoring a single container does not require touching the rest of the stack.
For full details on backup configuration, schedules, and restore procedures, see the Backups page.