Hello SelfHosted!
I’ve been a Linux enthusiast since ~2006, but I still have gaps in my knowledge and I would not consider myself a “fully-competent” Linux server admin at this point in time. I have to read a lot and ask a lot of questions to figure out things more knowledgeable users may do in their sleep. I’m gonna call myself “begintermediate”.
I’m working on simplifying my storage, backups, and general digital hygiene. I have multiple devices split across two locations and I end up having to use hard drives to periodically move files back over to my main desktop for sorting and archiving. If I want to access older files, I have to copy them from my main storage on the desktop to a hard drive, my NextCloud, or whatever device I want to access them on. I would like to avoid this drudgery by moving my file storage to a NAS (don’t really even need access outside the network, though it could be useful if I understood it enough to keep it secure). I also hope to simplify by backups in some way because currently all my devices just back up to a different pair of portable drives one of which I hand-carry offsite.
Requirements:
- 4TB+ storage to start
- Expandability, I don’t know how storage needs will change over time, but 32TB seems like a fair upper end before wanting to update the whole system.
- Would like to be able to run a few docker images for things like media server, open project, restyaboard, etc. I’m not sure if it makes sense to do this on the NAS or just get a simple NAS and do this stuff in a VM on my laptop or with a Rasberry Pie.
- I don’t particularly want to spend more than $600 to get started, but wouldn’t mind having empty bays for later as I currently don’t have too much data.
Usage:
- 1-4 TB (someday up to 32TB) of files (docs, books, photos, videos, device backups, configs & code snippets, etc.)
- Video, Photo, Music Access via Android Devices
- Video and Photo access via a media portal (like plex or open media vault)
- Would consider moving nextcloud here (currently on the public cloud) if uplink is fast enough.
- Some sort of access via iDevice would be nice in case I want to give another some storage space.
Questions:
-
Does it make sense to mix my uses, i.e. media server, open project, etc. co-existing with file server for my docs and general files. Can I segregate portions for only local access?
-
I don’t have tons of time to maintain this. Nextcloud hasn’t been a pain, I log in here and there and make sure everything is updated (nextcloud and the server) and I run the NextCloud security scan to make sure I get an A+. Does it make sense to go for something like the better Synology NASs that can run docker images or would it provide better affordability/functionality to use a mini-pc or a FBmarketplace/craigslist slim pc hooked up to a drive enclosure or something else frankenstein-y. I don’t mind doing basic maintenance, but I can’t afford to spend every other weekend rebuilding things.
-
I have a dead WD MyBook Live and MyBook Cloud on my shelf. WD never updated them to fix the critical security issues, I missed the 40% off upgrade window, and they’re not safe to run with network access. They also sucked even when they were new. I want to avoid products doomed to become dead-end abandonware before I’m ready to upgrade. Are there NAS brands that are known to be better/worse with this? How does homemade NAS fare as far as hardware support and having to upgrade/rebuild when OS versions change.
-
Can I purchase/build a simple NAS that I use for storage and serve the files for my media server through a different device like my laptop? Is this better/worse than just streaming from the NAS itself or will I not notice in most cases?
-
It sounds like some of the pre-built machines can use drives of different sizes which would allow me to re-use the barely used drives inside of the WD devices. Do any of the self-build solutions allow for this.
-
I would LOVE some book/media/community recommendations for digital hygiene and how to handle store, backup, maintain the deluge of information in our modern lives.
All in all, I would appreciate any insight on a solution that gives a good balance between features & configuration, affordability. and maintenance time-investment. I figure a community of enthusiasts is a better place to learn than marketing copy.
Thank you for any help you can provide!
I have multiple devices split across two locations and I end up having to use hard drives to periodically move files back over to my main desktop for sorting and archiving. If I want to access older files, I have to copy them from my main storage on the desktop to a hard drive, my NextCloud, or whatever device I want to access them on. I would like to avoid this drudgery by moving my file storage to a NAS
A NAS is a good idea but do note that this sort of setup can work aswell with the correct tooling.
don’t really even need access outside the network, though it could be useful if I understood it enough to keep it secure
I can highly recommend Tailscale for this purpose.
run a few docker images for things like media server, open project, restyaboard, etc. I’m not sure if it makes sense to do this on the NAS or just get a simple NAS and do this stuff in a VM on my laptop or with a Rasberry Pie.
Depends. Many people host such things on their NAS since the NAS is always on anyways and barely does anything most of the time, so it’s perfectly valid to do that.
Can I purchase/build a simple NAS that I use for storage and serve the files for my media server through a different device like my laptop?
Yes but in a home setting, it usually makes sense to keep the services running on the same device which stores the service’s data.
It sounds like some of the pre-built machines can use drives of different sizes which would allow me to re-use the barely used drives inside of the WD devices. Do any of the self-build solutions allow for this.
Sure. Unless you need assistance setting up a Linux system (I doubt you do) or building a computer, self-built is almost always better. I use a low-power Intel single-board-computer (Celeron J4105) in a small PC case for this purpose.
For pooling different sized drives, I use btrfs but the same could be achieved using ZFS or even LVM.
Do note that, unless you have specific uptime requirements, RAID is pretty wasteful in a home setting in both hardware and time thinking about it.
When it comes to digital hygiene, figure out backups first. 3-2-1!I would LOVE some book/media/community recommendations for digital hygiene and how to handle store, backup, maintain the deluge of information in our modern lives.
I’ve found git-annex for myself. It’s quite a rabbit hole and takes a lot of effort to understand and really use well but it’s an incredible tool that has greatly aided simplifying my storage setup.
One of the best things about it is that it separates data from metadata. You always have the metadata but you don’t need to hold the data all in one place.
This means you can re-organise files on your laptop without those files actually being present on the laptop. They could be anywhere; on a hard disk sitting unplugged on a shelf, in the cloud, on some other machine that’s turned off, on the NAS etc. but you can move them around in the filesystem as if they were there. If you needed some file’s content content, you can ask git-annex where the file’s content is stored, i.e. plug in the hard drive and then ask it to copy the data over.That’s the gist of it (git-annex can do a bunch of other cool stuff) but this really helped my get my shit together w.r.t. storage hygiene.
I can’t answer all of it, but much of what you’re asking for can be accomplished with a simple samba share. If you can handle nextcloud, you can set up samba.
It’s perfectly reasonable to use the same device to run your web services and as your NAS. There’s no reason you can’t divide them up later if you want.
You’ll need to pick a file system, I suggest either BTRFS or ZFS though there are several options. BTRFS is neat because it’s flexible - you can make huge changes without ever dismounting. You’ll want to plan for a multiple-drive solution, and you’ll need to decide how you’d like to balance performance, space efficiency, and failure tolerance. Whatever you do, pick one single drive size and stick with it – different disk sizes xan work, but there are restrictions and they complicate things.
A good backup is automatic, versioned, and encrypted. You preferably want one offsite and one onsite for anything irreplaceable. Restic is a good tool, as is Borg backup, as are many other options. Personally I run a restic job nightly, with backblaze b2 as a destination. I also have a local backup on normally-unplugged drives that I run manually every couple weeks.
For plumbing, tailscale is really nice. Easy to set up, and you get remote access to everything with minimal config and no holes in your firewall.
Regarding hardware, you have many options. Old laptops actually make great homelabs:
- energy efficient
- built-in UPS
- no need to drag a keyboard/monitor/mouse over when you can’t access via SSH for whatever reason
- usually plenty performant for the task
Their biggest drawback is a lack expandability/upgradability, though you can get pretty good USB drive bays to partially address that. Another option is the intel NUC family and its competitors, basically tiny desktops built out of laptop parts. A third option is to build a normal desktop PC, either into a normal case or a rack-mount one if you have the space. The off-the-shelf options work, but are limiting in my experience. That said, they’re the way to go if you don’t want to do a lot of tinkering.
Whichever solution you go with, personally I wouldn’t start with any less than 4 drive bays. More is better, you can’t have too many. You should be able to shuck your old drives and put them into any 3.5" drive bay.
For reference, my setup is an intel NUC with a thunderbolt 10 drive bay plugged in. I have a mishmash of disks, ~48tb total in BTRFS raid 1giving me 24tb usable. Running a good handful of docker containers and a samba share, all accessible over tailscale.
Sorry for the info dump, happy to answer questions.
I’m in the same kinda situation as you, I need some storage but need it to be expandable, want to run some docker stuff, while I could (and have in the past) build and maintain something like that from scratch, I don’t want it to take over my life and I want it to be easy to maintain. My previous NAS was fully set up from scratch on FreeBSD, it was pretty good but was a lot of work to get it right.
So I set up an Unraid server on a parts-bin server as a kinda compromise between a fully DIY and just buying a NAS. Meant I could use some old stuff I had and some cheap components rather than paying out hundreds for a NAS. Slapped in some shucked drives and some old NVMe drives (took the opportunity to upgrade my gaming machine, so used the old stuff for this), now got 42Tb of storage and 2Tb cache.
I have to say it’s bloody fantastic. Was a bit on the fence about a paid OS but it’s cheap, the UI is solid, and thus far totally worth the money.
Alongside about a dozen services running in containers, I’ve got an Arch VM to satiate my DIY cravings, which suits me fine because I can do what I want with that without messing up my file storage/services/etc.
I absolutely agree. Unraid is well worth the price.
I found that running just a NAS is no good because it lacks performance. And running just a server is no good because of data safety. So I run both.
I run a Synology NAS for storage, and an Ubuntu Box for services (Paperless, Mattermost chat, Photoprism gallery, Gitea for Code, picoshare, and lots other small stuff). All services run on Docker (plus Portainer for handling them, plus NPM for certificate handling and subdomains).
If you are running a media server, depends what you going to do with it. Storing media without transcoding you don’t need much, ex-gov computer from last 10 years x86_64 CPU that could store a HDD, you could use openmediavault (Linux), Unraid (paid - linux) or freenas (freeBSD) in a JBOD config and a ssd for cache (so you can serve databases, and metadata quickly, like plex or Jellyfin) and it will be much faster than MyBook Cloud.
Transcoding media, that is converting media from a format to another format so you can be compatible is a different story. You will need at bare minimum intel with quicksync or a fast CPU for software encoding.
Generally with DIY NAS software, you load a docker, point the docker directory (fake) to your jbod directory and it will just deploy on the webUI port you assigned it too.
Generally I will do this imo. Cheap intel PC (eg. Ex-gov) with a HDD > upgrade to SSD for a cache drive > DIY PC with plenty of SATA ports > upgrade to NVME > Cheap GPU for transcoding OR SAS card for more harddrives.
If the data is really important, make sure you have a parity drive and a backup solution.