Hey everyone! I’m completely new to self-hosting, but I’ve become convinced of its benefits and would like to get started in the near future. I’m still trying to figure out which hardware and software would be the best fit for my needs, so I’d really appreciate some advice.
What I’m looking for:
- I live in the EU and want to move away from US-based and other non-EU cloud providers, which is one of the main reasons I’m interested in self-hosting.
- I want to de-Google my digital life and replace services like Google Photos, Google Drive, and Google’s contact and calendar syncing with self-hosted alternatives.
- I’d like to automatically back up photos from my phone, sync files, contacts, and calendars, and access everything remotely.
- I want to avoid proprietary operating systems and vendor-specific apps as much as reasonably possible, ideally relying on open-source software.
- (Eventually, I’d also like to consider hosting my own email server, although I’ve heard that this comes with quite a few challenges. This isn’t a priority for now.)
- I don’t want to become a Linux or server administration expert just to keep everything running.
A little more context:
- Users: Just two people.
- Workload: Mainly file storage and syncing, photo backups and management, contacts, and calendars. No video editing, media transcoding, or other particularly demanding tasks.
- Budget: Around €500–800 for the NAS itself, excluding storage drives.
- Hardware preference: I’d prefer a compact, reasonably power-efficient, ready-made NAS rather than building a full PC, mostly due to limited space.
- Technical experience: I’ve been building my own PCs for almost 30 years and consider myself an advanced Windows user. However, my last real Linux experience was with Ubuntu about 20 years ago.
- Internet connection: 250/40 Mbps DSL with a public (dynamic) IPv4 address and a FRITZ!Box 7590 router, which supports WireGuard VPN.
Here are my main questions:
- Which operating system would you recommend? I’ve been looking into TrueNAS Community Edition and OpenMediaVault, but I’m open to other suggestions. Ease of use, stability, and low maintenance are important to me.
- Would a prebuilt NAS be a good choice? I’ve been considering devices like the UGREEN DXP4800 Plus and TerraMaster F4-424 Pro. Can their proprietary operating systems be replaced with something open-source without losing important functionality, such as fan control, power management, or hardware monitoring? Are there particular models known to work especially well with TrueNAS or OpenMediaVault?
- How much hardware performance do I actually need? Given my relatively modest requirements, would something like an Intel N100 already be sufficient, or would it make sense to invest in a more powerful CPU and additional RAM for future flexibility?
- Which software stack would you recommend? I’m currently considering Nextcloud for files, contacts, and calendars, and possibly Immich for photos. I’d prefer solutions with reliable automatic syncing and open-source Android apps.
- What should I consider regarding backups and remote access? I’m planning to use WireGuard for remote access, but I’d be interested in recommendations for a simple, reliable backup strategy as well.
I’m happy to learn new things and follow technical guides, but I’d prefer a system that doesn’t require constant tinkering once it’s set up.
Thanks for reading, and I appreciate any suggestions or experiences you’re willing to share!
Removed by mod
It sounds like you just wants Nextcloud and maybe Immich. So here’s my suggestion:
If you don’t have a domain yet, buy a domain. Preferably through Cloudflare because their API is good, and you’ll need that. Point an apex A record at your public IP address.
Set up something like Kubuntu on the box itself. Make sure it has a static IP address (you can also do DHCP reserved through your router, which is safer), and forward ports 80 (TCP), 443 (TCP), and 51820 (UDP) to that box.
Now comes the magic. Install docker through the official installation docs for Ubuntu (don’t use Ubuntu’s packages). Create a folder in your home directory called “services”. Inside this folder, you’re going to set up a folder for each service you need. The first one you should set up is “nginx-proxy-manager”. Inside each folder you’ll have a “docker-compose.yml” file. Inside that file, set up your docker compose stack. Nginx Proxy Manager’s is pretty simple. Just one service. But change the network mode to “host” (
network_mode: host), and remove the ports section.https://nginxproxymanager.com/setup/
Now, from a terminal, in that folder, run
docker compose up -d. Get used to that command, you’ll run it a lot. Then go to localhost:81, and create an account for NPM. Use a real email address, because that’ll be your contact email for Let’s Encrypt ssl. Go into the ssl settings and create a certificate. You’ll need an api key from Cloudflare, or whatever other place you bought your domain from. It needs access to change the dns settings for your domain. Use this format to create your certificate:example.com, *.example.comAnd use the dns challenge option where you’ll put your api key.
[continuing in next post]
From now on, whenever you set up a service, you’ll use a subdomain just for that service (eg nextcloud.example.com), and you’ll point it in dns as a CNAME record at your apex domain (usually just an @ symbol in the input box). You’ll then (if it’s a web service) create a proxy in NPM pointed at whatever port you give it.
So now you wanna create a WireGuard vpn, so you can securely access your own stuff from your own devices outside your house. (I’d recommend not opening every service up to the internet.)
https://github.com/linuxserver/docker-wireguard
That one can be tricky, but ultimately you should have a file (or QR code) that you can put on your phone in the WireGuard app that will give you vpn access. Remember to set up a CNAME for your subdomain (something like vpn.example.com). Although, for this, it would be fine to use the apex domain.
So now you can set up a Nextcloud and an Immich stack. Put them on an unused port, then point a proxy for their subdomain at that port (http://127.0.0.1:2201/ or whatever), add your SSL cert, and you’re good.
[continued…]
Edit: I just saw you said your router supports WireGuard, so you don’t need to worry about setting that up or forwarding that port. :)
In NPM, set up an access list like this:

Last one should be your public IP address, with “/32” on the end.
Use this access list for all services you don’t want the wider internet to see (probably all of them for you). With this setup, you can still open a service, if you want, but normally you’ll need to be on your VPN to see it from outside your house.
Here’s an example of what a proxy host should look like:

(Except your access list should be the local only one you set up earlier.)
And the SSL tab:

Every once in a while, you should run these commands in each services folder:
docker compose pull docker compose up -d # check if everything is still good docker system prune -aYou should also back up your services folder regularly. That’s beyond the scope of this Lemmy comment, though
If you have anything open to the internet (not using that local only access list), you need to be very vigilant about updating it frequently. If you’re not, you could have vulnerabilities that are exploitable.
By setting it up where NPM is blocking access to everything that isn’t local, you won’t really need to pay much attention to it. Just do the updates every few months and you’ll be fine.
I’m building almost exactly this as an N150 box, so take this with that bias. For photos, files and contacts, Immich plus Nextcloud on Debian will cover you, and an N-series board idles at a few watts. The part that bit me was updates breaking things, not the install. What’s your limit for maintenance, an hour a month?
Get a used PC. Absolute sufficient for a private NAS. Can be slighly outdated, needs no monster graphics card (or none at all if it has basic on-board graphics), and runs all the peripherals you’ll ever need.
I endorse TrueNAS, mainly because ZFS. You want ZFS, I will go so far as to get on a video call with you and go over why, if I need to convince you. I used FreeNAS, the old name for the gratis, BSD-based TrueNAS, and it was brill. There are some very good videos on Youtube made by Allan Jude at Klara Systems if you want to dive in yourself.
I run my two servers on old PCs, and I echo that recommendation. You want room to expand your disk pool when needed, and you want as many cores and as much RAM as you can afford. If you don’t have ECC ram, it’s not a big deal for your files, as long as you’re running ZFS, but I would stick to containers rather than full VMs for your services. I have been using Docker, saved as Compose files, for most of my self-hosted stuff for years, and it’s nice cause I can basically nuke the server anytime Iike, import the zpool, and go start the services right back up.
I run straight Debian & FreeBSD nowadays so I cannot say what exact features are on TrueNAS these days, but ten years ago they had an easy GUI for setting up Jails (the BSD version of containers, sorta, it predates them I believe…), so I would assume that current TrueNAS does the same for Docker on some level.
Old PC running TrueNAS, that is the way.
I run on old PCs also. Though, I use Proxmox (proxmox uses ZFS, and now that I have expanded to 3 old mini PCs, they can cluster). Not claiming it is superior, it’s probably slightly more complicated, but it works for me. (Also, given the RAM situation, 3 essentially free mini PCs can hold more old salvaged RAM dimms, for more VMs, and redundancy/availability.)
The Proxmox is on the bare metal, then VMs run the heavy applications solo, or docker for stacks of lighter apps like *arr.
(VMs prevent kernel panic from hitting the host, but containers are lighter, it’s a case by case thing depending on the application/risk. I have had a container take down the host, but for most of us it’s not like we are running critical applications, it’s not a huge deal if you just run containers.)
Just want to give an alternative to Docker here: Yunohost. It’s very easy to setup and use, and while it doesn’t have the infinite number of “apps” that Docker makes available, it has served me very well. The project is also based in Europe :)
A couple of months ago I installed Yunohost on an old laptop for the same use case as OP and I find it is very easy to use. The hardest part to setup was mostly the dynamic DNS stuff, because I only have a basic understanding of how the internet works. Once I got (sub)domains and dynamic IP setup it has been smooth sailing.
Yunohost even had a patch for the global panic inducing PHP2Shell the same day as the announcement.
People tend to overbuild their home system.
You can start small and as you gain experience and maybe add more servers in docker you might want to upgrade. I.e. I was file hosting on a pi4 and external drive for years with no issues. (Upgraded hardware later for Immich)
And you will want Immich (in docker ) for replacing Google photos.
But since your workload is low a NUC or small form factor PC would be fine, as long as it has space for how many drives you plan on adding. You won’t need high end computing.
OpenMediaVault was great, and made some stuff easy. But now I just use Tumbleweed and docker for more flexibility. Any Linux distro will be fine, you don’t have to use a NAS based OS, unless it has certain features you would find useful.
Casual user here and by far no experts. Just wanted to leave my 2 cents about OMV and starting a homelab. At the beginning with OMV, it was nice to have everything tied up into one space with an gui but as time progressed I had more and more problems to do the stuff I wanted, like Home assistant VM with specific network settings. Maybe it was the lack of experience at the time but I switched to plain Debian and had no headache since.
About the Hardware, my first plans were just backup pictures from phones so I went with an used Lenovo SFF 7th gen Intel with 16GB. With time it’s escalated to Nextcloud, jellyfin, paperless ngx. Idle is still around 15W and only paperless hammers the CPU when importing scans. The only downside off the SFF is the lack of space.
My advice for the hardware would be to start small and cheap, preferably used. With some time you will see what you really need and have the experience to make it happen.



