I’ve been around selfhosting most of my life and have seen a variety of different setups and reasons for selfhosting. For myself, I don’t really self host as mant services for myself as I do infrastructure. I like to build out the things that are usually invisible to people. I host some stuff that’s relatively visible, but most of my time is spent building an over engineered backbone for all the services I could theoretically host. For instance, full domain authentication and oversight with kerberized network storage, and both internal and public DNS.
The actual services I host? Mail and vaultwarden, with a few (i.e. < 3) more to come.
I absolutely do not need the level of infrastructure I need, but I honestly prefer that to the majority of possible things I could host. That’s the fun stuff to me; the meat and potatoes. But I know some people do focus more on the actual useful services they can host, or on achieving specific things with their self hosting. What types of things do you host and why?
I self host jellyfin, nextcloud, owncast, tandoor, komga, photoprism and searxng. I use nginx proxy manager for a reverse proxy and SSL cert automation. Works great for me but I would like to get into traefik sometime.
I self host for privacy reasons, also it’s fun, it’s a learning opportunity and sometimes self-hosted services are functionally better than the other options out there.
I got tired of the NPM and went to traefik for 2 reasons.
NPM kept locking me out of my account (admin), like 4 times during the time I was using it. That meant that it was not reliable enough for daily use.
From what I heard is that the NPM project only has 1 developer and so they can’t really respond and fix security flaws in a proper timeframe.
I’m using traefik now for internal traffic while VPN in if I need internal services while out and about.
Jim’s Garage has a great YouTube video on setting it up.
It’s mostly just nginx with a webui. You can even see the nginx config files if you bash into the container. It has the same bugs as upstream nginx. Do not expose the management port to the internet.
Plus compared to normal nginx, it’s harder to misconfigure it. Most of my services are just the default config, so I can’t mess it up accidentally.
About lockouts: Once also happened me, but that was just a messed up update, next update fixed itself. If you lock yourself out you can usually edit the db directly, it defaults to sqlite, but I used it with mariadb.