raspberry pi storage server
November 17, 2025

why go local for file storage?
After being flooded with messages about my iCloud storage reaching capacity, I finally decided to offload some files onto my to my Raspberry Pi. Instead of just using Secure Copy (SCP) like I had done for media from past vacations and trips, I wanted the ability to manage the media stored on my Pi from all of my devices.
Building this from scratch would've been fun, but using an existing solution saved time and finally silenced those obnoxious storage messages. I ended up using File Browser to manage data on an SSD conencted to my Pi. Let's get started setting this up!
ssd setup
Mount your SSD to your pi using sudo mount <source> <directory>. The source is the path to your SSD, and the directory is where you want it mounted in your filesystem. If you run into read/write issues, change your filesystem permissions using sudo mount -o remount,rw /.
installing filebrowser
With your storage setup, open your terminal and install File Browser: curl -fsSL https://raw.githubusercontent.com/filebrowser/get/master/get.sh | bash
To confirm it installed correctly, run filebrowser from the command line. This should initiate the app from your current directory. Save the admin credentials printed to the terminal. Once you've verfied it's working, stop the app.
configuring filebrowser
At first, I ran File Browser directly in the terminal since I rarely shut down my Pi. This worked for a few days until my power went out and visitors started using the Pi's USB-C cable to charge their devices. Restarting the app each time became tedious, so I set it to launch automatically whenver the Pi starts.
Start by creating a systemd service file: sudo nano /etc/systemd/system/filebrowser.service
Then add:[Unit]
Description=File Browser
After=network.target
[Service]
ExecStart=/usr/local/bin/filebrowser -p 8083 -a 0.0.0.0 --token-expiration-tim 1000h -r /mnt
Restart=always
[Install]
WantedBy=multi-user.target
Feel free to adjust the port, address, or any additional flags in the ExectStart line. Save the file, close any running File Browser sessions, and reload the systemd daemon with sudo systemctl daemon-reload.
If yo used 0.0.0.0 , File Browser should now be accessible from the Pi's local IP. Get that IP by running hostname -I in the terminal. Your IP address will be the first IP in the list. Open it in a browser from any device on your local network.
If you run into any issues, check the app status with sudo systemctl status filebrowser or restart it with sudo systemctl restart filebrowser.
building on this setup
Explore the File Browser docs and customize your setup. I added a couple user accounts so others can upload and access files. If you want to access your Pi from outside your home network, you can setup remote access through port forwarding (this can vary by router and network).
Auto-syncing media would be a great addition to avoid manual uploads. This would run in the background like iCloud sync, keeping photos and files synchronized across devices.