/opentogethertube

Watch videos with your friends. The spiritual successor to TogetherTube, preserving the spirit of it's simple to use interface, while improving it's look, feel, and reliability.

Primary LanguageTypeScriptGNU Affero General Public License v3.0AGPL-3.0

OpenTogetherTube

CI/CD codecov Quality Gate Status Docker size

The easy way to watch videos with your friends.

https://opentogethertube.com/

Deployment

Prerequisites

This project targets node 14 and up.

Setup

  1. Clone this repo.
git clone https://github.com/dyc3/opentogethertube.git
  1. Install redis

Ubuntu

sudo apt install redis
  1. Install dependencies.
npm install -g yarn
yarn
  1. Copy and fill out the configuration file
cp env/example.env env/production.env

Please read the config docs here for which options are required.

  1. Build Vue files so they can be served statically.
yarn run build
  1. Run database migrations
NODE_ENV=production-sqlite yarn workspace ott-server run sequelize-cli db:migrate
  1. Run the server.
NODE_ENV=production yarn start

You can also specify the port the server will listen on by setting the PORT environment variable.

PORT=8080 NODE_ENV=production yarn start

Docker

See the Docker README

Contributing

Contributions are welcome! Check out issues that have the "good first issue" label.

Setting up your dev environment

Prerequisites

This project targets node 14 and up.

Setup

  1. Fork this repo and clone it.
  2. In a terminal, navigate to the opentogethertube folder and run
npm install -g yarn
yarn
  1. Next you need to set up your configuration. Start by copying the example config in the env folder to a new file called development.env
cp env/example.env env/development.env
  1. Create a new project on Google Cloud
  2. Add "YouTube Data API v3" and "Google Drive API" to the project
  3. Obtain a YouTube API key
  4. 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.
  5. Open env/development.env and replace API_KEY_GOES_HERE with the appropriate api key.
  6. Initialize your local database.
yarn workspace ott-server run sequelize-cli db:migrate
  1. Install redis. This is used to store room state and user sessions across server restarts.

Testing

To run the test suite, run

yarn test

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