I have many of my services open to the internet, but behind authelia w/2fa and a reverse proxy. I haven’t had a security issue yet, been running this way for a few years.
I think it’s pretty safe as long as you keep them up to date. I run backups weekly and do updates at least once a month.
Using geoip restrictions will also help a lot because you can block most of the scanner bots by denying connections from outside your geographic region. These bots detect what services are open to the internet and then add them to databases like shodan. If a security flaw is found in one of those services, hackers will search those databases for servers with those services running and try to exploit them. If you aren’t in those databases they can’t easily find you before you are able to patch.
We’re also in a big vehicles arms race. I’m always telling people about how big vehicles cause more kids to get run over, more pedestrians to die, more damage in accidents, etc. The most common response from giant vehicle owners is that it makes them feel safer in an accident.
In 10 years they’ll probably all be driving tanks with stadium lights mounted on top.
If you’re going to try Authelia and a reverse proxy, I recommend using SWAG. It’s a docker container that includes Authelia, nginx, fail2ban, geoip restrictions, and has premade config files for most of the selfhosted software that people run. The config files are especially useful since they include comments that describe the settings you need to change within the services you run, like changing the external domain in Emby for example.
I run everything in docker on Ubuntu 22.04 with the exception of Plex, which runs on bare metal on the same server. The server is a 16 core threadripper 1950, with 2 quadro gpu’s, m2000 and a p400, 128gb ram, mirrored ssd for system, platter HDD for media, CoralTPU pcie.
I also run Home Assistant on a separate Lenovo MiniPC(forget which model), I did this so I can take down the server for various reasons without losing smart home stuff. Helps with the Partner Acceptance Factor.
In no particular order the server runs:
Calibre-web - Library management
Sonarr - TV series downloads
Radarr - Movie Downloads
Lidarr - Music Downloads
QbittorentVPN - Torrents over vpn, guarantees no leaks
Jackett - tracker management and proxying
Podgrab - downloads podcasts
Frigate - NVR, camera recording with object detection
DoubleTake - Facial recognition middleware, works between frigate/homeassistant and Compreface/Deepstack
Octoprint - 3d printer spooler
Tautulli - Plex statistics
Portainer - Docker Management
Ombi - Media request app, users can request shows/movies and they can be automatically added to sonarr/radarr
MeTube - Webui for youtube-dl/dlp, useful for downloading Youtube videos for offline and ad free use
Spot-dl - parses spotify playlists and downloads them from youtube
A way to jump to the next comment within a level. Infinity had a big button to jump to the next top level comment, and the reddit web page you can click on the colored bar that aligns the comment levels to jump to the next comment.
Rsync everything besides media to a Storj free account. I also rsync my most important data(docker compose files,config files, home assistant, a few small databases) to Google drive.