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.
We have a few installation options:
NOTE: This is not a production setup. It has insecure credentials, and no data persistence.
$ docker-compose up
Clone the charts repo.
$ git clone firstname.lastname@example.org:tritonmedia/charts $ cd charts $ helm install ./tritonmedia
You should now have the triton platform running!
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
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
Developing on Triton
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 email@example.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.
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.
For now all we have documented is this graph:
- Config field is denoted by the
debugif not set. For production use
- Most applications use the
PORTvariable to determine which port to run on, you should set this when running locally.