My self-hosting experience is primarily with Plex and qBittorrent, but I’m trying to get a digital library set up that will be available remotely. I’ve been reading about some options, but I’m not sure about what is best to use or how to deploy it.
What is the best way to make Kavita available to remote users safely from a home server?
There’s three reasons:
That said, if I had to share something with the public internet temporarily, I’d try not doing that first but could see myself using TS Tunnels.
I need to share permanently though. Would it be better to use tailscale to make a connection to a remote server and then use that server as a front end that bounces back to my home server?
Not really. As soon as you have a path from global internet into your home network, all bets are off and you’re now in charge of securing all of that against the entire world.
That said, if this is a regular old HTTP service, I believe Cloudflare Tunnels offer a way to put an authentication mechanism in front. This can work if, just like with Tailscale, you have a limited known set of users but the difference is that those users don’t to have to install and use a VPN client to access your service but rather authenticate using an “external” HTTP service through their browser. Again, I do not believe this works for services accessed through APIs and certainly not ones using custom protocols.
I can’t stress enough that getting those remote users to use Tailscale is probably the best and easiest solution.
I would disagree.
Particularly on the cost/beta stuff.
Tailscale has long supported DNS addresses that link to your tailnet. Typically they only accept connections from addresses allowed within your tailnet, but there isn’t anything particularly complex about how funnel allows any incoming address.
Further, like most of tailscale’s operations, funnel isn’t requiring them to host or even proxy any significant amount of data, it’s just directing incoming connections on that domain to a device on your tailnet.
The hosting cost to tailscale is insignificant and really no different than what they do on a basic tailnet.
I don’t think it will become a paid only option and I don’t think it’s too beta to use for a home server.
Personally I don’t bother using it because I’m comfortable exposing my IP address and opening a port to my home server using direct DNS.
But there are some advantages to using tailscale funnel in that your ip will be obfuscated and the traffic will be routed through WireGuard so potentially more secure.
P2P wireguard connections that is. Funnel needs to accept arbitrary connections.
And how is that supposed to work without proxies? You can’t just point DNS at some device’s public IP and then expect everyone to be able to connect to it; that’s not how firewalls work. TS IPs aren’t routed on the public internet either (100.0.0.0/8 is IANA reserved).
AFAIK the way TS has always worked is that it does its P2P magic to build WG tunnels between devices and then does regular IP over those. IP traffic cannot go between devices otherwise (unless they’re on the same network ofc.).
How exactly is your IP going to be obfuscated without proxies? How will traffic be routed through WG without proxies?