I switched from Plex to Jellyfin several years ago and haven't really looked back. Overall I just didn't like the direction plex kept going (pushing shit streaming services, central auth, paywalling features), and dropped it even though I grabbed a lifetime plex pass back in the day. The only thing I miss about plex was the ease of developing a custom plugin for it since you could pretty much just drop python scripts in there and have it work, though their documentation for plugin development was terrible (and I think removed from their site entirely).
terribleplan
I run my own for myself and some friends who don't really use it. If you are interested in doing so I say give it a shot.
I love tinc, it's so simple. I wish there were something just as easy that leveraged wireguard instead of whatever custom VPN/tunneling stuff tinc uses, as using it scares me with how seemingly little maintenance tinc gets. Like if tailscale/headscale and tinc had a baby, haha.
Is there a way to run tinc on your phone or similar? To me that's another bonus of tailscale at least.
Docker isn't super necessary, there are some scripts out there that hide a good bit of how it works like the official ansible playbook or lemmy-easy-deploy.
I use docker to easily run many pieces of software in isolation from each other, it's like VMs if you're familiar with those, but different in some key ways that don't really matter for this discussion.
I would still go with one that isn't one of the biggest. My general advice is to find one that fits the vibe you're going for, communities you're interested in (e.g. some are focused on art or cybersecurity, etc), or is somehow tied to your locality. It shouldn't matter that much, though some servers will be a little more (or less) strict with things like federation, content warnings, alt text, etc. Usually the server will have some info telling you some of this, and their admin should be linked and likely has a post or two pinned to their profile explaining some of this as well.
I am partial to kind.social, though have opted to run my own instead of joining up anywhere.
Honestly it depends on what your experience level with running software is and what you want out of it. For me things have been rather smooth sailing as I already host a number of things for myself (so know all about domains, DNS, servers, reverse proxies, docker, etc.) and I am the only one actively using my instance right now so (local or admin-level) moderation isn't really an issue either.
I am very aware of what it takes to run a small instance, you are indeed correct that domain registration is not the hardest part.
Having a "source of truth" makes many things easier but less resilient. One place to go get the latest version of something mutable. The fediverse/ActivityPub needs to get on board with some form of DID or something similar before worrying about improving the ID system (and the ID system is inherently tied to JSON-LD, so AP would need to stop using that or there would need to be a new version of it) IMO.
Just run your own instance, I say.... that way it's your fault when you forget to renew the domain name instead of the poor soul running vlemmy.
It depends on what specific thing you want to add geoblocking to, but often something like the MaxMind GeoIP database, which then can feed into a firewall to pre-emptively geo-block at a connection level, or as part of e.g. nginx geolocating the IP a of the connecting IP then making the blocking decision at request time.
There's a project that works with Traefik's forward-auth middleware to do this, which is probably how I would go about it if I wanted it at an HTTP level.
Basically, no:
It can cause some wackiness… basically you will need to maintain that old domain forever and everything will still refer to that old domain.
For example, your post looks like this from an ActivityPub/federation perspective:
{ [...] "id": "https://atosoul.zapto.org/post/24325", "attributedTo": "https://atosoul.zapto.org/u/Soullioness", [...] "content": "<p>I'm curious if I can migrate my instance (a single user) to a different domain? Right now I'm on a free DNS from no-ip but I might get a prettier paid domain name sometime.</p>\n", }
The post itself has an ID that references your domain, and the the attributedTo points to your user which also references your domain. AFAIK there is no reasonable way to update/change this. IDs are forever.
It would also break all of the subscriptions for an existing instance, as the subscriptions are all set to deliver to that old domain.
IMO your best bet would be to start a new instance on the new domain, update your profile on the old one saying that your user is now @[email protected] and maintain that old server in a read-only manner for as long as you can bear.
Lemmy has a feature/setting called "Private instance" that I think could be used to achieve this, but I think that got broken at some point because it got tied to turning federation off... not sure what the current state is but may be worth looking into.