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:

  1. 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.
  2. 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?
  3. 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?
  4. 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.
  5. 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!

  • JTode@lemmy.world
    link
    fedilink
    English
    arrow-up
    3
    ·
    7 hours ago

    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.

    • zarathustrad@lemmy.world
      link
      fedilink
      English
      arrow-up
      2
      ·
      6 hours ago

      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.)

  • lemmyvore@feddit.nl
    link
    fedilink
    English
    arrow-up
    8
    ·
    9 hours ago

    want to move away from US-based and other non-EU cloud providers

    https://european-alternatives.eu/

    Which operating system would you recommend? I’ve been looking into TrueNAS Community Edition and OpenMediaVault, but I’m open to other suggestions.

    Unraid is a very solid choice. You need to pay a yearly fee for the upgrades but it’s very easy to use and suited for more than just storage (but also makes storage very easy).

    I’d prefer a compact, reasonably power-efficient, ready-made NAS rather than building a full PC, mostly due to limited space.

    This goes against your preference for open software, because all ready-made compact NAS appliances will come with proprietary software and proprietary hardware… because that’s their business model, tying you to their products.

    Regarding power, you’re not saving as much as you think when you consider that the HDDs will take the lion’s share. It doesn’t really matter if the base system consumes 4W or 20W in idle if the HDDs consume 15W/drive.

    If you’re an experienced PC builder this is a no-brainer. Building a PC lets you replace components separately and get away with buying used and off-the-shelf.

    Choose a case with the right amount of (dampened) HDD cages (I prefer Fractal Design but there are others) and a quality power supply. The motherboard should also have an appropriate amount of SATA connectors. The CPU is not terribly important and can be a decade old. In fact you can get away with buying a used kit. You don’t need a lot of RAM, even 8 GB will do (but if you can get 16 or 32 that’s nice too). Same for the system SSD, it can be as low as 64 GB or even lower.

    How much hardware performance do I actually need?

    Depends if you have specialized usage. For example if you want to do AI on the CPU. Or if you want to do video transcoding. If you don’t, anything will do.

    Which software stack would you recommend?

    A dedicated CalDAV/CardDAV server for contacts and calendar/tasks. Radicale and Baikal are the most popular.

    Immich for photo organization (albums, sharing, face recog, semantic search) and photo backup. Basically it was designed to be a great Google Photos replacement.

    Personally I would avoid Nextcloud, it’s a beast. I would definitely not tie important stuff like calendars into it. Strictly for files may wanna look at alternatives like Seafile or OpenCloud.

    For file sync most people use Syncthing but I don’t like their mobile (non-official) support. Personally I prefer FolderSync + SSH.

    If you get into media libraries then Jellyfin can cover video, audio and books too, but there are also other specialized ones for music and books.

    What should I consider regarding backups and remote access?

    Not sure why you’re conflating these two.

    For remote access if you’re not behind CGNAT at the ISP then VPN (Wireguard or OpenVPN) and/or SSH is the most secure.

    Tailscale is a good alternative, it works behind CGNAT too, and it has a bunch of other interesting features like exit nodes. Look into it. It’s a “mesh VPN” that uses open source clients with a central server that facilitates the pairing from behind NAT. The connections themselves are always private.

    If you have to expose HTTP services over the Internet you must get a domain, reverse proxy, HTTPS certificates (with auto-renewal, most reverse proxies will help with this) and mTLS is the best security option. But keep in mind very few mobile apps support mTLS (Immich, DAVx5, Ntfy do).

    For backups, first of all use a proper backup tool like Borg or Restic, not sync tools like Rsync. You want your backup tool to offer integrity checks, recovery, encryption, deduplication and compression, sync tools offer almost none of these.

    Secondly, look into 3-2-1 backup strategy. Affordable backup methods for home use include backup “cold” HDDs, Blu Ray optical discs, and online storage subscriptions. Borg/Restic include support for transparent online backups too.

    You don’t have to backup everything. Categorize your data and figure out some priorities. Usually the truly important data is not very large.

    RAID and other forms of storage redundancy are NOT backup, they’re mostly about keeping services going during drive failures. If you have to work with limited amount of drives I would prioritize backup over redundancy.

    EMAIL:

    You don’t have to self-host the sending and receiving of email to retain control over it. It’s in fact very hard to do that.

    What you need is to choose a good domain for your @ addresses, on a long-lasting TLD (preferably an EU ccTLD, perhaps your own country’s), and an email provider (see the link at the top) that offers SMTP and IMAP without any shenanigans.

    You can use IMAP to sync your online mailboxes constantly at home, and also use IMAP to check your online mailbox with any email client, and use the provider’s SMTP to send mail. Any decent provider will supply you with the DNS records that need to go into your domain setup so you can use them.

    If you ever want to switch provider it’s as simple as signing up with another and changing your DNS records.

    You can if you want self-host an IMAP server and a webmail client at home on top of your local email archive, so you can search through old emails, and so you can delete them from the online mailbox so you can reduce your online mailbox size (and perhaps pay less). Just as long as you don’t try to self-host the ability to send and receive.

    Other things you might want to look for at a provider is alias capability, or at least a catch-all. Helps a lot if you give each different online account its own different email address, and never give out your real address (the one you use to login to the email server).

    Most email providers will tax you per mailbox and for things like aliases. IMO that’s bullcrap. Personally I prefer a provider that allows for unlimited mailboxes and aliases and taxes for tiers of storage space and emails sent/received. Migadu is one such European example. For two people YMMV, either model might be ok. When you have more than two accounts the unlimited model can become much cheaper very fast.

    Things you may not have considered:

    Look into a reverse proxy and getting a domain + HTTPS certificates for it, and putting your services behind it at addresses such as https://cal.example.com/. It will make your service consumption 100x better.

    Also consider your home router. Is it a capable one? Most people overlook this completely, but a good router can help immensely with self-hosting for things like DNS, VLANs, port forwarding, having stable IPs for servers etc. You can flash a cheap router with OpenWRT and get excellent features out of it.

    If you need notifications, or sending messages+attachments across devices, or action buttons, Ntfy can either be self-hosted or used through their public service.

  • Treczoks@lemmy.world
    link
    fedilink
    English
    arrow-up
    3
    ·
    8 hours ago

    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.

  • hperrin@lemmy.ca
    link
    fedilink
    English
    arrow-up
    11
    ·
    edit-2
    1 hour ago

    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.com

    And use the dns challenge option where you’ll put your api key.

    [continuing in next post]

    • hperrin@lemmy.ca
      link
      fedilink
      English
      arrow-up
      4
      ·
      edit-2
      44 minutes ago

      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. :)

      • hperrin@lemmy.ca
        link
        fedilink
        English
        arrow-up
        4
        ·
        edit-2
        11 hours ago

        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:

        • hperrin@lemmy.ca
          link
          fedilink
          English
          arrow-up
          5
          ·
          edit-2
          42 minutes ago

          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 -a
          

          You 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.

  • flilare@piefed.zip
    link
    fedilink
    English
    arrow-up
    9
    ·
    11 hours ago

    I repurpose old PCs, not the most power efficient, or convenient form factor, but I can put a ton of drives in without a second thought, and the hardware is free to me.

    I used Freenas for a while til I wanted more flexibility, then Proxmox for a long time with everything on separate VMs, but as my services became set I eventually swapped everything onto a plain Debian install.

    I use Syncthing instead of a real cloud sharing option. I’m home every night, and it can grab different folders easily, and ‘sorts’ stuff for me.

    I like Docker containers for nearly everything else. I particularly like the Wireguard-easy container project on github, and that’s currently the only hole in my firewall.

    My kids like having navidrome for music, I like Jellyfin myself. And I tend to get carried away since I’ve got a whole PCs hardware to play with so I spin containers up and down just to play sometimes. I’ve had Orcaslicer in one before, accessible to the network, lol.

  • electric_nan@lemmy.ml
    link
    fedilink
    English
    arrow-up
    2
    ·
    8 hours ago

    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 :)

  • nixFREAK@sopuli.xyz
    link
    fedilink
    English
    arrow-up
    8
    ·
    11 hours ago

    Honestly I really like using Open media vault

    https://www.openmediavault.org/. It’s a slimmed down version of the updated Debian distro, and is very user friendly for setup and maintaining. Active community and constant updates. I use Seafile, MStream, calibre, and soon Yggdrasil for mesh VPN. I use NFS, Nginx proxy.

  • alexquiniou@lemmy.zip
    link
    fedilink
    English
    arrow-up
    4
    ·
    11 hours ago

    I can recommend for you Jonsbo. Those cases are small and pretty. Search for Jonsbo from N1 to N6. From small to big.

    For the motherboard you can use an asrock one or Asus one with intel N processor. Your electric bill will thank you later. And you can slap 32gig on those motherboards.

    • non_burglar@lemmy.world
      link
      fedilink
      English
      arrow-up
      1
      ·
      6 hours ago

      I have the jonsbo n1 sitting in a corner, because it is a poorly-designed case with awful ventilation. I don’t know about the other iterations.

  • BCsven@lemmy.ca
    link
    fedilink
    English
    arrow-up
    1
    ·
    8 hours ago

    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.

  • hitmyspot@aussie.zone
    link
    fedilink
    English
    arrow-up
    3
    ·
    11 hours ago

    While I get the desire to degoogle and only use open source, it’s a pretty tough journey with a relatively steep learning curve, depending on your technical skill and knowledge. I would suggest looking at the pre-made and keeping their proprietary software as your starting point. Get your docker apps going, with everything backed up and degoogled and your own personal cloud. Then in the future, you can just transfer the data to a more open version.

    I use synology and have been really happy with it. Haven’t been so happy with them, trying to force the use of verified drives only, but they backed down. They have a lot of functionality built in and their modified version of Linux works well and offers a lot of the google type cloud functionality out of the box, I haven’t used terramaster or ugreen. My understanding is their software and particularly docker support is poorer, it that was a few years ago. You’ll find devolving is a process, so don’t feel a need to do it all at once.

    Just moving from windows to Linux made impromenets for me in terms of connecting to my nas, as nags rather than samba was automatically an option. Synologynhas built in remote access for a bunch of apps through their dynamic dns services, with easy letsencrypt workflows with wizards. Wireguard allows similar access to any docker apps. However, I’ve found it useful to be able to log in and download files from computers not in my wireguard network.

    If you have an old laptop, or PC you could start out using it instead of a dedicated nas, which is just a stripped down pc. You would then just put true as or media vault on it.

  • Tolstoy@lemmy.world
    link
    fedilink
    English
    arrow-up
    3
    ·
    11 hours ago

    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.

  • Destide@feddit.uk
    link
    fedilink
    English
    arrow-up
    2
    ·
    11 hours ago

    Freenas and Openmedia vault are great free options. Unraid is possibly the most polished though it has a one-off fee.

    OMV/unraid is a good place to start you’ll learn more docker than linux tbh as they all run a lot of that stuff under the hood. Until you start getting to know what you want from your boxes.