Creating Network Storage on External Drive and YouTube Download System
Creating Network Storage on External Drive and YouTube Download System¶
Overview¶
This guide documents setting up a centralized Samba network storage server on Proxmox using an external SSD, configuring it for universal access across Linux, Windows, and iOS devices, fixing Navidrome music streaming, and setting up yt-dlp for downloading YouTube videos directly to network storage with mobile streaming capability.
Infrastructure Assessment¶
Proxmox Hosts:
- .125 (nuc5): 60 GB RAM, 29 GB available
- .121 (nuc3): 16 GB RAM, 2.6 GB available
Storage on .125:
- 1 TB NVMe (nvme1tb): Backups
- 2 TB internal NVMe (nvme2tb): Applications and VMs
- 2 TB external SSD (Ext_T7_SSD): 1.7 TB available - chosen for network storage
Commands run on both Proxmox hosts:
Cleaning the External SSD¶
Check current contents on .125:
Move music to permanent location:
Delete old files:
Verify clean:
Creating Samba Storage VM¶
Clone Ubuntu template on .125:
Start VM and get IP address (192.168.1.167)
Update hostname on VM:
Passing External Drive to VM¶
On Proxmox host .125, identify the drive:
Update NFS exports (remove old Ext_T7_SSD shares):
Changed to export music from new location:
Reload exports:
Unmount drive from Proxmox host:
Attach drive to VM:
Verify attachment:
Mounting Drive Inside VM¶
SSH into samba-storage-vm:
Check for new disk:
Create mount point:
Mount the drive:
Verify mount:
Get UUID for permanent mount:
Add to fstab:
Added:
Test fstab:
Installing and Configuring Samba¶
Update and install Samba:
Backup original config:
Configure Samba share:
Added at bottom:
[storage]
path = /mnt/storage
browseable = yes
read only = no
create mask = 0775
directory mask = 0775
valid users = mark
Set Samba password:
Restart Samba:
Verify running:
Testing Access from Linux Laptop¶
On Linux Mint laptop, access via file manager:
Login with username: mark and Samba password
Test file creation and verify read/write access
Setting Up iOS Access¶
Install Infuse from App Store
Add SMB share in Infuse:
- Name: Network Storage
- Protocol: SMB
- Address: 192.168.1.167/storage
- Username: mark
- Password: [Samba password]
Enable background audio in Infuse settings → Playback → Background Audio: ON
Fixing Navidrome Music Access¶
Update NFS mount on Navidrome VM (.152):
Edit fstab:
Changed:
Stop Navidrome:
On Proxmox host .125, verify NFS server running:
Start if needed:
Verify NFS daemons:
Verify export active:
Back on Navidrome VM, verify can see export:
Manually mount:
Verify mount:
Test access:
Start Navidrome:
Setting Up yt-dlp Network Downloads¶
On Linux Mint laptop, create mount point:
Create credentials file:
Contents:
Secure credentials:
Add to fstab:
Added:
//192.168.1.167/storage /mnt/network-storage cifs credentials=/home/mark/.smbcreds,uid=1000,gid=1000 0 0
Reload systemd:
Mount the share:
Verify mount:
Test access:
Update yt-dlp alias:
Changed from:
alias yt-dlp-save="yt-dlp --write-sub --write-auto-sub --sub-lang 'en.*' --convert-subs srt --restrict-filenames -o '/media/mark/Ext_T7_lpthp/YouTube-downloads/%(uploader)s/%(title)s/%(title)s.%(ext)s'"
To:
alias yt-dlp-save="yt-dlp --write-sub --write-auto-sub --sub-lang 'en.*' --convert-subs srt --restrict-filenames -o '/mnt/network-storage/YouTube-downloads/%(uploader)s/%(title)s/%(title)s.%(ext)s'"
Reload fish config:
Test download:
Verify file on network storage:
Final Configuration Summary¶
Network Storage Server (VM 1106 on .125):
- IP: 192.168.1.167
- Storage: 1.7 TB external SSD at /mnt/storage
- Samba share name: storage
- Access: \192.168.1.167\storage (Windows) or smb://192.168.1.167/storage (Linux/Mac)
Access Methods:
- Linux: Mounted at /mnt/network-storage
- Windows: \192.168.1.167\storage
- iOS: Infuse app with SMB connection
yt-dlp Integration:
- Downloads go directly to /mnt/network-storage/YouTube-downloads/
- Organized by uploader/title structure
- Accessible from all devices
Navidrome Music Streaming:
- Music location: /mnt/nvme2tb/music on Proxmox host .125
- Shared via NFS to Navidrome VM
- Mounted at /mnt/navidrome/music
Mobile Streaming:
- Use Infuse app on iOS
- Background audio enabled for screen-off listening
- Access via SMB to network storage
Key Lessons Learned¶
- Always verify NFS server is running before troubleshooting client-side mount issues
- Check basic infrastructure (is service running?) before complex troubleshooting
- Unmounting actively-exported filesystems can stop NFS server
- Systemd automounts require daemon-reload after fstab changes
- Simple solutions (like rebooting) often work better than complex systemd commands
Next Steps¶
- Set up Tailscale for remote access to network storage
- Configure automatic backups of network storage
- Consider additional Samba shares for specific purposes