I am technologically skilled to some extent, but not nearly enough to justify the financial investment I’m about to make In a home server without checking that I’m not way off the mark. Reddit tech answers are usually useless, all jerking each other off about being the most vague and useless. So I’m here, just humbly asking if my plan will work before I waste a ton of money if it doesn’t.
So I want to run immich, jellyfin, vaultwarden, and a couple other small programs (including backup automation) on a home server. The photos and videos are very important and I want off of large corporate cloud services for all the reasons you can imagine. There are about 2TB of important photos and data right now to backup.
So my plan: a mini pc with a low-level i3 or i5 chip but about 256gb SSD and 8gb ram. I will buy a UPS, a hub/NAS for 2 4TB HDDs, and a separate hub for backups elsewhere on another 4TB HDD. I already have a pc with an ok graphics card (only like 8 years old, but it was above average then) and good processor. My plan is to run the server with Linux, docker, and portainer on the mini-pc, and do the most intensive work (things like local Machine Learning on the photo library in immich) on the gaming pc. To save on energy, the mini pc is the only thing on most of the time, and I will turn on the old gaming pc to do the hard tasks.
I am hoping a friend will allow me to (somehow? I don’t know how yet) keep a hub+HDD backup at their place which is updated weekly automatically whenever their computer turns on.
Is this all achievable? Am I missing something small or huge? Any tech people here know something that I’ll likely miss on my first attempt?
This will all work but you may want to leave yourself with a few paths for growth that you may want to take now or later, so you’ll want to plan your base components accordingly.
- 3 drives is the minimum for reliable error correction, like a 3-way mirror, for your NAS. This is a great feature. Some filesystems will let you just keep adding drives to a 3-way mirror, too, which makes expansion easier. You can actually get much more storage efficiency from 6 drives and erasure coding (like raidz2) but that will of course mean needing to buy 6 drives (but getting the storage of 4 not 2).
- For good performance you’ll want your main service data files local and your big files (like movies and photos) on the NAS. And have a backup strategy that copies your local service data files to the nas.
- The machine learning stuff with immich doesn’t need a GPU beyond what your CPU already has but it does need RAM. I think you’ll want at least 16 GB in general to run these workloads and have room to make changes.
- You’ll benefit from having a wired network connection between NAS and mini PC. Even just running 1gbe Ethernet from each to a router. This decreases latency and will prevent throttling your WiFi.
- For off-site backups I recommend making backups that are encrypted at rest. If this is too expensive (because it basically doubles your photos storage requirement, for example), at least encrypt just before sending to the destination (like with restic or Borg). I also recommend doing some zero trust work on that off-site machine to prevent access - a user accessible only via ssh or root, system storage encrypted. Then there won’t be any snooping. Even if your friend is cool you never know who might visit. A backup method that deduplicates can be nice for saving storage and many will also encrypt by default.
- If your stronger computer can run virtual machines you can also run workloads on that.
- Monitoring is good for everyone but it’s especially handy when you’re building your own storage and backups solutions so make that a priority. Like setting up Prometheus and grafana and having a bunch of stuff report to it, especially backup attempts and drive health.
Ok back again after doing a week of research and am very thankful for your help, now have a question about it:
For this encryption, I need the HDD to only be decryptable with a password that only I have, right? Like thats the end goal? So even if someone gets it or ssh into the server on my friend’s side, its an encrypted system? Does thay mean each update also has to be a complete wipe and re-backup??? Or are there systems which can just add the new data by knowing the encryption key?
The main thing is to put up some roadblocks to getting your data.
Your main defense is to ensure your data is encrypted and that you’re using ssh to send it, specifically using ssh public + private keys and not a password. Then even if someone manages to access your system, they can’t get the data without being a pretty high level attacker (like a government). If you set up just this it’ll probably be enough.
Regarding full disc encryption, it is possible but a little complex to set up in this instance because it requires you to put in a password before the kernel starts (kernel is loaded from disc) so you would need to be present or buy another thing (a kvm box). Or have server level hardware that provides a kvm already, which requires $$$ or a lot of research to find a consumer machine with it. A kvm box might actually be handy for you (gives you a remote keyboard, screen, mouse at the hardware level) and there are less expensive ones on AliExpress but you don’t need it. Example: imagine you do a system update to keep things secure and something goes wrong before the ssh server starts. Without a kvm you’ll be unable to access the system remotely to fix it - you’ll need to go to your friend’s house. Probably not a huge deal but just something to think about.
But you can give yourself a lot of the benefits by just encrypting one partition. You can then either use something like a mini ssh server (dropbear) to enter a password to unlock it remotely or have the tpm auto unlock it. The former is better security-wise but then you have to have internet access at that early stage (more setup). The auto-unlock with the tpm means if someone takes only the drive and not the whole computer, then they can’t decrypt it. So it’s quite a bit less protective but also very easy to set up and you can try to add the drop bear functionality later once you have tpm auto unlock. Please note that you’ll 100% want a password as your main fallback option for unlocking a partition, as then you can still access the data even if something else fails (machine breaks, bios update goes wrong, etc).
I think a good compromise is the use of ssh + encrypted backups, a single encrypted partition that is unlocked by the tpm (and has a backup password), and requiring a password for accessing your bios + boot menu. This eliminates all plausible threats:
- Your running system is protected by standard Linux password protection which is quite good.
- Your system is protected against someone accessing your drive by using a bootable USB drive. The password for bios/boot menu for sure and the tpm can also be set up to not unlock when new hardware is attached, if you want that.
- Your drive is protected if it’s taken alone (bound to the tpm, which is on the motherboard).
If you just do my very first suggestion (encrypt the data itself, use ssh + keys) you’ll probably be just fine though. It could also be just fine to just do that and keep the other stuff in mind for the future. Just getting remote access to your friend’s network will be a decent enough project!
Very good information! I had no idea that 3 was the minimum for drives for RAID error correction. I thought a RAID6 configuration with 2 drives was already doing error correction?
You need 3 copies, technically. If 1 out if 3 disagrees with the other 2 then the 1 gets overwritten. It doesn’t have to be disc level, you can do this on one drive (I actually do this sometimes to get error correction on system drives), but if you’re setting up redundant discs anyways you want to play to the strengths of those systems by getting e.g. a 3 way disc mirror.
Technically some systems can get away with two copies and some careful hashing tricks but best not to think about that for this use case.
So this means 3 drives for mirroring in my system and then still 1 at a different location to make sure it’s safe from fires if I want to avoid clouds… damn
Yeah basically you want to plan for what happens if a drive fails. With a 3-way mirror you have 2 redundant drives so when you need to replace a drive it rapidly copies from those 2 and gets you back up and running. Drive health is correlated so the most likely time for another drive to go down is during this rebuild. If a drive does go down during a rebuild, you’re still okay so long as that last drive makes it. 2 redundant is plenty to make rebuilding a 3-way mirror basically guaranteed.
Keep in mind this is just keeping you running and isn’t a backup, but I think that + error correction makes it worth it for any nas with data you care about.
Damn I care about the data but with 4tb hdds thats like 1000 bucks instead of 700… which I already can barely afford
Is that for 1 or 2 extra HDDs?
I usually target refurbished drives on ebay from a reliable seller. They’re used and have a lower lifetime but are usually about half price and that’s good enchanting for me.
2 extras. Europe is fucking expensive and the used market is shit. It’s impossible to find used hardware thats not at like 85% new price
You can’t have a RAID6 with 2 drives. RAID6 uses 2 drives just for parity.
You can have a RAID1 (mirroring) with 2 drives.
Yeah I definitely confused those. I do not have money for higher RAID than 1 lol. Also don’t need it, I think. But I would like to be as little dependent on 1 HDD as possible, because I care about the data. So does it make sense to do RAID 1 so that 1 can break and the other still works? Then I still have back while redundancy is lost?
It’s fine if you are willing to use half of your disk space on redundancy.
ZFS can do that.
Bever heard of ZFS, dont really understand it. Does a software achieve this for my backups?
It’s a filesystem with support for software RAIDs among other things. There is also Linux device mapper.
A 3-way mirror is basically software level RAID 1 but you can lose 2 discs without losing data. This is the same redundancy level as RAID 6 / RAIDZ2, but it’s less storage efficient. On the plus side, it’s very low overhead, simple to think about, and will be faster at reading / writing.
So let’s say you’re doing a 4 TB disc buy and can choose between mirror and erasure coding, same level of redundancy at somewhat optimal setups for this scale.
For 3 way mirror: 3 discs, you have 4 TB useable storage and should really try to keep it under 80% utilization so more like 3.2 TB. Cost is 3 x drive price. You can add one disc at a time and restripe if using a software RAID that supports it or get 3 more discs to double storage. You can use ZFS or btrfs for this, maybe some others.
For erasure coding: 6 discs, you have 16 TB useable storage, 12.8 TB if staying under 80% utilization. Cost is 6 x drive price. This is harder to expand but it’s sometimes possible, usually with a lengthy redistribution process. You basically need to use ZFS for this. You pay more for power due to the number of discs always spinning.
IMO you should figure out a reasonable guess at how much storage you need and then double it, then compare prices for the drives you’d need to get that with either level.
Is a 3 way mirror possible with one at a distance/on a different network or processor? Or is there some way I could make the 3rd of the mirror at a distance at a friend’s house?
It is possible but performance is so bad and setup so complex that your definitely don’t want to do it.
Ok so reliable saving of my data in a safe way is, instead of 3-2-1, actually 4-2-1 if I want mirroring for corruption check… damn
Hey this is what I just got through doing!
I ended up exposing a website (and buying a domain and stuff) but if you don’t want to do all that then setting up a tailnet so that your home server and other devices can all share data securely is pretty easy. I don’t even have a monitor plugged into my server anymore, I have ssh aliases set up for it on my desktop and laptop to manage it remotely.
Before buying hardware I would ask if your proposed two PC setup is really necessary. Home servers do not need new hardware, a single person just isn’t going to be putting that much strain on it. Even considering the energy difference between a mini PC and an old PC, you’re probably looking at having to run the old PC for multiple years at full blast before it ends up costing more than the mini PC - if nothing else I would say get the old PC set up first and then determine whether the mini PC would actually improve your setup or not before buying anything.
As for an off-site backup, I would look into the free tier of Amazon AWS or similar. Putting a computer at a friend’s house is certainly an option, but I personally would rather be mirroring my server to a dedicated service of some kind.
My pc is pretty power hungry, but thats probably something that could be imporved my migrating to ubuntu and getting rid of the old semi-workinf hard drive. It also has a lot of cores of cpu, which are fairly powerful hungry. Is that still cheaper? And i still want to use my machine for gaming sometimes, though mostly with low-requirement games like Celeste and such.
Yes it’ll still be cheaper. 99% of the time your PC will be sitting at idle power, barely drawing more than the mini pc would.
Well I guess I will go check how many SATA ports my tower has. Might be the best option, really… saves me like 300 bucks on a used computer. I guess I would want a separate SSD for the thumbnails (separate from the one for games and general PCing now) and then 2 HDDs for the data in a RAID1 configuration. So in total that’s four I need… or a powered HUB to the side…
Ok I just realized idk how exactly to know for sure how many SATA ports I have… I think 4? Can you look at these pics and tell me I’m not missing something? I see 5 places to mount things, but 1 is currently a disc drive (pretty sure I should replace that with an HDD), but only 4 places on the motherboard. Is that right?
Wait posting pics isnt working
I’ll try like this https://imgur.com/a/XMXpYX7
Wait I figured it out, according to the specs I have 3 SATA ports that work and one that is an eSATA. I can’t exactly figure out if I have any USB3.0 ports to determine whether I would be better with a eSATA DAS or a USB3.0 DAS for the extra hard drives… the ports are all black. My device manager says its got USB3.0 but I can’t figure out which that is lol
An Imgur link was detected in your comment. Here are links to the same location on alternative frontends that protect your privacy.
Get a tower case that can fit your HDDs and a mainboard with enough SATA ports.
I did this. Thanks for your advice. It helped me a lot
I started with USB HDDs and a mini PC myself and was so glad when I finally switched to a tower. A lot quieter too.
Yeah just make sure you use tailscale or something like it to connect to the server dont expose it publicly.
nginx proxy manager and a domain name if you want SSL and hostnames for shiz
oh and test your backups, an untested backup isn’t a backup at all
Thanks for the advice! How does one test a backup?? Just plug it into another laptop and check if the photos are viewable?
And I was going to use tailscale but without a domain. Idk how exactly that works yet, havent gotten so far, but thats possible right?
Depends on the type of backup. Images will be easy make sure you can decrypt and view. Then say you’re doing borg you wanna make sure to test system restore in a vm, docker volume backup restore etc etc. its a common IT issue that people schedule backups and find out the backup doesn’t work properly only after losing all their data
Doing a backup restore also then requires another backup or enough HDD space to do so on a VM, right? So I need an extra 4TB HDD somewhere to do that?
Are you like filling all these drives instantly to max capacity? Cant when setting it up test restoring your setup with a small amount of data first and once confirmed working start using it?
I mean technically you could have a mirror disaster recovery setup but that might be overkill it depends on how much you care about your data
No, definitely not instantly, but 1/3 immediately for sure. Luckily all the data is already in corporate clouds, so I can fuck around a bit with local versions until I stop paying them. So I could just run the system, check that it works, then trust it’ll work the coming years? Or do I need to check that the backup works at every system update (like syncthing has an update or something)?
what is mirror disaster recovery> I was gonna do RAID 1 or 6… is that the same thing? I care about the data a lot! Enough to be spending what feels like a month’s paycheck to keep it safe
I usually go for check it once at first setup to know my backup method works correctly and understand how restoring works you don’t really need to check at each update because at least in my experience server software doesn’t change that much. As long as you know it works you’re in a significantly better position than never knowing if it works at all.
Mirror system is basically configuring an identical server that mirrors all the data so if one goes down you can instantly switch to the other but its a bit more complex and a lot more costly.
My setup is a minipc amd apu with 32gb ram with a bunch of external drives plugged in. The pc itself i backup with borg so i can test that easily in a vm as it doesnt have the data itself just the os and software. Then for the external drives i have those copied and compressed once to my desktops massive array of hdd’s and then again to evil corporate cloud snapshotted each week with certain number of preserved versions.
This basically separates my restoration to two simplish steps of restore drives then mini pc and aside from maybe remounting the drives under the same path it should all be fine. If you can test that once before using the system in anger you will thank me for it later.
Raid is less a backup more…. Er idk what raid is useful for tbh. But I wouldn’t trust it to restore a system in many failure scenarios like if wrong data is written to drive a it writes it to drive b as well a backup should be a dated archived snapshot of a known working version you can restore from. Proper backup tools like borg do heavily compressed deltas so my entire os and software with multiple weeks of snapshots compresses down to like 60gb.
Oh and i also write documentation as i go on how i configure everything cos you will forget and you will wonder why you didnt write it down
Thanks for more info, super helpful! I wasn’t really paying much attention to restoring the system near as much as keeping the data safe, but that might be giving it less attention than I actually should… My test environment was so easy to set up (with no external HDDs) that I was thinking that I didn’t really need a backup of it, because with limited documentation I could make it again in a day or less.
But that brings me to documentation. You have any advice? I was going to make a diagram of the software and then hardware and then have a page for each connection or something. Like an architecture that references pages for the ways the things connect and what info goes where and how. Then also like the sites I got my info from to set up the programs. But I’ve never done it before so open to literally any idea! Every time I have to think about something, I try to write down what I did, too. But this becomes so quickly unmanagable.
Are you planning to expose services to the internet, or are you keeping everything only locally-accessible? If the former, you’ll definitely want either: a reverse proxy handling SSL certs between your router and any exposed services; or a vpn tunnel like wireguard that is required to access anything inside your LAN from the outside internet.
I’d also recommend giving Proxmox a try. I was a little intimidated when I first started setting up my own cluster, but it’s honestly not that hard and I wish I had done it before I set up some of my machines as standalone ubuntu and debian. Even with 1-2 machines I’d recommend it for the convenience of being able to manage VMs on every machine within a single web UI, as well as making backups much easier especially with Proxmox backup server. Note that the default installation has some subscription nag and defaults to an Enterprise repository for system updates, but there’s this post-install script that takes care of all of that.
For off-site backups at friends’ houses, you could set up S3 storage on a device they plug into their network, although this would require its own tunnel setup or dedicated reverse proxy and cert management + said friend letting you into their router’s settings page. You could also offer to host your own and “trade” space, using the argument that even if they’re not interested in self-hosting it’s still a good idea for everyone to have some off-site backup space that isn’t at the whims of Google.
Does proxmox replace portainer?? And what makes it hard if a machine is already a standalone ubuntu machine??? Thanks for your reply!
No, but Portainer can be used to help manage multiple VMs within a Proxmox cluster. You’d set up Portainer on a VM like you would any other system, and then deploy an agent to other VMs (or even other machines on your network). Think of Proxmox as your hardware abstraction layer, and tools like Portainer (or dockge, dockhand, etc) as further abstractions for your containers.
And what makes it hard if a machine is already a standalone ubuntu machine???
I would have to wipe the Ubuntu boot drive and replace it with the Proxmox iso, and then re-set up anything I have running on Ubuntu within the new environment. It’s mostly just tedious migrations that I don’t want to do badly enough right now, lol.
Is it not possible to run proxmox on Ubuntu? Or did you set all this up in just ubuntu to where it must be completely translated to proxmox?
I mean I guess you could run Proxmox on a VM in Ubuntu, but I’m not aware of any use cases for such a setup (it’s fine for trying it out, I guess). Proxmox is more intended to be the platform which you manage VMs on top of.
What I’m suggesting is installing Proxmox as the root OS on your machines (at least any that would run Linux anyways), join them together into a cluster, and then install VMs on top of that. To be clear, the VMs would still run on individual machines, but Proxmox gives you a handy web UI from which you can mange any machine and any VM on those machines. You can also later explore LXC’s, docker swarm, and kubernetes, but I think just starting out with a simple Proxmox cluster running a couple of VMs is a good place to start. (And then backup said VMs using Proxmox Backup Server, which itself installs from an .iso into its own VM on your cluster.)
Holy shit thats a lot of layers and im not following entirely… but I think I need to figure it out myself a bit. So ProxMox is just the base OS and I could install Ubuntu within Proxmox on a VM, but all my server shit is just within proxmox but not within the Ubuntu VM… I didnt understand Proxmox at all before this, turns out
Ok I read a bunch more on this, but am left with one really technical question. I am now leaning towards making my pc double as my server because it already meets most requirements and would save me a lot of money.
But if I do it via proxmox, I can’t see a way I could still use the pc for any gaming without turning off the proxmox servers. I could do an Ubuntu or windows VM within proxmox, but from what I know, games will not run well on VMs, so it would require a dual boot setup with separate drives… meaning my server turns off to turn on games.
Am I correct in my conundrum?
Ah yeah, you can enable a desktop environment on the Proxmox machine and (I assume, haven’t tried it myself) have an experience more or less like regular Debian with VMs running in the background (that you can shut down to free up resources when gaming). I would consider this really over-engineered, and only worth doing if you’re happy to get the learning experience and dealing with the added complexity, and possibly tearing it all down and starting over if it doesn’t perform well. Absolutely nothing wrong with just running Ubuntu/Bazzite/whatever natively, and running docker containers on that can be spun down when gaming.
Hey I wanted to profusely thank you for your help. It was genuinely amazing help… im still learning just from reading your comments, looking up a term, and then coming back after a rabbit hole. But Im practicing proxmox on 15 year old laptop right now before implementing it on the pc.
I ended up getting a 2nd pc, but am looking now into dual booting my gaming pc with Ubuntu to do some tasks that only need to happen every once in a while. But i dont really understand clustering all that well nor how I would integrate it with my proxmox main server box… like to do backups on my gaming pc once a week and have thay backup go once a month to my friend’s or something using that gaming pc… is that sensible or nonsense?? I just imagine it having a different psu in a 2nd computer as some layer of redundancy? Is that right?
My plan is to use the free tier of corporate clouds for like the most recent month of photos so that theres a 3rd save location until I like monthly do a backup to my friend’s, have a permanent HDD with data every year or so (so like a 500gb cheap one) that I then store at my parents’, and using proxmox ZFS on my important data with 3 hdds. This is expensive, but I saved so much on the hardware due to all of your (plural, the whole thread was amazing) advice.
But that all being said, can I come back to you every once in a while to bounce an idea off to hear if I’m still being logical? Im so scared of losing precious photos.
Like, a question i can’t wrap my head around now: I want proxmox to handle my ZFS, but immich to also have thumbnails on an SSD. Should thay ssd be separate from the one which promox is on? And what about the one that has the cache of new data (to not have the hdds always on but only once a threshold is met?)
Enjoy not getting paid for full time, on call server administration!
That all looks fine, as other said. No reason to use a GPU for ML tasks that can run overnight for example. Might be nice of you get into home assistant in the future though.
My family does very little media consumption, so I think immich is the only thing that will be weekly used. But once every couple weeks we will watch a movie or something. Does just immich require so much upkeep??
Not at all. Nothing you use will require very much upkeep at all. And yet, I guarantee it will go down at the least convenient opportunity. Upgrades will break things inexplicably. Stuff will just not work for no reason. Self-hosting is fun and rewarding, don’t get me wrong, but there’s a reason people get paid good money to work on this stuff professionally.
My personal profession is in managing existing hardware and software systems… but I’ve never gotten to get into the weeds because I came from another background! So servers are something I daily talk about, but from a totally different technical expertise. I’m excited to learn it and use it :)
You are largely on the right path. Get your HDDs second hand and you will save a lot, and you probably don’t need a separate hub for the server as they could just go straight into the motherboard. Check its model to make sure it supports at least 4 sata ports for expandability (ideally 6+ but harder to find). Use the HDDs in a raid configuration which protects data if one fails.
A UPS is probably overkill unless you live somewhere with regular power outages, and even then you might not really need one… Could be something you get down the line rather than immediately if cost is a concern.
For CPU I recently built my home server with an Intel i5 12500T that I got used with a warranty. The iGPU on it is actually great and handles transcoding for jellyfin exceptionally well. I run it all through docker on debian and drivers are all fine for it too (there is a bit of setup for GPU support with the docker image but not much). Personally I would not bother with portainer and use docker+docker compose directly. It’s fairly simple to set up an ssh connection from your pc to the server over your local network for admin work. If you go down a path which has you using gluetun then I highly recommend you do not use portainer to manage that setup.
I do some machine learning on my music library with just 32GB ram and the cpu. It’s running 24/7 and not urgent so I never bothered with a GPU. ML runs just fine on a CPU, but a bit slow. You may find you don’t need a gpu for image analysis workloads.
Generally you want to keep power consumption low. I run around 20 docker containers giving me a full backup system, home media system, gaming servers for friends, and a few other things which totals around 1.5Kw per day. Where I live this works out at at around an hour of minimum wage per month to run. I suspect if I went with a laptop oriented CPU I may have made some more savings here.
For off site backups I would personally just store historical data on an encrypted external SSD then leave it with a friend. Gets a bit trickier to do it in real time but if you go that route then use tailscale as other have suggested. Do not port forward anything to your server or your friend’s house as it’s a unnecessary risk which you can skip with tailscale.
I am wary of second hand HDD’s because basically my main goal with this whole thing is to safely and reliably save the personal photo’s and video’s. So that was the one thing I didn’t want to rely on second-hand. Is that not smart? I have a (possibly unfounded) fear of HDD failure.
I also have that fear but I have yet to have a hard drive fail on me in over a decade. If you are not doing heavy write usage then they are unlikely to fail. In my main PC I have a HDD I use to store game files which is now in its 14th year of usage. I would personally not trust it with sensitive data but it hasn’t failed on me yet.
Having a good raid setup also means you can have failure without losing anything. You also will have an off site backup on top of that. If cost is a concern it is something to consider as it can be a lot cheaper. I have at rest encryption and a warranty on the used drives, so if they fail soon after I get them setup I just return them for another.
Depending on consumer laws around used returns where you live you could use the ‘SMART’ tooling on the drives (it’s a built in self reporting on health/usage duration etc) to discover if the drive is still good to use and return it if not.
Thanks for your help, I ended up getting 2nd hand ones from old enterprise refurbishers. They were soooooo much cheaper lol
This is good to know. Helps my fears a bit. Consumer rights are pretty good, though the used market is shit where Im at.
I hope to have more money in a few years, I have had some things that have made me unable to spend too much recently… Then I could afford to get new HDDs earlier, I guess.
Yeah i pretty much do the same thing, except i use my main gaming/work pc as also my always-on server. I just set up a wireguard VPN on the server as well and connect my family cell phones to the vpn to get access; i don’t use a public IP or anything. I have immich and jellyfin currently. On Windows also.
This is an interesting option, though I don’t have enough storage space on my PC I think… though maybe I should. I waa just convinced thay an always-on mini pc would save money in the long run relative to running my PC always. How did you deal with that?
Electricity isn’t too expensive here, and I am usually on my PC all the time anyways for work/hobbies. I doubt the electricity difference between an idle gaming pc and a mini pc is all that much.
Some points:
- 8GB RAM is a little low, I’d really try to find something with 12 or 16GB if possible for multiple services and having some safe margin but if you’re comfortable running with thin margins then go for it.
- IMO try to get an intel chip with quicksync transcoding support so a chip with an iGPU (intel graphics). That way even your little mini-PC can do quick and dirty transcoding when needed without needing to bring in your main PC. You can do without it but consider whether the convenience of having on the fly transcoding support for Jellyfin and/or being able to run transcoding of stuff while you sleep without your computer on and fans humming would be worth it.
- A NAS is an additional expense of several hundred dollars. Consider whether you could get a used or refurbished desktop with multiple internal 3.5" bays (nothing really old, you want something from the past 5 years IMO so check release date of the processor model among other indicators) that would suit your needs instead. A DAS (or USB attached storage device that’s similar to a NAS but relies on a computer) could also work even with a mini-PC. You should ensure it has an external power supply because your computer won’t have enough power for it.
- RAID is not a backup. Repeat that with me. RAID is error correction. Do not use it as a backup. Do not use it in place of a backup. If you don’t have money for both RAID and backups then just stick to multiple backups (ideally create check-sum files for important things like family photos but ignore for movies and television you can just get new copies of).
- Syncthing could do such backups to your friend’s place
- Consider buying a little USB powered or AC powered 120/140mm cooling fan to set your mini-PC on to keep it extra cool. Not required if you’re not pushing it all the time but may help keep it happy and healthy longer and isn’t a bad way to spend $20.
- On the subject of fans if you’re using your hard drives frequently I would try and ensure your DAS has a built in fan. Heat doesn’t help hard drive longevity and you want to try to keep your drives under 45C most of the time.
So in short I’d say dump the NAS, spend the money from that to instead get to more than 8GB RAM, get a recent intel chip with an iGPU that supports quicksync and if possible go for the i5 over the i3 as processors can lower their power states when not in use to save power so the difference when idle between it and an i5 is negligible but the extra power when in use may be nice.
Very good advice, thanks so much.
If instead of a NAS, I do a powered HUB, then I can just install software to utilize the HDD’s in the powered HUB in a RAID1 configuration right? A NAS was my backup to this plan. Then of course a separate backup, I am luckily aware that RAID=/=backup
I wouldn’t want to try a RAID array with multiple external USB drives. The USB protocol is IMO not reliable enough for that and I could see it breaking due to issues with that and with the way those drives tend to be compared to proper 3.5" internals. IMO RAID should be done through a DAS over a single USB connection rather than multiple if you ask me. I have no experience with setting up RAID in such a situation so I cannot answer other than to say my instinct is to say I wouldn’t do that personally with those finicky external drives.
My advice was tailored to the idea these were internal 3.5" drives not external USB drives which are generally inferior if for nothing else than their heat dissipation is awful (I and many others have ‘shucked’ or removed from enclosure certain externals which have viable internal drives such as WD elements (not all externals can be shucked, smaller USB power only ones especially)) though there are often other problems like lower RPMs and speed.
There are DAS units that themselves do RAID internally in hardware rather than via host software. Terramaster sells a DAS (2 bay only, their larger bay models don’t do this) that has a RAID select switch on it as do some other brands. I think RAID via software to proper 3.5" internal drives in a DAS / multi-drive HDD dock should be fine as well if slightly less ideal.
Did I say something thay makes you think ‘USB’? I was imagining connecting via ethernet to a powered HUB of 3.5" HDDs when I said it… am I missing something?
Well you mentioned powered hub which made me think powered USB hub. Maybe just a lost in translation thing.
Anything with ethernet for connectivity is a NAS not a DAS, not an external HDD dock and tends to cost significantly more (maybe you have a line on a nice used one or something though). I was advocating for a DAS/external powered HDD dock (with fan). But a NAS would work fine for what you’re after as most of them do have RAID done by the NAS itself and configured via its software (often via a web page). For a non-networked DAS or similar you could do software RAID. Not something I have personal experience with so take this with a grain of salt but at most you might need to fiddle with some things like disabling quick removal/flagging the drives as removable in your OS of choice. On Linux especially I don’t see this being a problem.
So to be clear there are two categories of things here:
- NAS: connects via ethernet or wifi, a NETWORK attached storage device. Usually has a processor, costs more, runs some sort of specialty OS and can be configured
- DAS: desktop attached storage, aka a multi-drive hard drive dock. Costs less than a NAS, doesn’t have a processor, no networking capabilities, at most some can do hardware RAID with a switch on their case and you connect to it via a USB cable (typically USB-C to take advantage of full SATA 3 speeds).
OMG that was the piece I was missing. Every time I looked into NAS it felt like it was vague, but its literally about the connection type… damn that was simple. Ok, now I get what you’re saying perfectly. Thanks! Ok, so I was definitely looking for an external powered HDD dock which is connected by anything NOT USB. But that is sort of a non-existent thing? Is an external powered HDD dock always USB???
NAS is basically a mini-computer built around storage and serving up that storage over your network. Some of the more powerful ones offer transcoding (Jellyfin). DAS or HDD docks require a computer connected to them and on to serve up any files. This is why a NAS is going to tend to cost several hundred dollars.
External powered HDD dock with a fan would be best, you can technically add your own fan after (not as effective) but those with a built in fan are better IMO and you can get one for $50 for two drive operation (if you want one with hardware RAID support expect to pay more).
In the modern age basically all HDD docks or DAS units use USB. Why wouldn’t they? It’s ubiquitous, it has high speeds. There used to be a standard called E-SATA which was just an external SATA connection but you won’t find those on mini-PCs or basically any other PC made in the last 10 years and you’d need a specialty PCIE card on a full tower or at least mini-tower build to add one. It’s a dead standard. In thinking about this the options are basically USB or thunderbolt which just uses a USB-C connector so still USB really. Anything else is an exotic specialty connector.
I may have been a bit negative about USB but that’s only in comparison to internal connectors like SATA. For external connections USB is pretty great, pretty reliable and I’d worry more about the quality of external drives in their own enclosures from the factory than USB. Use USB with a good device like a reliable multi-drive dock with its own power and you’ll be good.
Ethernet is for networking so to enable it to transfer data you’d need a processor and some form of minimal OS on-board and at that point you have a NAS and might as well go all the way and build a proper NAS which is in fact all you’ll find. But a NAS does not require a separate computer for serving files. Cheaper ones may be too weak to do things like immich, jellyfin transcoding (direct-play of files would work), etc but the more expensive ones can.
(Note costs are increasing and shifting rapidly so always check things out yourself before deciding what is cheapest) Cost wise a mini-PC with USB-C multi-drive HDD dock or used recent office PC would tend to win by a lot both in absolute cheapest and performance per $. You can get a basic mini-PC with i5 or similar that can handle 4 video streams simultaneous for probably $500 plus $50 for this dock we’re talking about while a decent NAS that doesn’t have the same amount of processing power or the ability to expand to 2 or 4 more drives by just buying another dock for another $50 would probably be $600.
NAS have their place, they’re simple, relatively easy to use, dedicated devices for file serving and running some services depending on how beefy they are. Some can be upgraded with special caching NVME ssd drives to speed up file serving as well so on the high end a good NAS will tend to beat other solutions in serving files reliably, quickly, etc in a high demand environment. But unless you’re hosting Jellyfin for >10 people I wouldn’t worry about it as you won’t benefit and it doesn’t sound like you need to worry. So pick whichever seems most appealing from a cost and utility stand-point.
This is amazing info. Thanks so much. I think a powered dock with USB is then the path that I would prefer, but another person has almost convinced me to just make my gaming pc into a server itself, just wanna figure out how much extra energy that will actually cost…
But your help is amazing. I understand this hole in my knowledge so much better
Back just to thank you, I bought a bunch of stuff, but you set me on the right track. I just got an old enterprise pc and am gonna put some parts from my one in it and add HDDs. Without your advice I would’ve accidentally gotten like a NAS and a computer which was ridiculously redundant and expensive. But your knowledge piece probably saved me 500 bucks. Thanks so much
Is an external powered HDD dock always USB???
In this day and age, yes.
Why do you want external HDDs anyway?
Just because I wanted to do a mini pc for energy efficiency, and they won’t hold the 2 HDDs I had imagined for RAID1 configuration.
I do pretty much what you’re describing. Mine runs on an old Dell tower (poweredge?) server from eBay. I use Yunohost to install/manage all the server software/apps. It connects to the internet via wireguard proxy to a cheap VPS. I also have an offsite backup (also over wireguard) to a rpi with a big external hard drive.
without checking that I’m not way off the mark.
From your post, you seem ready for it. Go for it. The most important thing is to have it, and use it!
It’s always nice to have as much performance as possible, but the minimum specs you posted will work. You might run into issues with Jellyfin’s on-the-fly video transcoding if you go too slow, but you can work around that. Modern hardware can be suprisingly low-power, too. But don’t set yourself an arbitrarily low power limit; a PC drawing 40 watts only costs ~$50 a year to run continiously.
I am hoping a friend will allow me to (somehow? I don’t know how yet) keep a hub+HDD backup at their place which is updated weekly automatically whenever their computer turns on.
The approach I took is: a raspberri pi with a big hard drive plugged in to my parent’s router. All it does is auto-backup from my home server.
I know people are going to freak out about exposing a sever to the internet, and that definately is a risk. But honestly, what’s the point of the server if it’s not exposed to the internet?

I was definitely going to expose it to the internet, or at least through tailscale make it available remotely. I want to look at my pictures everywhere!
But is your raspberry pi running like docker and portainer instance? Or how did you do the auto-backup?
But is your raspberry pi running like docker and portainer instance?
Docker didn’t even exist yet when I first set it up, and so I never used it.
I did eventually upgrade to a Raspberry Pi 3. It just runs Debian and Syncthing to auto-sync a few folders. Nothing complex going on. I’ll ssh into it once a year or so when I’m visiting my parents to make sure everything is working.
Oh damn, you’ve been at it for a while. Impressed!
The best advice I can give is: make notes about how you set up stuff, so you can duplicate your work years down the line. I’ve updated hardware on my main server and my little remote raspberry pi twice, and I was very thankful that I took copious notes.
Damn I had a similar idea the other day after watching this
I probs have the slightly less knowledge than you by the sounds of it, but it gave me hope that it’s feasible
Waa a useful video! Im not American so that store was absurd to me lol. But the rest was cool and useful to consider
This is kinda relevant to my interests for similar things.
I was thinking of looking for an ex corporate standard atx PC with a pcie(x2? at least) and 4 sata ports. Slapping 4 refurbed spinning rust disks in a striped 2x2 setup for replication. Then just crossing my fingers that it won’t be too loud with an old GPU in there for video transcoding.
I mean how intensive can backups/home assistant and streaming to tops 3 devices really be?
I’ll give you a cute kaimoji for your thoughts
Thanks for the reply, but I think half of it went above my head :p Idk what a spinning rust disk is, is that just an HDD? And striped 2x2, is that just RAID 6?
I luckily have no desire for a home assistant or anything like it. Just streaming to tops 1 person at a time (we don’t watch much, maybe 2 at some point in the future). I just want it for the case I need it I guess lol.
I got one of these a few years ago: https://www.notebookcheck.net/Testing-Trigkey-Mini-PC-with-Intel-N100-16-GB-RAM-and-a-500-GB-SSD-for-less-than-200-USD.768945.0.html
If you can stretch it, I’d try to get 12 or 16 GB Ram, I run all these programs on it and it usually hovers around 6-7GB usage.
You can probably skip using the gaming PC for immich, i added about 300+GB to Immich and the machine learning stuff took less then a day to process them all. (Using HWA on the integrated GPU).
Also for your HDDs get a powered HUB, these mini pcs can handle 1 external drive and a second one will usually drain too much power. (It took me several months to figure out why it was randomly crashing)
I plan on having them running, but I doubt many will get much use except for Immich. We aren’t a very tech-using or media-watching family! Powered HUB is very good advice, I hadn’t really considered the power problem for the mini pc
I basically have that setup and some VPSs for network tunneling. Lenovo Tiny Thinkcenters are great, they’re silent, small, and powerful. Plenty of ports, WiFi and wired nic, nvme storage and can get up to 32GB or ram in some models. I love’m!
I run immich, jellyfin, the full arr stack, calibre web, audiobookshelf, opencode web, and some small personal projects with very little issue. Runing Ubuntu Server LTS.
I use pangolin for reverse proxy and tunneling, really easy to use and configure.
Great stuff here, what is reverse proxy and tunneling, like Im a 2 year old? I know cybersecurity but some of these terms just fuck me up lol
Hey im back now that im much further, but what does your full arr stack look like? I think im getting caught up on terminology but I feel like im missing pieces to make it work









