So, I had this RaspberryPi5 lying around, which I wanted to turn into a NAS device in my network. Mainly to store photos, and stuff like that, make our Photos archive (which sits in dropbox now) locally accessible.
I did find out that using Rasp5 was maybe not the best choice for NAS, mainly because people tend to install plex software on their NAS and as Rasp5 doesn’t have any hardware encoder, so it’s going to suck at that. But I figured, I’m probably not going to do that, so I’ll go with it, since I have it, and I have to use it on something. So why not on building a NAS.
Build it – The fun of Hardware
So first things first, we need all the equipment:
- Raspberry pi 5
- 2TB SSD (you can go bigger with a slight modification for the partitions)
- N.VME HAT
- And all the normal peripherals
So just to quickly glance what I did was: Install debian to SD-card. Install N.VME HAT. Booted up my Raspberry pi via SSD, updated bootloader and code. And then rpi-clone SD-card to SSD. Change boot order. Victory!
Since many people have made better instructions, I think it’s just easier I link them here:
- https://wiki.geekworm.com/NVMe_SSD_boot_with_the_Raspberry_Pi_5
- https://www.jeffgeerling.com/blog/2023/nvme-ssd-boot-raspberry-pi-5
But here are some nice picture of the whole endeavor:
The case I’m using is a GeekWorm Case from Aliexpress.com since they had it in store. Installation was really simple, just hook up some screws, risers and be done with it. Not much you can do differently, maybe forget to put risers, so the rasp sits on bare metal and short circuits.
Which btw, I have done when I was 17 years old. Fried my friends motherboard. Wasn’t nice.
Configure it – What NAS software to use?
But as fun as building hardware is, software is another fun stuff. And here it is where it gets tricky. If you want to build a NAS, you want a NAS software in there to do the heavy lifting, and I did try to find as much information as possible on each one.
Thought but not used:
- Unraid – This is actually just a software to handle your VM and Docker images, it’s not really a NAS software. And you do need to pay to use it. Which is peanut for home use, but still.
- Proxmox – Again, a software to handle different VM needs, not really my cup of tea, especially since Proxmox tends to lean towards VM’s instead of docker images.
- TrueNAS CORE – Now this is a NAS software, but it’s built on top of FreeBSD, and I use linux, so it’s no-go.
- TrueNAS Scale – No ARM64 support, so no go on this one.
So what I actually ended up using was OpenMediaVault. It looks a bit homey, in my opinion, but people tend to like it, it’s fast, reliable, and OMV7 should be quite good on running all kind of things. Mainly docker images, since yes, I do want to use my machine on some other stuff than just pure NAS.
Installation was really easy, it’s basicly just one script: https://wiki.omv-extras.org/doku.php?id=omv7:raspberry_pi_install
There’s a bunch of instructions, but the main idea was running this:
wget -O - https://github.com/OpenMediaVault-Plugin-Developers/installScript/raw/master/install | sudo bash
And it just does everything for you. No need to manually do anything, it will handle everything.
Start putting up services – What makes A NAS
So you’re then greeted with a nice dashboard of stuff to use.
Looks nice and everything. But this is only the beginning, since, now you have to actually build your NAS part.
File Sharing
Basicly, you want to use NFS, since it’s faster than SMB, but it’s also more complex, requires more user access settings.
What did I do with these complex settings? I failed miserably! I didn’t get NFS share to work, and even with SMB share, file access is really annoying. You have to work with usergroups and users and make sure everything works.
I did eventually get SMB share to work in an ok manner, but not without big hickups. sometimes the files get wrong user group settings and other users can’t move them. But for now, I’m not too bothered by it, since my time has gone to other things.
Docker compose via openmediavault-extra
So nowadays, you don’t have to use portainer or any other third party service to install docker images in your NAS on OMV7, you go and enable “openmediavault-compose” to provide docker functionality within the OMV web interface.
Then you can add new services, ie. docker images, via example files or write the compose file yourself.
But more from that later. All in all, really easy and simple experience, nothing hard or difficult. But there is always something, something that leaves you that annoying after taste in your mouth.
Conclusion
So my server has been running 31 days now. I’ve been adding new services via the openmediavault-compose system, which is basicly just a webui to edit compose files and then pressing buttons to do something with them (up, stop, down, read logs etc).
The problem is, I’m not really using OMV on anything. And I kinda have started to hate using the UI to handle all the docker stuff, they do exist in the filesystem, but managing them is meant to be done via the UI, so it’s a bit annoying.
If I do want to fix the file-shares, I can always do that manually. Or via some nifty docker-image. Basically meaning, I did with this what I said I don’t do with my Smart Home. I want a pure OS where the OS manages only the Docker images. Now I’m living with this weird land of having OMV and not using it on anything. And it’s starting to gripe.
And if I want to use something like Portainer, Dockge or any other docker management software, it’s out of the question, I would need to move all the stacks to that software, and what is left with OMV to handle? File sharing. That’s it. And that’s too little in my opinion for me to worry about updates and what not.
So if I end up doing a complete reinstall of my NAS, that is the reason. And moving everything to either pure docker-compose.yaml files like I have now, or move everything in every machine to something like Dockge starts to sound fun. I could actually interact with the docker network somehow and do stuff. And again, it runs on a docker container, which again, sounds fun, you install a docker container to handle your docker container network. Brilliant!
But that’s it, installing OMV, not hard, but it just fights against my philosophy too much, and how I want to build things.