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](https://github.com/lightbend/config) library. Default configuration values are now stored in [reference.conf](src/main/resources/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`: ```hocon jibri { api { http { external-api-port = internal-api-port = } } } ``` --- ##### Single use mode Old method: in `config.json`: ```json { "single_use_mode": } ``` New method: in `jibri.conf`: ```hocon jibri { single-use-mode = } ``` --- ##### Recordings directory Old method: in `config.json`: ```json { "recording_directory": } ``` New method: in `jibri.conf`: ```hocon jibri { recording { recordings-directory = } } ``` --- ##### Finalize script path Old method: in `config.json`: ```json { "finalize_recording_script_path": } ``` New method: in `jibri.conf`: ```hocon jibri { recording { finalize-script = } } ``` --- ##### Enabling statsD Old method: in `config.json`: ```json { "enable_stats_d": } ``` New method: in `jibri.conf`: ```hocon jibri { stats { enable-stats-d = host = port = } } ``` --- ##### XMPP environment config Old method: in `config.json`: ```json { "xmpp_environments": [ { "name": , "xmpp_server_hosts": List, "xmpp_domain": , "control_login": { "domain": , "username": , "password": }, "control_muc": { "domain": , "room_name": , "nickname": }, "call_login": { "domain": , "username": , "password": }, "room_jid_domain_string_to_strip_from_start": , "usage_timeout": }, { }, ] } ``` New method: in `jibri.conf`: ```hocon jibri { api { xmpp { environments = [ { name = xmpp-server-hosts = > xmpp-domain = control-muc { domain = room-name = nickname = } control-login { domain = username = password = } sip-control-muc { domain = room-name = nickname = } call-login { domain = username = password = } strip-from-room-domain = usage-timeout = trust-all-xmpp-certs = }, { } ] } } } ``` An example of a new environments config can be found [here](example_xmpp_envs.conf).