Files
upstream-jibri/doc/config_migration_guide.md
upstream-mirror 650a143b63
Some checks failed
Java CI with Maven / Java 17 (push) Failing after 4m40s
Java CI with Maven / Java 21 (push) Failing after 4m41s
snapshot of https://github.com/jitsi/jibri.git @ 3b45602c539ec69d128ea152ae587d0b6582191a (2026-09-15)
2026-09-15 16:13:58 +05:00

4.7 KiB

Jibri is moving to a new config file. The old config file/command-line-arguments will be supported for a while and eventually removed. This doc is a guide on how to migrate from an "old" configuration to a new one.

The new configuration leverages the Typesafe config library. Default configuration values are now stored in reference.conf. Overrides are written to a file and passed via a JVM parameter:

-Dconfig.file=/path/to/config.conf

Property migrations


Notes

  • No default values have been changed, so if you weren't specifying a property before you can continue to leave it unspecified and the value will not change.
  • The new configuration library supports different formats and many different features in configuration (substitutions, includes, overrides via environment variables, etc.). The text here describes the 'plainest' way to define a new config file, but other methods are possible. Read about the Typesafe config to learn more.
  • The example below assume that you will define a new configuration file called jibri.conf

Configuration file

Old method: path to a JSON file via command line argument --config=/path/to/config.json New method: path to a HOCON .conf file passed via JVM arg: -Dconfig.file=/path/to/config.conf


Internal and external HTTP API ports

Old method: command line arguments --http-api-port and --internal-http-port New method: in jibri.conf:

jibri {
    api {
        http {
            external-api-port = <number>
            internal-api-port = <number>
        }
    }
}

Single use mode

Old method: in config.json:

{
    "single_use_mode": <Boolean>
}

New method: in jibri.conf:

jibri {
    single-use-mode = <boolean>
}

Recordings directory

Old method: in config.json:

{
    "recording_directory": <path>
}

New method: in jibri.conf:

jibri {
    recording {
        recordings-directory = <path>
    }
}

Finalize script path

Old method: in config.json:

{
    "finalize_recording_script_path": <path>
}

New method: in jibri.conf:

jibri {
    recording {
        finalize-script = <path>
    }
}

Enabling statsD

Old method: in config.json:

{
    "enable_stats_d": <boolean>
}

New method: in jibri.conf:

jibri {
    stats {
        enable-stats-d = <boolean>
        host = <string>
        port = <int>
    }
}

XMPP environment config

Old method: in config.json:

{
    "xmpp_environments": [
        {
            "name": <String>,
            "xmpp_server_hosts": List<String>,
            "xmpp_domain": <String>,
            "control_login": {
                "domain": <String>,
                "username": <String>,
                "password": <String>
            },
            "control_muc": {
                "domain": <String>,
                "room_name": <String>,
                "nickname": <String>
            },
            "call_login": {
                "domain": <String>,
                "username": <String>,
                "password": <String>
            },
            "room_jid_domain_string_to_strip_from_start": <String>,
            "usage_timeout": <number>
        },
        { <more> },
    ]
}

New method: in jibri.conf:

jibri {
    api {
        xmpp {
            environments = [
                {
                    name = <String>
                    xmpp-server-hosts = <List<String>>
                    xmpp-domain = <String>

                    control-muc {
                        domain = <String>
                        room-name = <String>
                        nickname = <String>
                    }

                    control-login {
                        domain = <String>
                        username = <String>
                        password = <String>
                    }

                    sip-control-muc {
                        domain = <String>
                        room-name = <String>
                        nickname = <String>
                    }

                    call-login {
                        domain = <String>
                        username = <String>
                        password = <String>
                    }

                    strip-from-room-domain = <String>
                    usage-timeout = <Duration String i.e. '5 minutes' or '1 hour'>

                    trust-all-xmpp-certs = <boolean>
                },
                { <more> }
            ]
        }
    }
}

An example of a new environments config can be found here.