Skip to content

SubCoder1/Popcorn

Repository files navigation

Popcorn

Visual Studio Code Go Redis Docker

Popcorn is live! at https://popcorntv.click

Let's say you're very far from your friends and family, but you want to watch a movie together. With Popcorn, you can create a virtual space where everyone can join, hangout and watch anything with each other! This repository features the server side of Popcorn, while the front end is presented by Popcorn-web.

Architecture

Popcorn architecture (1)

Requirements (Without Docker)

Go <1.20 or above>

Redis <5 or above>

Building (With Docker)

  1. Get Livekit Host, API, Secret and RTMP Host credentials and save those in config/secrets.env. This is a one time thing.

  2. Create a docker network using the command below:

    docker network create -d bridge popcorn-network
  3. Clone this repository and run it using the command below:

    docker compose --env-file=./config/secrets.env up --build -d
  4. Clone Popcorn-web and run it using the command below:

    docker compose up --build -d
  5. Launch the nginx docker container, which'll receive both the backend and the frontend's traffic:

    // In Popcorn repository
    cd nginx/
    
    docker compose -f nginx-compose.yaml up --build -d
  6. Finally, Open http://localhost and try it out!

Building (without Docker)

Linux Only

  1. Get Livekit Host, API, Secret and RTMP Host credentials and save those in config/secrets.env. This is a one time thing.

  2. Clone this repository and run it using the command below (Make sure redis-server is installed):

    go mod download
    
    make load-db
    
    make local
    
    # Server is running on port 8080
  3. Clone Popcorn-web and run the application (You'll find front-end docs there).

  4. Finally, Open http://localhost:8081 and try it out!

About

Popcorn is a virtual watchparty platform written in Go which lets a group of people watch uploaded content together.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages