Documentation

Configuration

Every knob in config.toml.

Mythos reads its configuration from config.toml. Every setting also has an environment-variable equivalent, prefixed with MYTHOS_, which takes precedence — useful in containerized deployments.

A minimal config

[server]
host = "0.0.0.0"
port = 7878

[database]
url = "sqlite:///var/lib/mythos/mythos.db"

[[libraries]]
name = "Films"
path = "/media/films"
kind = "movies"

[[libraries]]
name = "Shows"
path = "/media/shows"
kind = "tv"

Server

KeyDefaultDescription
host0.0.0.0Address to bind
port7878TCP port
data_dir/var/lib/mythosWhere Mythos stores its state
tls.cert(none)Path to a TLS certificate. Enables HTTPS.
tls.key(none)Path to the private key

Database

Mythos uses SQLite by default — fast, transactional, and zero-administration for home use. PostgreSQL is supported for households that want shared deployments.

[database]
url = "sqlite:///var/lib/mythos/mythos.db"
# or
url = "postgres://mythos:secret@localhost/mythos"

Libraries

Each library is a top-level collection of media. You can mix kinds — movies, tv, music, photos — across as many libraries as you like.

[[libraries]]
name = "Films"
path = "/media/films"
kind = "movies"
metadata = ["tmdb", "local-nfo"]

[[libraries]]
name = "Family Photos"
path = "/media/photos"
kind = "photos"

Transcoding

[transcoding]
hardware = "auto"      # one of: auto, vaapi, qsv, nvenc, videotoolbox, none
threads = 0            # 0 = use all cores
segment_duration = 6   # seconds per HLS segment

Mythos auto-detects the best hardware encoder available. Set hardware = “none” if you’d rather stick to CPU encoding.