/bitwave-media-server

A dockerized container of NGINX-RTMP and Node.js with transcoding, archiving & stream authentication.

Primary LanguageTypeScriptMIT LicenseMIT

Bitwave Media Server

An RTMP ingestion server + API server packaged as docker containers for managing and controlling streams, restreams, and archives.

This is the backbone of livestreaming for [bitwave.tv]

Utilizing tech such as NGINX, ffmpeg, node.js, and docker.

Commands

Updating Server: (an easier method is available via server-scritps)

docker pull bitwavetv/bms-api-server:latest
docker pull bitwavetv/bms-nginx-server:latest
docker-compose up --build -d

Updating Dev Server:

docker pull bitwavetv/bms-api-server:dev
docker pull bitwavetv/bms-nginx-server:dev
docker-compose up --build -d

Rebuild & View logs:

docker-compose up --build -d && docker-compose logs --tail 25 -f

View Logs: (an easier method is available via server-scritps)

docker-compose logs --tail 25 -f

Build NGINX server:

cd nginx-server
docker build -t bitwavetv/bms-nginx-server:latest .
- or -
docker-compose build

Build API server:

cd api-server
docker build -t bitwavetv/bms-api-server:latest .
- or -
docker-compose build

Push updated containers to docker:

docker push bitwavetv/bms-nginx-server
docker push bitwavetv/bms-api-server

Exec bash into running container:

docker exec -it [containerId] bash

Docker-Compose start server:

docker-compose up

Docker-Compose build & run detatched:

docker-compose up --build -d

Update Restart & Show Logs:

docker pull bitwavetv/bms-api-server && \
docker pull bitwavetv/bms-nginx-server && \
docker-compose up --build -d && \
docker-compose restart && \
docker-compose logs --tail 25 -f

NPM Helper Commands

These basically do what is described above, but without requiring as much typing.

To execute the follow commands, preface them with: npm run COMMAND.

docker-build:dev:api

Build API Service, tag as dev.

docker-build:dev:nginx

Build NGINX Service, tag as dev.

docker-push:dev:api

Push API Server image, tagged as dev.

docker-push:dev:nginx

Push NGINX Server image, tagged as dev.

docker-build:dev

Build ALL Services, tagged as dev.

docker-push:dev

Push ALL Servicers image, tagged as dev.

docker-publish:dev

(This is the most convient command)
One shot build and push ALL services, tagged as dev.

Server Helper Scripts

see: server-scripts

Currently, the following commands are available:

Updates and restarts ingestion server.

Show docker logs for bitwave-media-server


Outdated

(aka I no longer remember the context of these commands, and they are probably not needed)

Cache Builder:

docker build \
   --target builder \
   -t bitwavetv/bitwave-media-server:builder .

Build from cache:

docker build \
    --cache-from bitwavetv/bitwave-media-server:builder \
    --cache-from bitwavetv/bitwave-media-server:latest \
    -t bitwavetv/bitwave-media-server:latest .