Below is a step-by-step guide to building a cheap, always-on, SSD-backed file share on your home Wi-Fi. The most cost-effective and flexible approach is to use a small single-board computer (like a Raspberry Pi) with a USB-attached SSD and Samba (for Windows/Mac/Linux clients). If you already have a router with a USB port that supports file‐sharing, you can skip the Pi and plug the SSD into the router instead—see “Option 2” at the end. Otherwise, follow “Option 1” below.
Rough cost: – Pi 4 board: $35–$50 – 500 GB SSD: $50–$60 – Enclosure: $10 – microSD card + power supply: $10–$20 Total around $100–$140.
Plug in the Pi (power + HDMI + keyboard) or boot headless but first create an empty file named ssh in the /boot partition of the microSD.
On macOS/Linux, after flashing:
sd_card_mount="/Volumes/boot" # adjust if different
touch "$sd_card_mount/ssh"That “enables” SSH on first boot.
Power on the Pi. If you have a monitor, you’ll see it booting. Otherwise, wait about 90 seconds.
Find the Pi’s IP address:
nmap -sP 192.168.1.0/24).192.168.1.100.From your laptop/desktop, open a terminal:
ssh pi@192.168.1.100Default password is raspberry. You’ll be prompted to change that on first login.
sudo apt update
sudo apt full-upgrade -yDHCP Reservation (recommended):
Go to your router’s DHCP settings, find the Pi’s MAC address, and reserve 192.168.1.100 (or any other). That way it always comes up at the same IP.
Static IP on the Pi (if your router doesn’t support reservations):
sudo nano /etc/dhcpcd.confAdd at bottom (adjust to your network):
interface eth0
static ip_address=192.168.1.100/24
static routers=192.168.1.1
static domain_name_servers=192.168.1.1 8.8.8.8Save (Ctrl+O, Enter, Ctrl+X) and reboot: sudo reboot.
Plug the SSD (in its USB 3.0 enclosure) into a USB 3.0 port on the Pi (the blue-tipped ones).
SSH back in, then check that the Pi sees the drive:
lsblkYou should see something like:
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 500G 0 disk
└─sda1 8:1 0 500G 0 part
mmcblk0 179:0 0 29.8G 0 disk
├─mmcblk0p1 179:1 0 256M 0 part /boot
└─mmcblk0p2 179:2 0 29.6G 0 part /Here, sda is your external SSD. If it has existing partitions, you may see sda1 etc. You can re-partition or format.
Format as ext4 (recommended for Linux; if you need Windows clients, you can use NTFS, but ext4 is more reliable on Pi):
sudo apt install -y parted
sudo parted /dev/sda --script mklabel gpt
sudo parted /dev/sda --script mkpart primary ext4 0% 100%
sudo mkfs.ext4 /dev/sda1 -L PiShareThis wipes the SSD, creates a single 500 GB ext4 partition (/dev/sda1), and labels it PiShare.
Create a mount point and mount it:
sudo mkdir /mnt/ssd
sudo mount /dev/sda1 /mnt/ssdMake it auto-mount at boot: edit /etc/fstab:
sudo cp /etc/fstab /etc/fstab.backup
sudo nano /etc/fstabAdd this line at the bottom:
LABEL=PiShare /mnt/ssd ext4 defaults,noatime 0 2Save and exit. Now test:
sudo umount /mnt/ssd
sudo mount -a
ls /mnt/ssd # should be empty folder and no errorsTo share over Wi-Fi (or wired LAN) with Windows/Mac/Linux, Samba is the easiest.
Install Samba:
sudo apt install -y samba samba-common-binCreate a Linux user for Samba (you can share as the existing pi user or make a new one, e.g. shareuser):
sudo adduser shareuserFollow prompts to set a password (e.g. MySambaPass123).
Set a Samba password for that user:
sudo smbpasswd -a shareuserEnter the same password (or a separate one) when prompted.
Configure /etc/samba/smb.conf to publish /mnt/ssd as a share:
sudo nano /etc/samba/smb.confScroll to the bottom and add:
[PiShare]
comment = Always-on SSD share
path = /mnt/ssd
browseable = yes
writeable = yes
valid users = shareuser
create mask = 0775
directory mask = 0775
force user = shareuserExplanation of each line:
[PiShare] → The share name clients will see.path = /mnt/ssd → directory on Pi that you want to share.browseable = yes → makes the share visible in file browsers.writeable = yes → allows writes (so you can put files on it).valid users = shareuser → only shareuser can access.force user = shareuser → any file created via Samba is owned by shareuser.Restart Samba:
sudo systemctl restart smbd nmbd
sudo systemctl enable smbd nmbdOpen Firewall (if running ufw):
If you have ufw enabled, allow Samba:
sudo ufw allow SambaFrom a Windows PC on the same LAN:
Open File Explorer → In the address bar type:
\\192.168.1.100\PiShareYou’ll be prompted for a username/password. Enter shareuser and the Samba password you set.
You should see an empty folder (the contents of /mnt/ssd). You can drag-and-drop files in and they’ll land on the SSD.
From a Mac:
In Finder → Go → “Connect to Server…” (⌘+K) → enter:
smb://192.168.1.100/PiShareAuthenticate as shareuser. The share will mount on your Desktop or in Finder’s sidebar.
From Linux:
In your file manager (e.g. Nautilus), type:
smb://192.168.1.100/PiShareOr mount via CLI:
sudo apt install cifs-utils
sudo mkdir /mnt/remote
sudo mount -t cifs -o username=shareuser,password=MySambaPass123 //192.168.1.100/PiShare /mnt/remote
ls /mnt/remoteIf you can read/write files, everything is working. Your Pi + SSD is now an always-on, low-power, SSD-backed file server over Wi-Fi/LAN.
If you ever need to shut down the Pi cleanly (so you don’t corrupt ext4), you can add a simple systemd service that listens for a button press or runs at a schedule. For most users, a normal sudo shutdown now is fine. If you’re in a location with power flickers, consider adding a UPS HAT or a safe-shutdown script—but that’s beyond this basic setup.
Many home routers (e.g. ASUS, Netgear, TP-Link higher-end models) include a USB port that lets you plug in an external HDD/SSD and share it as a network drive (Samba or FTP). If you already own such a router, you can:
http://192.168.1.1).\\router_ip\share_name (Windows) or smb://router_ip/share_name (macOS/Linux).Pros:
Cons:
Use Wired Ethernet if Possible Even though “Wi-Fi” is in the question, a wired connection between Pi and router will give you more stable, higher throughput. You can still let clients connect over Wi-Fi—it’s just the Pi itself that stays wired.
Enable Automatic Reboot on Power-fail (Optional)
In /boot/config.txt, you can add:
dtoverlay=tpm-restartor use an external RTC/HAT/UPS solution if you live in a place with brownouts.
Back Up Important Data Even though SSDs are reliable, it’s wise to have an external backup—either to another USB drive, to a secondary HDD in the Pi, or to a cloud service.
Keep the Pi OS & Samba Up-to-Date
Run sudo apt update && sudo apt upgrade every month or so to get security fixes.
Monitor Disk Health
You can install smartmontools and schedule a weekly SMART test:
sudo apt install smartmontools
sudo smartctl -i /dev/sda # Check SSD info
sudo smartctl -t short /dev/sda # Run a quick health test
sudo smartctl -a /dev/sda # View resultsThen add a cron job to log SMART health over time.
Power Consumption A Pi 4 + SSD uses around 3–5 W when idle. If you want lower power, a Raspberry Pi Zero 2 W with a USB OTG adapter + tiny SSD might draw only ~1.5 W—but performance will be slower.
Option 1 (recommended):
/mnt/ssd → Samba share as PiShare → Access from any device on Wi-Fi.Option 2 (if your router supports USB shares):
\\router_ip\share.Either way, you’ll end up with a low-cost, always-on, SSD-based file server on your home network. Choose the Pi route if you want the best performance, flexibility, and ability to run other services on the same box (e.g. Plex, Nextcloud, backups). Otherwise, simply plug into your router.