Skip to content
KRATOSStreaming Control
Get started

Configuration

kratos.cfg is a JSON document. Unknown fields are preserved, and every field under Rs is optional.

kratos.cfg#

kratos.cfg
{
  "Server": "https://license.example.com",   // license endpoint
  "EpgUrl": "",
  "Users": [
    {
      "Username": "admin",
      "PasswordPlain": "change-me",           // hashed (argon2id) on first load
      "IsAdmin": true,
      "HasWebAccess": true,
      "Network": "",                          // optional IP / CIDR restriction
      "ProviderIds": []                       // non-admins: providers they may watch
    }
  ],
  "Rs": {
    "Bind": "0.0.0.0:18080",
    "ProvidersPath": "providers",
    "EpgPort": 0,
    "LogLevel": 4,                            // 0..6
    "LogFile": "",
    "UpdateUrl": "https://updates.kratosott.com"
  }
}
Keep kratos.cfg out of version control — it holds credentials and license identifiers. Passwords given as PasswordPlain are replaced with an argon2id hash on first load.

Providers#

Each provider is one file at providers/<id>.cfg holding a JSON object with a Streams[] array. Every stream has a Type (linear, event or vod), a Manifest URL, optional Keys (one kid:key per line), and optional Script / ScriptParams. KRATOS keeps any key it doesn't recognise, so files round-trip without loss.

Hot reload

You can edit providers from the UI, and changes are hot-reloaded — no restart required. See Provider Scripts for the Python SDK that powers login, channels, EPG and key acquisition.