Hey guys,
after reading up on selfhosting for weeks now I finally decided to take the plunge today and tried setting up my own nextcloud & jellyfin instances. For this purpose I am using a mini PC. (similiar to an Intel NUC)
Now I would like to make both services available to the internet so I could show images to friends while I’m at their place / watch movies with them.
The problem is I am currently not very educated on which security measures I would have to take to ensure that my server / mini PC doesn’t immediately become an easy target for a hacker, especially considering that I would host private photos on the nextcloud.
After googling around I feel like I find a lot of conflicting information as well as write-ups that I don’t fully grasp with my limited knowledge so if you guys have any general advice or even places to learn about all these concepts I would be absolutely delighted!
Thank you guys sooo much in advance for any and all help, the c/selfhosted community has been nothing but a great resource for me so far!!!
Duckdns.org for dynamic dns. You can get a domain name like example.duckdns.org for free.
Caddyserver.com to reverse proxy to your running docker services. You’ll be able to set up jellyfin.example.duckdns.org
Crowdsec.net to secure the network
Tailscale for access to running docker services that you don’t need to share with friends.
Could you please be more specific what exactly Crowdsec brings to the table? In which way does it “secure the network”?
Crowdsec will analyse the logs from your reverse proxy and identify malicious actors, bots and whatever else you configure it to. It then tells a “bouncer” (part of your reverse proxy) to reject the request, block the IP or redirect them to a captcha.
The downside is that it’s kinda a pain to get set up, at least in my experience. It also stopped working without informing me and I’ve never been able to get it working again since. If you don’t use docker the experience might be a bit easier.
DuckDNS is great, but you only need it if you have a dynamic IP. It’s worth checking if you have a static public IP before adding another layer of complexity.
There’s even a Traefik Plugins for crowdsec. I guess it’s time to play with my Traefik Config again