OpenTogetherTube
The easy way to watch videos with your friends.
Deployment
See the deployment docs.
Contributing
Contributions are welcome! Check out issues that have the "good first issue" label.
Setting up your dev environment
Prerequisites
This project targets node 18 and up.
Setup
- Fork this repo and clone it.
- In a terminal, navigate to the
opentogethertube
folder and run
npm install -g yarn
yarn
- Next you need to set up your configuration. Start by copying the example
config in the
env
folder to a new file calleddevelopment.toml
cp env/example.toml env/development.toml
- Create a new project on Google Cloud
- Add "YouTube Data API v3" and "Google Drive API" to the project
- Obtain a YouTube API key
- Obtain a Google Drive API key
- Not necessary if you don't plan to stream videos from Google Drive, which you probably shouldn't do anyway because Google doesn't like that.
- Open
env/development.toml
and put in the appropriate api keys. - Initialize your local database.
yarn workspace ott-server run sequelize-cli db:migrate
- Install redis. This is used to store room state and user sessions across server restarts.
Testing
To run the unit test suite, run
yarn test
To run the e2e component test suite, run
yarn run cy:run --component
To run the e2e test suite, run
yarn run cy:run
However, while you're developing, you'll probably want to run the tests in headed mode. To do this, run
yarn run cy:open
This works for both the component and e2e tests.
How to run
This project has 2 main components: the client and the server. You can run both of them simultaneously using the command
Linux / Mac
yarn run dev
Windows
yarn run dev-windows
Sometimes, you may want to run them seperately so you can use breakpoints to debug. Using VSCode, this is trivial.
To start the server: Debug > Select "Launch Program" > Start
To start the client: yarn workspace ott-client serve