The final media center
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 [email protected]: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
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
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
Clone the service into this dir.
git clone [email protected]: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
NODE_ENV
variable, assumesdebug
if not set. For production useNODE_ENV=production
. - Most applications use the
PORT
variable to determine which port to run on, you should set this when running locally.