Advice on how to setup my own (online accessible) (media) server reddit / selfhosted ---------------------------------------------------------------------- Jipvh · 2023-10-26 10:50 So I just bought an Intel NUC and I would like to set up my own (online accessible) media server, home assistant, server host etc, although, I'm still kindof a newbie when it comes to hosting/port forwarding etc. So I thought I'd ask a few questions here, if that's allowed. **Question 1:** Should I be using a VPN and/or setting up my own private VPN network, and if so, how?I've read a bit about setting up your own VPN network, but I've seen alot of people saying you should rather just buy a commercially available VPN like NordVPN or w/e. Reason I'm asking is because I'd like to be hosting my own URL's, servers, and/or private (but online accessible) media libraries, And I'd rather not do so on my own IP address, right? However, setting up my own VPN means I'll be pretty much the only one using it, and thus, won't be that anonymous after all. But when buying a commercially available VPN, I'll be entrusting everything to them, never really knowing if everything is safe/protected. So I don't really know which I should choose, if any, and also how to go about this. **Question 2:** Which platform/program should I be using to share a media library with? If possible, I'd like a media streaming platform which simply works by going to a specific URL, not by having to download an app onto my TV or phone. I've looked into Plex but it doesn't seem that user friendly (to me), and have played around with Kodi for a bit as well. Which, while it did work, I could not figure out how to make it accessible online, only on my own network. Which brings me to my 3rd question; **Question 3:** I have no idea how to port forward, and so far whenever I had to host a gameserver or something similar, I would just put DMZ mode on, since that's all I know to make it work. Is DMZ a bad idea and should I just forwards specific ports? And if so, how? Or what's the easiest and safest way to make something like Kodi or Jellyfin (or any other service) work online? (This kinda loops back to question 1, since I don't want to log into my media library through my own IP address..) **Question 4:** I've been using Moonlight to access my NUC remotely on my own PC or phone, but I'd like to just setup a folder which is accessible from the outside as well, sortof like my own private Cloud, where I can download and upload files onto my NUC from anywhere. What would be the best way to go about this? Thanks in advance! ​ TL;DR; Advice regarding using VPN's or not. Semi-public online media library. Port-forwarding 101. Set up own Cloud service. ---------------------------------------------------------------------- killermenpl · 2023-10-26 11:55 1. The generally recommended way is to rent out a cheap VPS (you can get them for $5 per month, sometimes even cheaper) and set up a VPN/WireGuard tunnel that basically routes all traffic hitting the VPS to your server. There's also solutions like Tailscale, ZeroTier or Cloudflare Tunnels that will do that for you, though the first two (AFAIK) require a client to be installed on all devices. 2. I'm using Jellyfin and it works fine for me. Just keep in mind that it expects that each user has their own account. They're easy to create by the admin, but if you want to give your computer illiterate relatives access you'll probably have set up their devices yourself. 3. See 1. If you set the VPN correctly you won't have to port-forward anything. Especially if you use one of the commercial services mentioned. 4. Nextcloud comes to mind, as does Syncthing if you want something that just synchronizes files. If you want to just manage files on the server, [here](https://awesome-selfhosted.net/tags/file-transfer--- web-based-file-managers.html) is a list of software that will do just that. If you're only going to access the files from LAN, take a look at Samba. After you decide on what you'll use for the above, you'll most likely need to learn and decide about several other things: - Domain name - needed if you want to share a url like example.com, instead of IP like 12.3.4.56 - Dynamic DNS (DynDNS) - if you're hosting from home, your IP will likely change over time, and a DynDNS will take care of keeping your domain configuration up to date - SSL and HTTP/HTTPS - basically you should use HTTPS for anything that's publicly accessible. For HTTPS you need to have an SSL certificate, which luckily you can get for free via Let's Encrypt. - Reverse proxy - without it, you'll have to append port numbers to the URL in order to access specific services, with it you can set up subdomains (or subdirectories) that will take care of it. It'll also manage HTTPS and SSL certificates. Without a reverse proxy you'd have something like this: - Media: http://example.com:1234 - Files: http://example.com:5678 With: - Media: https://media.example.com - Files: https://files.example.com - Docker, or any other containerization solution - not strictly necessary, especially if you don't intend to host a lot of apps, but highly recommended. It basically packages the apps and all the things they need into separate containers which don't interfere with each other and are guaranteed (as much as anything in tech can be guaranteed) to work no matter what the rest of the system does. ---------------------------------------------------------------------- northern_lights2 · 2023-10-26 11:58 VPN: Yeah, setup your own wireguard server / client on NUC. The benefit is that if jellyfin or Nextcloud is vulnerable, you can limit access only via VPN to be safer. Personally I have been running open Nextcloud and jellyfin without being bothered by bots. Probably because I'm ipv6 only. Cloud Storage / Gdrive alternative: Nextcloud Media Library: jellyfin is good. Port forwarding: if you notice your network config, you'd see that you're assigned 192.168.x.y instead of the public IP address you see online on cmyip. It could be that your router gets assigned an ipv4 address like 49.76.21.2 and then your router does NAT for your other devices. In this specific case, DMZ would work. It would mean that all ports are open. You need to be careful with this. All the services are publically accessible including ssh. Another possibility is that your router is behind another NAT, and instead is assigned and IP of 10.a.b.c In this case port forwarding cannot work. If you have IPv6, it's likely each device gets a global address so there's no need of NAT. You might need to allow inbound traffic through your router. In port forwarding, what you'll do is that you'll ask router to forward all traffic sent to UDP 49.76.21.2:51280 to UDP 192.168.x.y:51280 This is assuming you forward the port 51280 for UDP This will allow you to connect wireguard externally, and once you're in, you can access other services running on your server. ---------------------------------------------------------------------- Jipvh · 2023-10-26 14:08 Thank you very much for your detailed answer, it's much appreciated. Even though many of your terms sound like an alien language to me, haha. Either way, I'll try and figure things out as much as I can! If I have any more questions, I'll try and post them here, if that's okay. ---------------------------------------------------------------------- killermenpl · 2023-10-26 14:11 > Even though many of your terms sound like an alien language to me, haha. It's always like that with new stuff. > If I have any more questions, I'll try and post them here, if that's okay Sure, either do it as a response to my comments or tag me, otherwise I might not see it