Why do I need a domain to access my Funkwhale library but not SyncThing?
from mulcahey@lemmy.world to selfhosted@lemmy.world on 27 Oct 17:49
https://lemmy.world/post/37949814

Sorry if I’m mistaken on this, but I’m still new to self-hosting.

Currently I use SyncThing and I love it. My files are accessible to me wherever I am in the world, and it costs me nothing.

I’d like to move more of my life to self-hosted servers. I’m looking at leaving Spotify for Funkwhale. But if I’m reading the materials correctly, I’ll need to set up a domain and pay some upfront costs to make my library accessible outside my home.

Why is that? Is there a way to make my costs 0, the way they are with SyncThing?

#selfhosted

threaded - newest

AbouBenAdhem@lemmy.world on 27 Oct 17:57 next collapse

Syncthing uses a centralized discovery server to connect device IDs to IP addresses (although you can change this to point to your own discovery server, too).

I don’t know if Funkwhale has a similar option.

frongt@lemmy.zip on 27 Oct 18:01 next collapse

You could run a VPN back to your local network.

30p87@feddit.org on 27 Oct 18:03 next collapse

But: Depending on your ISP, you may be able to get a free public (but not stable, and no rDNS) IPv4, or you already have an IPv6 range that can directly route to your router freely. And if you need a Domain, you can either rent one for ~5€/Year, or use a free Domain service (eg. ddns.net)

tvcvt@lemmy.ml on 27 Oct 18:11 next collapse

The two pieces of software have very different topologies.

In very broad strokes: Something like FunkWhale uses a server-client model. To get to it, you connect to it remotely and you need some way to get there. By contrast Syncthing behaves as a mesh of nodes. Each node connects directly to the other nodes and the syncthing project folks host relays that help introduce the nodes to one another and penetrate NAT.

No, you may not need a paid domain to use your self-hosted FunkWhale server (I haven’t dabbled with that service in particular). There are a few options.

  1. You could probably use the direct public IP address or alternatively
  2. Use a dynamic DNS provider (like afraid.org) to resolve your IP address
  3. Use a VPN on all of your clients and use local DNS to resolve your FunkWhale server’s local IP address.

These all assume that you have a public IP address on your router and not one that’s being NAT-ed by your ISP.

Again, these are very broad strokes, but hopefully it helps point your in a direction for some research.

non_burglar@lemmy.world on 27 Oct 21:19 collapse

+1 for afraid.org.

12 years and counting, propagation is sufficiently fast.

gravitywell@sh.itjust.works on 27 Oct 18:24 next collapse

You can use a service like duckdns.org for free to get a (sub)domain that can be used with funkwhale.

NaibofTabr@infosec.pub on 27 Oct 18:57 next collapse

But if I’m reading the materials correctly, I’ll need to set up a domain and pay some upfront costs to make my library accessible outside my home.

Why is that?

So when your mobile device is on the public internet it can’t reach directly into your private home network. The IP addresses of the servers on your private network are not routable outside of it, so your mobile device can’t talk to them directly. From the perspective of the public internet, the only piece of your private network that is visible is your ISP gateway device.

When you try to reach your Syncthing service from the public internet, none of the routers know where your private Syncthing instance is or how to reach it. To solve this, the Syncthing developers provide discovery servers on the public internet which contain the directions for the Syncthing app on your device to find your Syncthing service on your private network (assuming you have registered your Syncthing server with the discovery service).

This is a whole level of network infrastructure that is just being done for you to make using Syncthing more convenient. It saves you from having to deal with the details of network routing across network boundaries.

Funkwhale does not provide an equivalent service. To reach your Funkwhale service on your private network from the public internet you have to solve the cross-boundary routing problem for yourself. The most reliable way to do this is to use the DNS infrastructure that already exists on the public internet, which means getting a domain name and linking it to your ISP gateway address.

If your ISP gateway had a static address you could skip this and configure whatever app accesses your Funkwhale service to always point to your ISP gateway address, but residential IP addresses are typically dynamic, so you can’t rely on it being the same long-term. Setting up DynamicDNS solves this problem by updating a DNS record any time your ISP gateway address changes.

There are several DynDNS providers listed at the bottom of that last article, some of which provide domain names. Some of them are free services (like afraid.org) but those typically have some strings attached (afraid.org requires you to log in regularly to confirm that your address is still active, otherwise it will be disabled).

Azzu@lemmy.dbzer0.com on 27 Oct 19:32 collapse

Perfect explanation. This kind of thing shows why tech giants are giants and why selfhosted is a niche. People like paying for convenience.

NaibofTabr@infosec.pub on 27 Oct 20:28 collapse

Perfect explanation.

Thank you, I try. It’s always tricky to keep network infrastructure explanations concise and readable - the Internet is such a complicated mess.

People like paying for convenience.

Well, I would simplify that to people like convenience. Infrastructure of any type is basically someone else solving convenience problems for you. People don’t really like paying, but they will if it’s the most convenient option.

Syncthing is doing this for you for free, I assume mostly because the developers wanted the infrastructure to work that way and didn’t want it to be dependent on DNS, and decided to make it available to users at large. It’s very convenient, but it also obscures a lot of the technical side of network services which can make learning harder.

This kind of thing shows why tech giants are giants and why selfhosted is a niche.

There’s also always the “why reinvent the wheel?” question, and consider that the guy who is selling wheels works on making wheels as a full-time occupation and has been doing so long enough to build a business on it, whereas you are a hobbyist. There are things that guy knows about wheelmaking that would take you ten years to learn, and he also has a properly equipped workshop for it - you have some YouTube videos, your garage and a handful of tools from Harbor Freight.

Sometimes there is good reason to do so (e.g. privacy from cloud service data gathering) but this is a real balancing act between cost (time and money, both up-front and long-term), risk (privacy exposure, data loss, failure tolerance), and convenience. If you’re going to do something yourself, you should have a specific answer to the question, and probably do a little cost-benefit checking.

Cerothen@lemmy.ca on 27 Oct 21:15 next collapse

If you use tailscale you could pretty easily get similar results.

Tailscale to broker connections between devices and then access with the tailscale IP address

sbeak@sopuli.xyz on 28 Oct 13:29 next collapse

The cool thing about SyncThing is that it’s peer to peer, meaning you don’t need a central server for your files to sync. They can go between your laptop and phone, for example.

Something like Funkwhale does need a server, and to talk to that server outside your local network, you need a domain name.

sbeak@sopuli.xyz on 28 Oct 13:32 collapse

As some others have said, you could use a VPN like Tailscale to connect to your local network remotely. Alternatively, you could simply not deal with all the faff and only use your services locally, which is what I do with Nextcloud and Immich. Syncs when I get home but doesn’t when I’m not, and I can always use Tailscale to remotely access my server if there are any issues.

mulcahey@lemmy.world on 28 Oct 17:23 collapse

These responses are SO helpful and I’m genuinely learning so much here. Thank you everyone!