I have a couple of services, including nginx (a website) that run though a Cloudflare Tunnel. No need to open up ports and certificates are automatically managed.
https://developers.cloudflare.com/cloudflare-one/connections/connect-networks/
I also use ddclient to update my own personal domain with my internets dynamic IP (no need for a dynamic DNS provider). I have to do this as I host Jellyfin and Cloudflare don’t support streaming through their tunnels. So yes this is exposed to the internet. It does sit behind a caddy reverse proxy though.
I also run a wireguard VPN so that I can dial in when out the home. Im in Spain next week so can use that to get BBC iPlayer etc. The wireguard uses an address that is dynamically updated by ddclient (domain is hosted by Cloudflare)
Emails I don’t bother self hosting. I actually pay for simplelogin and send emails there via aliases. They then route to a single Proton email address.
Not really helping you here. But when I started using Google Photos, I still manually downloaded files from my phone to local storage. I did this mainly to ensure I have the original copies of my photos and not some compressed image. Turns out that was a wise move as exporting photos from Google is a pretty damned awful experience.
I’ve configured my kids devices to use NextDNS, that way they are getting filtering no matter what network they use.
AdGuard does what I need internally, it’s just external is the issue. VPN’s are not a solution, my kids are old enough to know they can just disable it to work around it. They don’t know about the Private DNS option that I have configured on their devices… Yet
I’ve ran multiple containers on a Pi 3 before “upgrading” to a Pi 4. Yes not even a Pi 5. Sure it’s not rapid and drags it’s heels at times but for the most part it’s great for hosting stuff for my household.
Home assistant, Plex, Syncthing, Wireguard, Ad Guard, nginx, nginx proxy manager, duckdns, mongodb and unifi network appliance. I was also running Jellyfin along side Plex but it keeps causing the Pi to lock up.
I’ve ran Plex and other apps directly on Raspberry Pi’s for years but started playing with docker. I really prefer it and always try to go for docker images over regular app installs. When it came to upgrading my stuff from Pi3 to a Pi4, because I put all my docker stuff on an external drive I could just mount that drive on the new Pi and then run my docker-compose file to get everything up and running again. Containers are awesome!
I’m confident with Linux but by no means an expert. So if I can get it working then anyone else can. My advice though is to avoid using Portainer to create your containers. It may look easier cause it has a GUI but do ker-compose is not hard. Having that one file for all your apps makes life nice and easy
I just use nginx in docker. It runs from a Pi4 so needs to be lightweight. I’m sure there are lighter httpd servers to use, but it works for me. I also run nginx proxy manager to create a reverse proxy and to manage the certificate renewal that comes from Let’s Encrypt.
The CNAME flattening is not a regular feature of DNS, so I have to use Cloudflare. Maybe other providers do the same, but I haven’t looked around. It’s certainly not something namecheap offer.
I point my TLD to the dynamic DNS record and then point to other records to the TLD as CNAME records. I’m using Nginx Proxy Manager to reverse proxy traffic to different services. These all live on a Raspberry Pi 4.
I don’t have a static IP but host services off my paid domain. I use duckdns and point host records to the duckdns address. I have to use CloudFlare to manage my DNS records for this to work.
I’m a VMware and Windows admin in my work life. I don’t have extensive knowledge of Linux but I have been running Raspberry Pis at home. I can’t remember why but I started to migrate away from installed applications to docker. It simplifies the process should I need to reload the OS or even migrate to a new Pi. I use a single docker-compose file that I just need to copy to the new Pi and then run to get my apps back up and running.
linuxserver.io make some good images and have example configs for docker-compose
If you want to have a play just install something basic, like Pihole.
I run Docker containers on a Pi 4 using the RPi OS. For the longest time I’ve been using Plex. I wanted to give Jellyfin a go though, so just created a new compose file and mounted my TV/Movies directories. Other than the first time setup of Jellyfin I don’t touch it now. Plex and Jellyfin run side by side. To update I just do a docker-compose pull every so often. Super simple.
Ha. That’s my bad. I didn’t even read the firewall rules listing 22/SSH. I agree on not opening 22 to the world. It just invites bots throwing passwords at it.
I just read Minecraft in the original post which from reading runs from 25565 which I wouldn’t worry about. If OP needs 22 for admission I’d either whitelist it or use a VPN/Tailscale.