A place to share alternatives to popular online services that can be self-hosted without giving up privacy or locking you into a service you don’t control.
Rules:
Be civil: we’re here to support and learn from one another. Insults won’t be tolerated. Flame wars are frowned upon.
No spam posting.
Posts have to be centered around self-hosting. There are other communities for discussing hardware or home computing. If it’s not obvious why your post topic revolves around selfhosting, please include details to make it clear.
Don’t duplicate the full text of your blog or github here. Just post the link for folks to click.
Submission headline should match the article title (don’t cherry-pick information from the title to fit your agenda).
No trolling.
Resources:
Any issues on the community? Report it using the report flag.
Questions? DM the mods!
Nextcloud, vaultwarden.
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.
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
For me it’s the first thing i learned how to self host: Nextcloud …which in turn allows me to sync Joplin notes, which I use constantly
Some WebDAV server, can be Nextcloud but actually something more lightweight is better.
Also a XMPP server is very nice to have. Even if you don’t have many contacts on it (yet), it works very well has a notification service and can even be extended to act as a Unified Push distributor.
wait wait wait wait.
That works? Teach me how!
https://joinjabber.org/tutorials/service/unifiedpush/
Radicale is next on my list
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.
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.
I use unbound with pi-hole inside an Ubuntu lxc container. No additional device needed.
https://docs.pi-hole.net/guides/dns/unbound/
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.
Arr stack plus Jellyfin/Plex, Nextcloud and Gitea.
In terms of most used for me, it would be:
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 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.
Audiobookshelf also supports podcasts (and ebooks, but I haven’t tested that).
Cool, I didn’t know. Going to try it out.
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.
Do you have any experience with the dedicated Audiobookshelf app?
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.
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.
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.
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
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.
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.
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. :)
It’s not very exciting, but: Network UPS Tools (NUT).
Keep everything in good shape in the event of a power outage.
I use NUT with an Eaton Ellipse but it periodically stops working and I’m forced to restart the container
Huh. Losing USB access?
Yes but I don’t know why
I’m running NUT on the host os - no container. If that’s an option for you it will probably be much more reliable.
No one’s mentioned Forgejo yet? Solid git and artifact repository.
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)
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.