jibri.conf 4.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119
  1. {{ $JIBRI_USAGE_TIMEOUT := .Env.JIBRI_USAGE_TIMEOUT | default "0" -}}
  2. {{ $JIBRI_RECORDING_RESOLUTION := .Env.JIBRI_RECORDING_RESOLUTION | default "1280x720" -}}
  3. {{ $XMPP_TRUST_ALL_CERTS := .Env.XMPP_TRUST_ALL_CERTS | default "true" | toBool -}}
  4. {{ $XMPP_PORT := .Env.XMPP_PORT | default "5222" -}}
  5. {{ $XMPP_SERVERS := splitList "," .Env.XMPP_SERVER -}}
  6. {{/* assign env from context, preserve during range when . is re-assigned */}}
  7. {{ $ENV := .Env -}}
  8. jibri {
  9. // A unique identifier for this Jibri
  10. id = "{{ .Env.JIBRI_INSTANCE_ID }}"
  11. api {
  12. {{ if or .Env.JIBRI_HTTP_API_EXTERNAL_PORT .Env.JIBRI_HTTP_API_INTERNAL_PORT -}}
  13. http {
  14. {{ if .Env.JIBRI_HTTP_API_EXTERNAL_PORT -}}
  15. external-api-port = {{ .Env.JIBRI_HTTP_API_EXTERNAL_PORT }}
  16. {{ end -}}
  17. {{ if .Env.JIBRI_HTTP_API_INTERNAL_PORT -}}
  18. internal-api-port = {{ .Env.JIBRI_HTTP_API_INTERNAL_PORT }}
  19. {{ end -}}
  20. }
  21. {{ end -}}
  22. xmpp {
  23. // See example_xmpp_envs.conf for an example of what is expected here
  24. environments = [
  25. {{ range $index, $element := $XMPP_SERVERS -}}
  26. {{ $SERVER := splitn ":" 2 $element }}
  27. {
  28. // A user-friendly name for this environment
  29. name = "{{ $ENV.XMPP_ENV_NAME }}-{{$index}}"
  30. // A list of XMPP server hosts to which we'll connect
  31. xmpp-server-hosts = [
  32. "{{ $SERVER._0 }}"
  33. ]
  34. // The base XMPP domain
  35. xmpp-domain = "{{ $ENV.XMPP_DOMAIN }}"
  36. {{ if $ENV.PUBLIC_URL -}}
  37. // An (optional) base url the Jibri will join if it is set
  38. base-url = "{{ $ENV.PUBLIC_URL }}"
  39. {{ end -}}
  40. // The MUC we'll join to announce our presence for
  41. // recording and streaming services
  42. control-muc {
  43. domain = "{{ $ENV.XMPP_INTERNAL_MUC_DOMAIN }}"
  44. room-name = "{{ $ENV.JIBRI_BREWERY_MUC }}"
  45. nickname = "{{ $ENV.JIBRI_INSTANCE_ID }}"
  46. }
  47. // The login information for the control MUC
  48. control-login {
  49. domain = "{{ $ENV.XMPP_AUTH_DOMAIN }}"
  50. port = "{{ $SERVER._1 | default $XMPP_PORT }}"
  51. username = "{{ $ENV.JIBRI_XMPP_USER }}"
  52. password = "{{ $ENV.JIBRI_XMPP_PASSWORD }}"
  53. }
  54. // The login information the selenium web client will use
  55. call-login {
  56. domain = "{{ $ENV.XMPP_RECORDER_DOMAIN }}"
  57. username = "{{ $ENV.JIBRI_RECORDER_USER }}"
  58. password = "{{ $ENV.JIBRI_RECORDER_PASSWORD }}"
  59. }
  60. // The value we'll strip from the room JID domain to derive
  61. // the call URL
  62. strip-from-room-domain = "{{ $ENV.JIBRI_STRIP_DOMAIN_JID }}."
  63. // How long Jibri sessions will be allowed to last before
  64. // they are stopped. A value of 0 allows them to go on
  65. // indefinitely
  66. usage-timeout = "{{ $JIBRI_USAGE_TIMEOUT }}"
  67. // Whether or not we'll automatically trust any cert on
  68. // this XMPP domain
  69. trust-all-xmpp-certs = {{ $XMPP_TRUST_ALL_CERTS }}
  70. }
  71. {{ end }}
  72. ]
  73. }
  74. }
  75. recording {
  76. recordings-directory = "{{ .Env.JIBRI_RECORDING_DIR }}"
  77. {{ if .Env.JIBRI_FINALIZE_RECORDING_SCRIPT_PATH -}}
  78. finalize-script = "{{ .Env.JIBRI_FINALIZE_RECORDING_SCRIPT_PATH }}"
  79. {{ end -}}
  80. }
  81. ffmpeg {
  82. resolution = "{{ $JIBRI_RECORDING_RESOLUTION }}"
  83. {{ if .Env.JIBRI_FFMPEG_AUDIO_SOURCE -}}
  84. // The audio source that will be used to capture audio on Linux
  85. audio-source = "{{ .Env.JIBRI_FFMPEG_AUDIO_SOURCE }}"
  86. {{ end -}}
  87. {{ if .Env.JIBRI_FFMPEG_AUDIO_DEVICE -}}
  88. // The audio device that will be used to capture audio on Linux
  89. audio-device = "{{ .Env.JIBRI_FFMPEG_AUDIO_DEVICE }}"
  90. {{ end -}}
  91. }
  92. {{ if .Env.CHROMIUM_FLAGS -}}
  93. chrome {
  94. // The flags which will be passed to chromium when launching
  95. flags = [
  96. "{{ join "\",\"" (splitList "," .Env.CHROMIUM_FLAGS) }}"
  97. ]
  98. }
  99. {{ end -}}
  100. {{ if .Env.ENABLE_STATS_D -}}
  101. stats {
  102. enable-stats-d = {{ .Env.ENABLE_STATS_D }}
  103. }
  104. {{ end -}}
  105. }