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)
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.
I understood some of those words. It make network go?
It make network go very good.
Second OPNsense. pfSense also is maintained by some pretty shitty individuals.
Yeah I hinted at it but didn’t feel like going into it. It’s why I switched though, and happily I found OPNsense to just be better anyway.
Why “shitty individuals”?
https://web.archive.org/web/20160314132836/http://www.opnsense.com/
This was the website that pfsense maintainers made as soon as OPNsense was announced. They sniped the name, derided the project and only ended up handing over the domain after they were legally compelled to.
One person affiliated with Netgate in particular can be seen around forums and social media and has serious axes to grind. He’s… not pleasant.
Add to that Netgate’s practices (IIRC secret proprietary blob required to build pfsense, double-check that fact / unremovable installation tracking) and the picture painted is one of petulance and anger.
[edit] oh yeah, and this gem! https://arstechnica.com/gadgets/2021/03/buffer-overruns-license-violations-and-bad-code-freebsd-13s-close-call/
Damn, now I get where is your “shitty individuals” coming from. Thanks for the info.
I highly recommend OPNsense over pfSense for the UI improvements alone, but there are other reasons to use/support OPNsense over pfSense.
Can you list or summarize some of the other reasons?
Eh, I’ve forgotten a lot of the details and it’s drama that I don’t care to relearn about. Easy to find online with some basic searching if you want to read about it.
Thanks for that info, @[email protected]
Went to try pfSense. Need to register to their shop to buy a free download link.
Then during installation it won’t install unless it can phone home and report.
OpnSense all the way.
That’s new, it didn’t used to do that back in the days when I used it but that was a couple years ago. Sounds like it’s just getting worse.
How many NICs do you have on your opnsense machine?
It’s a VM so technically none I guess, but my hypervisor hosts have a 4 port gigabit card and a 10 gig fiber card, plus another gigabit port on the motherboard.
OPNsense is using 6 interfaces, 2 WAN and 4 LAN, but it’s all virtualized.
I’m still using pfsense and considered switching over to opnsense but I found out it doesn’t have something similar to pfblocker.
No one’s mentioned Forgejo yet? Solid git and artifact repository.
vaultwarden, jellyfin, freshrss, nextcloud, and wireguard
How is fressrss?
I am also running readarr and bookshelf
It’s perfect, better with themes
Any themes you specifically recommend? I just use native apps on my phone and laptop, but it would be nice to improve the theme when I administrate.
I’m using Mapco now but was previously using Swage. There are 11 options. Just fun to switch it up! I’m sure you can make your own as well but the options are an attractive change :)
I used freshrss for quite some time, but the themes always looked a bit “off” for me. Went to miniflux and its awesome in its minimalism.
Pi-hole. Get rid of at least some ads on the network level. Maybe add unbound for a faster DNS response.
I like AdGuard Home myself.
Using unbound on opnSense with blacklists. Works wonders and do not require an additional device.
I use unbound with pi-hole inside an Ubuntu lxc container. No additional device needed.
Pi-hole can run inside a docker container no problem. In fact I have it running on my unraid server that way.
I keep one in a docker container and one in an actual pi, that way I can perform updates and upgrades without interrupting DNS service at the house.
This is the way.
In no particular order, the most essential ones are those I constantly use throughout my day and also weekly.
Proxmox holds all of these in different LXC’s and VM’s
- Home Assistant
- Pocket-ID - https://github.com/stonith404/pocket-id (Exclusive Passkey login system as in -no un/pw just your Passkey which - doubles as an OIDC provider)
- Homepage (By Ben Phelps of gethomepage.dev)
- Vaultwarden
- TechnitiumDNS which handles all of my DHCP and Adblocking in a one system, extremely capable software especially useful for SOHO too.
- Baserow - Airtable alternative. It holds certain items of importance like what MAC address each device in my home network holds and what IP It uses in an intelligent view. I also was using it for a while to log issues with my sleep where I deal with insomnia, so I logged how well I slept, how many times I woke up, how long it took me to fall asleep etc. That was a simple form I created using drag/drop in Baserow and called by a URL.
- OpenVSCode server - makes editing my Homepage (above) yaml and my docker-compose files a breeze! It’s especially nice when you edit it something and it auto saves almost instantly. Makes some of my services change in real-time!
- UptimeKuma - Simply one of the best out there for me
- Gotify - I get alerted to my Tuya based dehumidifer tank being full via Home Assistant, Downtime alerts from UptimeKuma and a variety of other services which I deem higher priority alerts over “fix when you can” ones.
Aside from that, i do have other services I use every so often like Memos, Joplin Server (holds most of my notes), Pingvin and a few others.
+1 for UptimeKuma. Works great.
I tried Baserow a while ago but decided not to use it because it started downloading the application after running the container and required an online account (that could also be NocoDB). How has your experience been after using it for longer?
I had to create an account as per the usual process for these types of apps, but it was all local. I never had to do one to connect to their servers. I know it generates a unique instance ID which I believe phones home to their servers but I don’t mind personally.
As for my experience, a lot of it is locked behind their paid plans, so I just keep it limited to what I use which is fine. I do like it as it does better than NocoDB for my needs (the input forms is what I needed) and it does better there. I don’t recall the other reasons for not using NocoDB otherwise, but it’s a long while.
Their pricing is here: https://baserow.io/pricing
So, that’s mostly what is locked behind. My sleep form I built which feeds the database:
Overall, it does meet my needs so that’s all I ask. :)
Does Technitium support DNS rewrites like Adguard Home?
I’m about 99% sure it does, I don’t use it that way but It does allow DNS zones. For example:
It’s a lot more technical then Adguard Home for sure. Both work just fine though, I came from Adguard Home as I use a PXE server to provision some of my devices and Technitium is super easy to configure that.
Paperless-ngx
The rest is already in the other comments
A reverse proxy, in my case Caddy.
How did you set up you SSL certificates, are you using a self signed certificate or do you use a custom subdomain?
Caddy automatically sets up certificates for you. Since I don’t want my subdomain to appear in certificate transparency logs, I use a wildcard certificate which requires using a plugin for my DNS provider.
Thanks, that sounds good. Can you explain more how you used the plugin for the wildcard certificate?
To get a TLS certificate from Let’s Encrypt, they need to verify that you are in control of your domain. For regular domains, this can be done via HTTP, for wildcard certificates they require you to create a DNS record with a special token to verify ownership of the domain.
This means that in order to automatically obtain a TLS certificate, caddy needs to interact with the API of your domain registrar to set up this record. Since there are many different providers, this isn’t built into caddy itself and you require a version that includes the corresponding caddy-dns module. Caddy modules need to compiled into the binary, so it’s not always trivial to set up (in my case I have a systemd timer that rebuilds a local container image whenever a new version of the docker.io/caddy:builder image is available).
Duh, you need a reverse proxy to host most of the stuff (if you want to run more than 1 service and use HTTPS). I use Traefik btw, though I heard Caddy is very easy to use.
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.
Gonna also throw in: Nextcloud Memories.
It makes the photo organizing part of NextCloud AMAZING. I’m so happy I got to dump Google Photos for good.
Did not know about this, but it’s exactly the extension I was looking for! Thank you!
I’m so glad it was helpful! You’re very welcome! I try to spread the word since NextCloud’s default photo app…scares people away frankly lol.
I now use an extension to customize the menu, so Memories effectively replaces the default app from a user point of view.
Using Memories in Nextcloud AiO simplifies things a bit, but I seriously consider it NextCloud’s “killer app.” It’s got EXIF editing, albums, user sharing, folder organizing, facial (and object!) recognition done locally, geo tagging map view…all local. The face recognizing stuff isn’t perfect, but it’s definitely good enough for the most part.
It’s also very easy to send to people outside NextCloud, but I run it behind TailScale so it’s not exposed to the open net at all. Copying and sending images through something like Signal also works fine. :)
It even has a neat Android app that sends my pictures to my server whenever I plug my phone in. (And moves them to my SD card in case something goes awry…but I learned I need to manage the cleanup of that part better lol)
Given all the other neat things NextCloud does, I like how it keeps photo managing in one place too.
Audiobookshelf also supports podcasts (and ebooks, but I haven’t tested that).
Podcasts are my primary use case (my partner uses audiobooks exclusively), and while it works rather well, I want to put in the caveat that there’s no working playlist functionality in the app, and IME headset controls don’t work from FF for Android.
That’s not a deal breaker for me, but it was a massive disappointment when I switched over. But the lack of playlist functionality in the app only annoys me when I want to follow one of the shorter news feeds, since I have to stop and select the next track every 5 min as the episode ends. No issue with that feed from the browser, so meh.
Works great through my reverse proxy/cloudflare tunnel setup, so not too many actual complaints.
There’s a player queue functionality (which works kind of like a playlist) but I don’t think it transfers across devices. But you can at least queue up a bunch of tracks on a device.
I’ve tried to use the playlist feature on my device a couple of times, but I still had to manually start the next episode. I might try again and see if I can figure it out.
Edit: no change in behavior sadly. Created a playlist and hit play, still had to select the next episode. Played the same playlist from the web client and it goes to the next episode, but headset controls don’t work.
Maybe post an issue report on their github. The queue function does work on desktop at least (the web client), but I don’t bother with playlists.
Do you have any experience with the dedicated Audiobookshelf app?
The Android app works well. I rarely have issues with it, except when switching back and forth between the web player and and the app, when it sometimes doesn’t properly sync progress fast enough.
Yes, the android app is my preferred method of accessing my server. It works great, other than on rare occasions when it gets killed in the background for some reason, and my complaint about playlists from the previous comment is a much bigger irritation, but a very minor complaint.
Cool, I didn’t know. Going to try it out.
Audiobookshelf also finds, manages, streams podcasts. After Google killed off Google Podcasts, ABS has been an even better replacement in my experience.
Jellyfin is also useful for music collection. I tried both it and Navidrome to start with, and ended up only using Jellyfin.
Depends on what your usecase is for what is “essential.”
I think keeping household documents, taxes, medical bills, etc… In a local only paperless-ngx instance is quite essential to the organization of a household where everything is searchable and able to be organized on multiple levels compared to a simple document folder on 1 computer.
Having a document or self-hosted wiki with an in - case - of - death document that gets backed up in an encrypted, but accessible by family place is probably the most “essential” thing.
- AdGuard home (usable also as private DNS on Android)
- JellyFin
- Homeassistant
Arr stack plus Jellyfin/Plex, Nextcloud and Gitea.
Nextcloud, vaultwarden.
Nextcloud.
I was hosting nextcloud at home for years. Then when I worked in a Datacenter I got to host some servers there from free so I set up a two-node proxmox with nextcloud and some other stuff. Now I don’t work there anymore and I really felt the hole nextcloud left, no more notes syncing for notes, tasks, calendar, podcasts no more place to upload my photos from my phone … So now I’m hosting nextcloud at home again.
I also host jellyfin which is nice but if I don’t have it doesn’t actively hamper my workflow.
I used to have a Nextcloud instance on a shared webhost… It ran like shit but you can’t beat the storage space… VPS storage is expensive.
Now I use syncthing on my home server
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.
Same, Syncthing is amazing. I use it with Mobius Sync on iOS and have it synching my keepass, Obsidian vault, photos, and a folder for random file transfers between devices. It’s so much better, faster, and more stable than all the most popular corporate cloud providers.
I believe Syncthing has been discontinued unless someone else took up the project.
This is absolutely not the case.
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.
Just to be clear, what was discontinued was the official gui app.
Binaries are still updated and developed. The other gui app, syncthing-fork, still exists.
Both syncthing and syncthing-fork are on F-Droid.
That would suck if so since I obviously utilize it heavily but this doesn’t seem to be the case? Latest release was just a month ago and their github repo is active.