Complete WatchLink V1 realtime features
This commit is contained in:
17
README.md
17
README.md
@@ -9,11 +9,12 @@ WatchLink is a self-hosted shared-watch web app with persistent user rooms, loca
|
||||
- First-run setup creates the first admin user.
|
||||
- Username/password accounts with bcrypt password hashing.
|
||||
- Every user gets a stable personal room like `/rooms/@username`.
|
||||
- Friend requests and room access are modeled for friends-only, public, role-restricted, and explicit access.
|
||||
- Admin surface for rooms, users, roles, and permissions.
|
||||
- Friend requests and room access for friends-only, public, role-restricted, and explicit access.
|
||||
- Admin surface for rooms, users, roles, invites, security settings, and audit events.
|
||||
- Site-wide instance settings for registration mode, default room visibility, media providers, and avatar upload limits.
|
||||
- Profile settings with display name and profile picture upload.
|
||||
- Shared playback state via Socket.IO.
|
||||
- Profile settings with display name, profile picture upload, password change, and logout.
|
||||
- Shared playback state via Socket.IO with Postgres-persisted room state.
|
||||
- Persistent room chat and queue updates through the realtime room channel.
|
||||
- Media URL normalization for YouTube, Twitch, and direct video URLs.
|
||||
- Uptime Kuma/Dockge-inspired app shell with system light/dark theme.
|
||||
- Docker Compose stack for app and Postgres.
|
||||
@@ -115,6 +116,14 @@ The Compose stack exposes the web app on `http://localhost:${HOST_PORT:-3000}` a
|
||||
|
||||
On first start, the web container runs `prisma migrate deploy` before starting Next.js. This creates the required tables in a clean Postgres volume.
|
||||
|
||||
### Provider notes
|
||||
|
||||
WatchLink uses the official YouTube IFrame API. If YouTube shows a sign-in or bot-check challenge inside the embed, WatchLink cannot bypass that provider-side restriction; the room shows a fallback action to open the video on YouTube. Twitch live streams support source and play/pause sync, while seek sync is available only for Twitch VODs and direct video files.
|
||||
|
||||
### Uploads and invites
|
||||
|
||||
Uploaded avatars are stored below `/app/public/uploads` in the `avatar-uploads` Docker volume. Invite-only registration uses invite codes created in the Admin area; room-scoped invite codes also grant room membership when the account is created.
|
||||
|
||||
Build and publish the Gitea image:
|
||||
|
||||
```bash
|
||||
|
||||
Reference in New Issue
Block a user