Media Processing Pipeline

The final media center
What is TRITON?
TRITON is a media pipeline that aims to go one step further than services like Jellyfin and Plex provide. Media is fetched from a magnitude of supported protocols (HTTP, S3-compatible, Usenet, etc), converted into multiple different quality levels, and then uploaded to a S3-compatible storage provider in an organized fashion. This enables cheap storage and ensures that buffering is never a problem. On top of all of this, a frontend allows users to watch your media on the go.
Installing Triton
We have a few installation options:
* Quick evaluation * Kubernetes * Docker
Quick Evaluation
NOTE: This is not a production setup. It has insecure credentials, and no data persistence.
$ docker-compose up
Kubernetes
Clone the charts repo.
$ git clone git@github.com:tritonmedia/charts
$ cd charts
$ helm install ./tritonmedia
You should now have the triton platform running!
Docker
NOTE: This is intended for a single-node setup.
$ cd contrib/docker-compose
You should checkout the config/config.yaml and the docker-compose.yaml here to assume that you are OK with the CHANGME accesskey and secretkey being set for minio, as well as the postgres passwords.
When you are:
$ docker-compose up -d
The pipeline is now running! The API is accessible at <ip>:3401
Developing on Triton
Dependencies
* Docker * docker-compose
Take a look at the config in ./config/config.example.yaml. That contains information on what the config stucture is, then look at ./config/config.yaml. This is the config that will be used in this environment.
Then run the development script, which will pull down the latest versions of all services.
./bin/download-test-file.sh # Optional: Used to download a test file (used by ./bin/emulate-webhook.sh)
./development.sh
That's it, the services are now running
Hacking on a service
Clone the service into this dir.
git clone git@github.com:tritonmedia/<service>
Stop the running service
docker-compose stop <service>
Export CONFIG_PATH (in the development repo, base, run this)
export C
Then run the service like normal. Yep. It's that simple.
API Documentation
Services are "documented" in their Paw files located in ./paw. Paw is an awesome API client that can be located here: https://paw.cloud/. They have a free trial which can be used to export to Postman if you do not want to purchase this client.
Architecture
For now all we have documented is this graph:
.png)
Important Things
* Config field is denoted by the NODE_ENV variable, assumes debug if not set. For production use NODE_ENV=production. * Most applications use the PORT variable to determine which port to run on, you should set this when running locally.