(i did a similar poll a few minutes ago, but it was too vague so it's probably better if i describe things better)
SO! i have been (re-)building a self-hostable watch party platform since a while ago. you can create a room and watch things together with your friends. i'm close to releasing this soon, but i've been overthinking probably one of the "simplest" details of it... authentication and "discoverability" - would appreciate fedi's thoughts
one of the biggest complaints was that people were lazy to keep signing up to different instances to join their friends' rooms and whatnot, so i wanted to simplify this: that i was to offer a "centralized" authentication system, that self-hosted instances connect to. no need to setup different accounts and such... while not going the path a-la-Fediverse of having separate instances and their accounts federate, since i don't think it makes much sense in this context. of course, this would be open-source, so people can self-host it too, with the consequence it'd effectively split you from the network (at least with the current design i have).
given the fact that both clients and instances have to connect to said centralized system, it'd ease something else that i got asked about a lot: instance/room discoverability. instances can register with said service, and if you want to offer it publicly, you can list yourself on a registry that the client(s) can fetch and show to the users. same thing with rooms - say you want to host a public room to showcase something, it gets listed on said service and everyone that's interested can join, without playing a whole internal discoverability game.
it includes some worries about the livelihood of the service, yes, but my intention here is to easy UX for the less "technical" both as a user and a self-hoster.
is this a good idea, or am i really overthinking it/should take another approach? i really want to get this right so i'd appreciate the feedback!
everything ends up beeing built with a si gle point of failure and for what?
yeah, this is a worry for me too⦠i was kinda justifying it to myself given my second idea of discoverability (which at least someone could live without that if youāre only using your own or your friendsā instances). i could also integrate auth directly as an option but thatād overcomplicate it if i do both. but then i also need something centralized for the registry⦠because i donāt see how i can make something federated for this without overcomplicating it much more lol
one option is to piggy back on the fediverse like Owncast does
this is something i thought about, but i donāt want to depend on fedi for this project (especially since its userbase was not the kind to use fedi to begin with) - so i need something more āgenericā that works with other platforms/on its own.
thanks for the feedback!
@nay what's the benefit of authentication for a user in the first place? kind of sounds like a host should just be able to generate a private URL to share, but maybe I don't understand what you're building
@jonah Authenticaiton is there so you have your profiles to be able to be identified, so you can have your joined rooms listed (since you join and āstayā on them), etc. Pretty much for the sake of showing yourself.
@noisytoot @Reiddragon ty for the info, fixed!
and I mean⦠my intention is to implement āMagic Linksā/codes + passkey support for authentication⦠but again Iāve only thought of it in the centralized variant of it
@nay only other thing I can think of that is more generic is using email, but setting up email servers is a nightmare so Idk if you can ask people to set that up when they want to host it
@nay I feel like having something like keycloak for auth would make sense here cause you could just run a centralied LDAP server which people can connect their keycloak system to it and then each instance can do their own auth while all accounts and etc are centralized. Heck you could even publish the LDAP server seperately and let people operate their own versions then in this case if they want control over it.
@nay this project is relevant to my interests āŗ
the centralised authentication would be optional, right?
could I host my thing with no authentication and just rely on a slightly-obscure url I can share with my friends?
@dakkar the current plan is to require authentication to create rooms but allow users to join as guests (if enabled), however i could make it so you can create rooms as guests if needed
@nay that sounds completely sensible
(and at worst I can always modify the code š)
do you have some description of this platform I can check out?
@dakkar if you know Rabb.it, it is similar :)
aside of that thereās the website of my project: https://cryb.app (things have not been updated in a long time though⦠since this is something iāve been working on for a bit privately until i feel ready to open-source it)
in case of any doubts, feel free to ask me!
@nay aah, ok, very different from what I thought, and Iām not sure itās what Iām looking forā¦
my use case: I have a video file on my local machine, with non-hardcoded subtitles, and I want half a dozen of my friends to see it play with the subtitles enabled, in sync
my currently ābestā idea: OBS with VLC source streaming to Owncast⦠a bit complicated
@dakkar there are syncplay options but thatād imply sharing the source video file with all of them somehow, which i believe is not an option for you. sure you could stream it via Owncast, and you could even just use ffmpeg for this instead of OBS + VLC to burn the subtitles in⦠it would work.
personally for that use-case when i want to watch something with my friends i just use my project lol, considering i can shove files in my jellyfin instance (which i neither want to share to everyone, nor has good/stable syncplay) or just put up a temporal http server and run mpv⦠i just have to share a link to the room invitation and they watch it from there. but in your case youād need to stream your files there somehowā¦
a similar project to mine is https://github.com/m1k1o/neko which is āsingle-roomā and would only require a nick and a room password to get in, but youād also need to stream your files there
@nay thanks for all the info!