https://github.com/ed-asriyan/watch-together
Synchronized video player for watching movies together https://watchtogether.online
https://github.com/ed-asriyan/watch-together
firebase movie movie-night playback-sync svelte sync syncplay video watchtogether
Last synced: 3 months ago
JSON representation
Synchronized video player for watching movies together https://watchtogether.online
- Host: GitHub
- URL: https://github.com/ed-asriyan/watch-together
- Owner: ed-asriyan
- Created: 2024-02-17T13:02:21.000Z (over 2 years ago)
- Default Branch: master
- Last Pushed: 2025-03-03T01:52:33.000Z (over 1 year ago)
- Last Synced: 2025-03-09T17:54:05.383Z (over 1 year ago)
- Topics: firebase, movie, movie-night, playback-sync, svelte, sync, syncplay, video, watchtogether
- Language: Svelte
- Homepage: https://watchtogether.online
- Size: 6.06 MB
- Stars: 6
- Watchers: 1
- Forks: 1
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Movie Together [](https://github.com/ed-asriyan/watch-together/actions/workflows/CD.yml)
Web application built on Svelte.js and Firebase for watching movies together on different devices.
👉 watchtogether.online 👈
https://github.com/ed-asriyan/watch-together/assets/7848847/2d2799f1-cc79-4732-8657-74f78268b8c2
# Setup
## Init
1. Setup Firebase project
1. Create Firebase Realtime database: https://console.firebase.google.com
2. Copy Firebase project cofiguration
1. Copy firebase config values to [.env](.env) file
2. Copy service account key to `FIREBASE_SERVICE_ACCOUNT_KEY` repository secret
3. Setup Firebase Realtime database rules:
```json
{
"rules": {
"room": {
"$room_id": {
".read": true,
".write": true
}
},
"$other": {
".read": false,
".write": false
}
}
}
```
4. Add domain where you're going to host the website to "Authorized Domains" section of "Authentication"
2. *(optional)* Setup [Google Analytics](https://analytics.google.com) (should be created with Firebase)
1. Copy Google Analytics meashurement ID to [.env](.env) file
3. *(optional)* Setup [Sentry](https://sentry.io) account and create Svelte project
1. Copy Sentry DSN value to [.env](./env) file
4. Create `ENV_FILE_CONTENT` repository variable and copy content of filled by you [.env](.env) file in it
## Local development
1. Install docker
2. Install dependencies:
```console
make dev_install
```
Now you can run the dev server locally:
```console
make dev_serve
```
Or generate production bundle:
```console
make prod_build_bundle
```
## Deployment
### CD
Each push to `master` triggers [CD.yml](./.github/workflows/CD.yml) pipeline that builds production bundle and published it on
GitHub Pages. To make it work you must have
GitHub repository environment variables:
* `ENV_FILE_CONTENT` with content of filled [.env](./.env)
### Auto clean up
Every 1 day of a month, teams last updated more than 31 days ago are deleted by
[clean-db.yml](./.github/workflows//clean-db.yml) workflow. To make it work you must have:
GitHub repository environment variables:
* `ENV_FILE_CONTENT`
GitHub repository secrets:
* `FIREBASE_SERVICE_ACCOUNT_KEY`