This is the main Mvideo repository.
It contains links to each Mvideo subproject. This entire repository can be used to setup a single contained Mvideo app.
This project depends on certain environmental variables which you must provide in a .env file These variables are:
DEBUG=True
POSTGRES_HOST=db
POSTGRES_USER=user
POSTGRES_PASSWORD=pass
POSTGRES_DB=example_db
VIDEO_ROOT=/srv/videos
API_HOST=api
API_PORT=8060
PGDATA=/var/lib/postgresql/data
To start using this repo you must first have docker installed, then follow these instructions:
- Clone this repo
git clone git@example.com/mvideo/mvideo
- Update your submodules
git submodule update --recursive --init
- Start the docker images
docker-compose updocker-compose up -f docker-compose.yml -f docker-compose.dev.ymlto start in developement mode.
Most details about the deployment setup can be found in nginx/nginx.conf,
docker-compose.yml and from the mvideo-docs project but I will give a brief
description here.
Volumes - Docker volumes are used to store persistent data and also to share the data across different containers. Currently there are 3 volumes:
- psqldata - postgres container data goes here. It is mounted where psql stores
all its data,
/var/lib/postgresql/data - streamdata - When streaming, the nginx-rtmp-module creates temporary files
which we store in
/data. This volume is unncessary as these files do not have to be (and are not) persistent but it's useful for debugging purposes. - archivedata - Mounted at
/srv/videothis volume is where we store the video files created from each stream.