Service Configuration Print

  • 0

All configuration is done through /opt/o11/o11.cfg.

 

After making changes, restart the service:

systemctl restart o11

 

Top-Level Options

Option Type Description Default
Port number HTTP port to listen on 80
Service object Engine options (see below) {}
Server string License server address. Do not change unless instructed.
Users array Admin user accounts

 

Users

Each entry in the Users array has the following fields:

Field Description
Username Login name
Password SHA-256 hash of the password
IsAdmin Admin privileges (true/false)
HasWebAccess Can access web UI (true/false)
ProviderIds Array of provider IDs the user can access (empty = all)

To generate a password hash: echo -n "yourpassword" | sha256sum

 

Service Options

The Service object passes options to the o11 engine. Values are mapped by type:

Type Example Result
true "headless": true Flag enabled
false "keep": false Flag omitted
string "keys": "keys.txt" Option with value
number "v": 3 Option with numeric value
array "H": ["k:v", "k:v"] Option repeated per entry

 

General

Option Description Default
b HTTP bind address 0.0.0.0
baseurl HTTP base URL prefix
path Working directory (subdirectories created here)
headless Disable the web UI false
legacyui Use the legacy web UI false
https Use HTTPS (requires server.crt and server.key in /opt/o11/) false
stdout Log to stdout instead of file false

 

Authentication

Option Description Default
user Static admin username
password Static admin password
jwtsecret JWT signing secret (random if empty)
allow Comma-separated IPs that skip authentication

 

Streaming

Option Description Default
streambind Streaming bind address 0.0.0.0
streamport Separate streaming port (0 = use HTTP port) 0
noautostart Disable channel autostart on boot false
noramfs Allow non-RAMFS for ./hls/live false
pipeoutputcmd Pipe output command format tsplay -stdin %s
plstreamname Playlist stream name format (%p = provider, %s = stream) [%p] %s
defaultprovid Default provider ID for the UI
debugspeed Print fragment download queue info false

 

EPG

Option Description Default
epgbind EPG bind address 0.0.0.0
epgport EPG port (0 = disabled) 0

 

Logging

Option Description Default
v Log level: 0=error, 1=warning, 2=info, 3=debug, 4=verbose, 5=trace 2
V Enable special logs for modules (e.g. subtitles)
logsize Max log file size in MB 100
logscount Number of log backups to keep 7
logtomain Copy stream logs to main log false
logtomainonly Only log streams to main log false

 

VOD Downloader

Option Description Default
manifest Convert this manifest to MP4 then exit
audio Audio track indexes (comma-separated)
video Video track index
subs Subtitle indexes (all or comma-separated)
extrasubs Extra subtitle files (array) []
maxsegments Max segments to download (0 = all) 0
dashperiod DASH period index (-1 = non-ad periods, -2 = auto) -2
H Custom HTTP headers (array) []
key kid:key decryption pairs (array) []
keys Path to kid:key list file keys.txt
a Custom User-Agent string Chrome UA
doh DNS-over-HTTPS URL
novodmetadata Disable VOD track metadata false
keep Keep temporary media files (debug only) false

 

VOD CDM

Option Description Default
usecdm Enable CDM script false
cdmmode CDM mode: internal or external internal
cdmtype DRM type: widevine, playready, or verimatrix widevine
cdmparams Extra CDM script parameters
script CDM script name auto

 

Paths

Option Description Default
f FFmpeg binary path ffmpeg
tsplay tsplay binary path tsplay
providers Providers directory providers/
rec Recordings config file o11-rec.cfg

 

Advanced

Option Description Default
flushperiod Seconds between config flush to file (0 = disabled) 300
replay Local stream path to replay
replaymode Replay mode: ffmpeg or internalremuxer internalremuxer

 

Example Configuration


    "Service": {
        "headless": true,
        "v": 3,
        "b": "0.0.0.0",
        "allow": "192.168.1.0/24",
        "keys": "keys.txt",
        "https": false,
        "epgport": 8081,
        "logsize": 200,
        "logscount": 14,
        "H": [
            "X-Forwarded-For: 1.2.3.4",
            "Authorization: Bearer mytoken"
        ]
    }

 

Common Tasks

Task Configuration
Change the port Set "Port": 8080
Enable HTTPS Set "https": true in Service, place server.crt and server.key in /opt/o11/
Run headless (no UI) Set "headless": true in Service
Increase log verbosity Set "v": 4 (debug) or "v": 5 (trace) in Service
Add custom HTTP headers "H": ["Authorization: Bearer token"] in Service
EPG on separate port Set "epgport": 8081 in Service
Allow IP to skip auth Set "allow": "10.0.0.5" in Service

Was this answer helpful?

« Back