session-service

Session Service

CI status

License: MIT Version

Code Smells Vulnerabilities Duplicated Lines (%) Quality Gate Status Technical Debt Security Rating

Session Service is responsible for managing a Youtube streaming session.

It ensures synchronized video playback, in response to play and stop performed by the users. It also manages a chat through which users can communicate each other while watching the video.

Node.js Express Socket.IO

Docker

GitHub Actions Semantic Release Semantic Versioning Conventional Commits Renovate SonarCloud

Typedoc

In order to run it, specify the following environment variables:

Variable Description Default
SESSION_SERVICE_HOSTNAME The hostname of the service localhost
PROFILE_SERVICE_PORT The port of the service 4000
PROFILE_SERVICE_HOSTNAME The hostname of the profile service localhost
PROFILE_SERVICE_PORT The port of the profile service 8080
AUTH_SERVICE_HOSTNAME The hostname of the auth service localhost
AUTH_SERVICE_PORT The port of the auth service 3000

It is possible to run the service both locally or through a Docker container:

  1. To run the service locally:
    git clone git@github.com:LetsStreamIt/session-service.git && cd session-service
    npm install
    npm run build && npm run start
  2. Using the docker container:
    1. Create a env.list file specifying the environment variable values. Syntax should look like this:

      SESSION_SERVICE_HOSTNAME=YOUR_SESSION_SERVICE_HOSTNAME
      SESSION_SERVICE_PORT=YOUR_SESSION_SERVICE_PORT
      PROFILE_SERVICE_HOSTNAME=YOUR_PROFILE_SERVICE_HOSTNAME
      PROFILE_SERVICE_PORT=YOUR_PROFILE_SERVICE_PORT
      AUTH_SERVICE_HOSTNAME=YOUR_AUTH_SERVICE_HOSTNAME
      AUTH_SERVICE_PORT=YOUR_AUTH_SERVICE_PORT
      

      Either specify their values if different from the default, or omit the entire row otherwise.

    2. Run the docker container:

      docker run --env-file ./env.list ghcr.io/letsstreamit/session-service:main
      

Session Service is licensed under the MIT License - see the LICENSE file for details.