The more I am selfhosting the more ports I do open to my reverse proxy.
I also have a VPN (wireguard) but there are also 3 family members that want to access some services.
Open ports are much easier to handle for them.
How many users do you have and how many ports are open?
My case: 4 users (family)/ 8 reversed proxy ports
How many users and open ports have you?
Depending on the services you provide, the usual standard ports. So if you run http/https services, port 80 and 443 respectively.
You seem to answer your own question.
Anything that is exposed is done through nginx proxy manager and 2FA is enforced on those apps either through the app or through Authelia.
Some of the exposed apps are shared with friends and family so easier to expose securely than mess with VPN for them.
Anything else is only accessible via VPN on my router.
I need to look at tailscale.
May I ask what do you guys have exposed to the internet?
I personally just have a wireguard VPN (single UDP port open) and everything is accessible through an internal reverse proxy. I just never felt the need to expose nothing ant least not web related.
Just Navidrome for music streaming.
That’s exactly how I have my setup, and on my client WireGuard configs I have it set to split route so I can connect to my home VPN without disrupting anything else.
I expose self-hosted bitwarden for my family to access through cloudflared tunnels and only allowing US IP via cloudlfare rules. Only the webUI is exposed and traffic has to go through cloudflare and nginx to be able to do anything.
KitchenOwl, and a Matrix server and Element web interface.
One thing I need to publicly expose is my own instance of Mealie. It’s a recipe manager that supports multiple users. I share it with family and friends, but also with more distant acquaintances. I don’t want to have to provide and manage access to my network for each and every one of them.
What made you pick Mealie over other stuff like Nextcloud Cookbook or Grocy or whatnot?
I’ve never heard of NextCloud Cookbook before. Looking at its Github page, it says it’s “mostly for testers” and is unstable, so no point in even considering it for regular use at this point in time. Besides, I’m assuming you’d need to have your own instance of Nextcloud up and running to use it; I don’t use Nextcloud.
As for Grocy and other more mature alternatives (Tandoori also comes to mind), I think I initially went with Mealie because it had the most pleasant UI out of all of them. I liked it and found that it satisfied all of my requirements, so I just kept using it.
I have Jellyfin and Jellyseerr open through cloudflare -> nginx over port 443 so i can share it with friends. Eventually I’ll do the same with NextCloud probably.
Video streaming is against Cloudflare policies, aren’t you worried that they’ll may block your account?
Hmm I thought if I set it up to not cache data it would be fine, but it turns out that was outdated data. I don’t see an option for paying for it unless I host media specifically on their servers which I won’t be doing.
I doubt I’ll be using a significant amount of data but if they give me a warning I’ll have to turn off the tunnel I suppose. Thanks for the question!
a lot of stuff:
- owncloud
- paperless
- immich
- jellyfin
- jellyseerr
- traefik
than i have stuff only accessible from local, like the *arr stack.
i’m not using cloudflare or anything, should I?
the only exposed ports i have are http / https and a random port for ssh.
i also don’t use any sso… maybe i should set one up.
deleted by creator
deleted by creator
I use a self-hosted vpn, because I don’t want to expose anything to the internet. The ones I do want to, I haven’t set up yet since it would require reinstalling my pi. But I do have a reverse proxy set up on a vps that I will use once I get around to doing it.
Wireguard, as only a handful of people need access to the services, I manage it manually - and not with Tailscale or something similar.
With that my server looks nothing like a server from the outside, as I’m exposing nothing - Wireguard doesn’t even show up in a port scan
I like this approach, but I’m currently sitting in a foreign hotel who’s wifi seems to block WG. Annoying. Keep a TLS-protected reverse proxy for things you might need through obscure networks.
Both. Some things are only resolvable internally or over wireguard. Some things are publicly accessible via a reverse proxy.
Overseerr, bitwarden, plex all have ports open or through the reverse proxy. Same with email and a few other services. All the *arrs are accessible only on my network or over VPN.
this is the way.
also fail2ban to ensure that nobody bruteforce it’s way in.
Curious why you keep the arrs internal only, when there are things like Authelia that could secure access to them?
Because no one needs access externally. Overseerr is public facing and passes the requests to the arrs.
It’s not about secure access, it’s that no one outside my house, me included, really needs access to them at all.
Reverse proxy and allowing connection only to IPs from my country.
Out of curiosity, how do you accomplish that?
Cloudflare DNS basically, but it can be implemented at nginx level using geoip2 modules (I do both, because some of my services don’t play well with Cloudflare proxied DNS). The cumbersome part is keeping geoip database up to date but I’m sure there are plenty of tutorials online.
I know cloudflare has a free tier and allows you to put rules like this in place. AFAIK you’d have to use them as DNS at least in order to use this feature. I use Cloudflare tunnels and access to facilitate remote access to my home-server, and I know I have this same rule in place.
Probably the usual. 80/443, wireguard, a couple game servers.
For those of you who staunchly put your open ports on a VPS and wireguard tunnel it back to your home server, are you firewalling that wg connection to only allow specific traffic?
I used to, but less so now, I get that weakens the separation.
Mostly the vps is hardened to f and that’s my defense but I agree it’s a bad one.
I have two nginx ingress running on my cluster. One of private one public. Public one is what’s exposed on 80 and 443 to the net.
The private is only available via VPN or lan. The public is for services I want internet exposed.
My family have a VPN network set up to my lan on their router and have access to most services but the public stuff is for the internet friends
I never open any ports to the open Internet other than the two my friend client uses.
For remote access I use a P2P VPN called ZeroTier leaving it always running on the Pi, and switching it on for the remote device when needed. It’s free for up to like 50 users and is very powerful, but dead simple.
free for 25 users
deleted by creator
I use Wireguard for everything except a couple of ports that are open directly to Internet for Traccar (fleet management) because the GPS trackers don’t support anything in the middle and I use Cloudflare Zero trust tunnel for Nextcloud (without any other security layer because the Android and Windows app don’t support them) because my family use it too. The Wireguard tunnel is always on both on my PCs and on my Android smartphone.
You’re comparing apples and oranges, reverse proxy and VPN serve two different purposes.
Though in this context they’re both being used to provide safe access to local hardware from the internet.
They probably want the pros vs cons of this specific situation