I have a dedicated vm for things that are crucial to the home network, either latency-critical or network related.
That’d be my dns resolver (I enforce it over VLANs by hijacking anyone trying to do DNS to other resolvers, like random IoT devices), homebridge for less important home automaton and my own matter controller for most important home automaton (controlling the lights).
My router of choice is RouterOS in another VM. I tried opnsense, pfsense, vyatta, and a bunch of others (even a containerized Cisco route), and I settled on ROS, because it was the only one who could do IPv6 properly (apart from Cisco, but that has other issues).
For the less important things I run them on k8s and really, there are only two bits worth mentioning as essential: ArgoCD and nixhelm. Together, they provide effortless and mostly automated software updates with very easy rollbacks. I don’t have to go and manually update every single bit of software and that saves huge amounts of time.
The only one I haven’t seen mentioned here that is a requirement for me is OPNsense. I’ve been using it for a couple years, and pfSense before that for a very long time. Never going back to commercial routers and their shitty / buggy / backdoored software. I highly recommend OPNsense over pfSense for the UI improvements alone, but there are other reasons to use/support OPNsense over pfSense.
On my network it handles internet firewall, internal firewall, and all routing across 5 VLANs and between two internet gateways. It does 1-1 NAT for my public IPs, inbound VPN, outbound VPN for my *arr stack, and RDNS blocklists with the data source being a script I wrote that merges from several sources and deduplicates the list. It is my internal certificate authority (I don’t miss you at all, Windows CA), DHCP for the guest wifi, and does pihole-like ad blocking via DNS for my entire network. And it does all that running in a VM with 2GB of RAM, of which it only uses about 60% on my install.
It is an incredibly powerful tool, not terribly difficult to learn, has a pretty damn good UI for FOSS, and in my opinion is a fantastic foundation for a complex home network / homelab. Unlike pfSense, which corrupted itself twice over the years I ran it, it has never let me down. And every update has been painless over the years.
Second OPNsense. pfSense also is maintained by some pretty shitty individuals.
In terms of most used for me, it would be:
- Nextcloud: contains my contacts, calendar, and photos synced with my phone, as well as access to files on my server from any web browser.
- Home assistant: both automated and remote control of your lights, thermostat, etc.
- Audiobookshelf: only really useful if you have an audiobook collection
- Vault Warden: self-hosted bitwarden. Not really all that important to self-host, since a bit warden’s clients are open source.
- Frigate: only useful if you have security cameras.
- Navidrome: only useful if you have a music collection.
- Jellyfin: only useful if you have a movie / TV collection.
Pi-hole. Get rid of at least some ads on the network level. Maybe add unbound for a faster DNS response.
A reverse proxy, in my case Caddy.
I use my searxng instance several times a day.
DNS server/cache/pihole. If that goes down I can’t browse anything.
I also selfhost a SaaS that I built. It’s essential to me that it’s available to my customers although I don’t use it personally.
Immich/PhotoPrism/whatever you use for image backup. Cloud providers are snooping through your shit.
Plex/Jellyfin for streaming
Sonarr, Radarr, Prowlarr, SABnzbd, qBittorrent to support the streaming service(s)
vaultwarden, jellyfin, freshrss, nextcloud, and wireguard
How is fressrss?
I am also running readarr and bookshelf
It’s perfect, better with themes
Jellyfin/Plex like many have mentioned.
I personally like Syncthing for petty much everything else. For general file syncing of course. But also with Joplin pointed to a synced directory for notes. With keepass as a password vault. With synced config directories for some apps across devices like newsboat for RSS, and neomutt for email. I also used to use it with rtorrent via a watch directory, though I currently am using a seedbox for that purpose.
VPN (openvpn/wireguard) is a good idea if you want to access your services outside your local network, without exposing them all globally.
I believe Syncthing has been discontinued unless someone else took up the project.
It doesn’t really look dead anywhere on their repo or website: https://github.com/syncthing/syncthing Or are there different things with the same name? :)
Syncthing discontinued its android app on the play store.
My most frequently used are most likely vaultwarden, Memos, Trilium, Jellyfin, Frigate, Traggo, and beaverhabits. Also AdGuard and NPM but I don’t interact with them.
Oh yeah and freshrss
And! Nextcloud and Baikal. NC only for storage and Baikal caldav and carddav
I’m curious, is there a reason you use Baikal over Nextcloud for cal-/card-dav?
I would probably be happy to not have to run an additional service, so I would have to have good reasons to run Baikal next to Nextcloud. Then again, if I had already setup Baikal and then, sometimes later, Nextcloud, There would probably be a great span where I ran both :D
It’s not very exciting, but: Network UPS Tools (NUT).
Keep everything in good shape in the event of a power outage.
For me, the most essentials are definitely:
- PhotoPrism
- Jellyfin
- Navidrome
- Wiki.js
Audiobookshelf, Calibre-Web, Plex/Jellyfin, FreshRSS, NextCloud, DokuWiki.
Depends on the situation of course, but for us:
- immich: family photos are important
- docker + ssh: we enjoy hobbying with code, nerds be nerds
- samba: a file sharing protocol that works on all of our things
Gitea, wger, jellyfin, samba, *arr stack, jellyseer