Skip to content
master
Switch branches/tags
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
bin
 
 
 
 
paw
 
 
 
 
 
 
 
 
 
 
 
 

Build Status License

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

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 access_key and secret_key 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

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 CONFIG_PATH="$(pwd)/config/config.yaml"

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:

service arch

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.