Configure docker recording

I got this configuration of the variables, but it doesn’t say where to configure, could someone help me? I’m running on Docker

I want 2 things:

  1. Activate the part to record in Jitsi
  2. Choose where the recorded files will be stored, which directory.

Set those in your .env file.

1 Like
JIBRI_RECORDER_USER=user01
JIBRI_RECORDER_PASSWORD=123
JIBRI_RECORDING_DIR=/config/recordings
JIBRI_FINALIZE_RECORDING_SCRIPT_PATH=/config/finalize.sh

A doubt!

I want to save recordings in /jitsi/recording where do I configure this? in docker-compose.yml?

This user and password is defined, is it when I enter jitsi I have to enter this user or when I send it to record it will ask for user and password to record there I type user and password?

No, in the .env file, where the other env vars are.

That is for Jibri (the recording component) to connect to the backend.

I put it in the .env file, but I want to write the files in a specific directory, I want to know where I configure this.

jibri username, did I put any?

File .env

You can specify the directory using the env variable:

JIBRI_RECORDING_DIR=path/to/directory

Additionally, you must use the registered name for the recorder user in the variable JIBRI_RECORDER_USER

I put the default user, password, directory, but when I click on record it gives an error, but I don’t know which one.

File .env

# Configurção de gravação
JIBRI_RECORDER_USER=recorder
JIBRI_RECORDING_DIR=/home/tales/Drive/Biglive
$ docker-compose -f docker-compose.yml -f jibri.yml up -d
[+] Running 5/5
 ⠿ Container biglive-biglive_web-1      Started                                                                                                          4.7s
 ⠿ Container biglive-biglive_jvb-1      Started                                                                                                          5.0s
 ⠿ Container biglive-biglive_jicofo-1   Started                                                                                                          5.1s
 ⠿ Container biglive-biglive_prosody-1  Started                                                                                                          4.7s
 ⠿ Container biglive-jibri-1            Started                                                                                                          5.2s
biglive-jibri-1            | Current Operating System: Linux 6df62b706532 5.15.0-1009-oracle #12-Ubuntu SMP Thu Jun 2 11:44:09 UTC 2022 aarch64
biglive-jibri-1            | Kernel command line: BOOT_IMAGE=/boot/vmlinuz-5.15.0-1009-oracle root=UUID=7abea936-8ed6-442f-a0f0-20a26b734c82 ro console=tty1 console=ttyS0 nvme.shutdown_timeout=10 libiscsi.debug_libiscsi_eh=1 crash_kexec_post_notifiers
biglive-jibri-1            | Build Date: 16 December 2021  05:08:23PM
biglive-jibri-1            | xorg-server 2:1.20.11-1+deb11u1 (https://www.debian.org/support) 
biglive-jibri-1            | Current version of pixman: 0.40.0
biglive-jibri-1            |    Before reporting problems, check http://wiki.x.org
biglive-jibri-1            |    to make sure that you have the latest version.
biglive-jibri-1            | Markers: (--) probed, (**) from config file, (==) default setting,
biglive-jibri-1            |    (++) from command line, (!!) notice, (II) informational,
biglive-jibri-1            |    (WW) warning, (EE) error, (NI) not implemented, (??) unknown.
biglive-jibri-1            | (++) Log file: "/tmp/xorg.log", Time: Tue Aug 30 21:53:48 2022
biglive-jibri-1            | (++) Using config file: "/etc/jitsi/jibri/xorg-video-dummy.conf"
biglive-jibri-1            | (==) Using system config directory "/usr/share/X11/xorg.conf.d"
biglive-jibri-1            | Jibri 2022-08-30 21:53:49.095 INFO: [1] MainKt.handleCommandLineArgs#186: Jibri run with args [--config, /etc/jitsi/jibri/config.json]
biglive-jibri-1            | Jibri 2022-08-30 21:53:49.290 INFO: [1] MainKt.setupLegacyConfig#211: Checking legacy config file /etc/jitsi/jibri/config.json
biglive-jibri-1            | Jibri 2022-08-30 21:53:49.291 INFO: [1] MainKt.setupLegacyConfig#214: Legacy config file /etc/jitsi/jibri/config.json doesn't exist
biglive-jibri-1            | Jibri 2022-08-30 21:53:49.703 FINE: [1] MainKt$setupMetaconfigLogger$1.debug#232: FallbackSupplier: checking for value via suppliers:
biglive-jibri-1            |   LambdaSupplier: 'JibriConfig::jibriId'
biglive-jibri-1            |   ConfigSourceSupplier: key: 'jibri.id', type: 'kotlin.String', source: 'config'
biglive-jibri-1            | Jibri 2022-08-30 21:53:49.705 FINE: [1] MainKt$setupMetaconfigLogger$1.debug#232: LambdaSupplier: Trying to retrieve value via JibriConfig::jibriId
biglive-jibri-1            | Jibri 2022-08-30 21:53:49.706 FINE: [1] MainKt$setupMetaconfigLogger$1.debug#232: FallbackSupplier: failed to find value via LambdaSupplier: 'JibriConfig::jibriId': org.jitsi.metaconfig.ConfigException$UnableToRetrieve$Error: class java.lang.NullPointerException
biglive-jibri-1            | Jibri 2022-08-30 21:53:49.709 FINE: [1] MainKt$setupMetaconfigLogger$1.debug#232: ConfigSourceSupplier: Trying to retrieve key 'jibri.id' from source 'config' as type kotlin.String
biglive-jibri-1            | Jibri 2022-08-30 21:53:49.766 FINE: [1] MainKt$setupMetaconfigLogger$1.debug#232: ConfigSourceSupplier: Successfully retrieved key 'jibri.id' from source 'config' as type kotlin.String
biglive-jibri-1            | Jibri 2022-08-30 21:53:49.768 FINE: [1] MainKt$setupMetaconfigLogger$1.debug#232: FallbackSupplier: value found via ConfigSourceSupplier: key: 'jibri.id', type: 'kotlin.String', source: 'config'
biglive-jibri-1            | Jibri 2022-08-30 21:53:49.772 INFO: [1] MainKt.main#55: Jibri starting up with id jibri-294483795
biglive-jibri-1            | Jibri 2022-08-30 21:53:49.777 FINE: [1] MainKt$setupMetaconfigLogger$1.debug#232: FallbackSupplier: checking for value via suppliers:
biglive-jibri-1            |   LambdaSupplier: 'JibriConfig::enableStatsD'
biglive-jibri-1            |   ConfigSourceSupplier: key: 'jibri.stats.enable-stats-d', type: 'kotlin.Boolean', source: 'config'
biglive-jibri-1            | Jibri 2022-08-30 21:53:49.780 FINE: [1] MainKt$setupMetaconfigLogger$1.debug#232: LambdaSupplier: Trying to retrieve value via JibriConfig::enableStatsD
biglive-jibri-1            | Jibri 2022-08-30 21:53:49.781 FINE: [1] MainKt$setupMetaconfigLogger$1.debug#232: FallbackSupplier: failed to find value via LambdaSupplier: 'JibriConfig::enableStatsD': org.jitsi.metaconfig.ConfigException$UnableToRetrieve$Error: class java.lang.NullPointerException
biglive-jibri-1            | Jibri 2022-08-30 21:53:49.782 FINE: [1] MainKt$setupMetaconfigLogger$1.debug#232: ConfigSourceSupplier: Trying to retrieve key 'jibri.stats.enable-stats-d' from source 'config' as type kotlin.Boolean
biglive-jibri-1            | Jibri 2022-08-30 21:53:49.785 FINE: [1] MainKt$setupMetaconfigLogger$1.debug#232: ConfigSourceSupplier: Successfully retrieved key 'jibri.stats.enable-stats-d' from source 'config' as type kotlin.Boolean
biglive-jibri-1            | Jibri 2022-08-30 21:53:49.786 FINE: [1] MainKt$setupMetaconfigLogger$1.debug#232: FallbackSupplier: value found via ConfigSourceSupplier: key: 'jibri.stats.enable-stats-d', type: 'kotlin.Boolean', source: 'config'
biglive-jibri-1            | Jibri 2022-08-30 21:53:49.830 FINE: [1] MainKt$setupMetaconfigLogger$1.debug#232: FallbackSupplier: checking for value via suppliers:
biglive-jibri-1            |   ConfigSourceSupplier: key: 'jibri.webhook.subscribers', type: 'kotlin.collections.List<kotlin.String>', source: 'config'
biglive-jibri-1            | Jibri 2022-08-30 21:53:49.833 FINE: [1] MainKt$setupMetaconfigLogger$1.debug#232: ConfigSourceSupplier: Trying to retrieve key 'jibri.webhook.subscribers' from source 'config' as type kotlin.collections.List<kotlin.String>
biglive-jibri-1            | Jibri 2022-08-30 21:53:49.843 FINE: [1] MainKt$setupMetaconfigLogger$1.debug#232: ConfigSourceSupplier: Successfully retrieved key 'jibri.webhook.subscribers' from source 'config' as type kotlin.collections.List<kotlin.String>
biglive-jibri-1            | Jibri 2022-08-30 21:53:49.850 FINE: [1] MainKt$setupMetaconfigLogger$1.debug#232: FallbackSupplier: value found via ConfigSourceSupplier: key: 'jibri.webhook.subscribers', type: 'kotlin.collections.List<kotlin.String>', source: 'config'
biglive-jibri-1            | Jibri 2022-08-30 21:53:50.456 FINE: [1] MainKt$setupMetaconfigLogger$1.debug#232: ConfigSourceSupplier: Trying to retrieve key 'jibri.jwt-info' from source 'config' as type com.typesafe.config.ConfigObject
biglive-jibri-1            | Jibri 2022-08-30 21:53:50.471 FINE: [1] MainKt$setupMetaconfigLogger$1.debug#232: ConfigSourceSupplier: Successfully retrieved key 'jibri.jwt-info' from source 'config' as type com.typesafe.config.ConfigObject
biglive-jibri-1            | Jibri 2022-08-30 21:53:50.475 INFO: [1] JwtInfo$Companion.fromConfig#154: got jwtConfig: {}
biglive-jibri-1            | 
biglive-jibri-1            | Jibri 2022-08-30 21:53:50.475 INFO: [1] JwtInfo$Companion.fromConfig#164: Unable to create JwtInfo: com.typesafe.config.ConfigException$Missing: reference.conf @ jar:file:/opt/jitsi/jibri/jibri.jar!/reference.conf: 62: No configuration setting found for key 'signing-key-path'
biglive-jibri-1            | Jibri 2022-08-30 21:53:50.614 FINE: [1] MainKt$setupMetaconfigLogger$1.debug#232: FallbackSupplier: checking for value via suppliers:
biglive-jibri-1            |   ConfigSourceSupplier: key: 'internal_http_port', type: 'kotlin.Int', source: 'command line args'
biglive-jibri-1            |   ConfigSourceSupplier: key: 'jibri.api.http.internal-api-port', type: 'kotlin.Int', source: 'config'
biglive-jibri-1            | Jibri 2022-08-30 21:53:50.615 FINE: [1] MainKt$setupMetaconfigLogger$1.debug#232: ConfigSourceSupplier: Trying to retrieve key 'internal_http_port' from source 'command line args' as type kotlin.Int
biglive-jibri-1            | Jibri 2022-08-30 21:53:50.616 FINE: [1] MainKt$setupMetaconfigLogger$1.debug#232: FallbackSupplier: failed to find value via ConfigSourceSupplier: key: 'internal_http_port', type: 'kotlin.Int', source: 'command line args': org.jitsi.metaconfig.ConfigException$UnableToRetrieve$NotFound: not found
biglive-jibri-1            | Jibri 2022-08-30 21:53:50.616 FINE: [1] MainKt$setupMetaconfigLogger$1.debug#232: ConfigSourceSupplier: Trying to retrieve key 'jibri.api.http.internal-api-port' from source 'config' as type kotlin.Int
biglive-jibri-1            | Jibri 2022-08-30 21:53:50.628 FINE: [1] MainKt$setupMetaconfigLogger$1.debug#232: ConfigSourceSupplier: Successfully retrieved key 'jibri.api.http.internal-api-port' from source 'config' as type kotlin.Int
biglive-jibri-1            | Jibri 2022-08-30 21:53:50.631 FINE: [1] MainKt$setupMetaconfigLogger$1.debug#232: FallbackSupplier: value found via ConfigSourceSupplier: key: 'jibri.api.http.internal-api-port', type: 'kotlin.Int', source: 'config'
biglive-jibri-1            | Jibri 2022-08-30 21:53:50.631 INFO: [1] MainKt.main#125: Using port 3333 for internal HTTP API
biglive-jibri-1            | SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
biglive-jibri-1            | SLF4J: Defaulting to no-operation (NOP) logger implementation
biglive-jibri-1            | SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.
biglive-jibri-1            | Jibri 2022-08-30 21:53:50.644 FINE: [19] WebhookClient$updateStatus$1.invokeSuspend#107: Updating 0 subscribers of status
biglive-jibri-1            | Jibri 2022-08-30 21:53:50.872 FINE: [1] MainKt$setupMetaconfigLogger$1.debug#232: FallbackSupplier: checking for value via suppliers:
biglive-jibri-1            |   LambdaSupplier: 'JibriConfig::xmppEnvironments'
biglive-jibri-1            |   TypeConvertingSupplier: converting value from ConfigSourceSupplier: key: 'jibri.api.xmpp.environments', type: 'kotlin.collections.List<com.typesafe.config.Config>', source: 'config'
biglive-jibri-1            | Jibri 2022-08-30 21:53:50.877 FINE: [1] MainKt$setupMetaconfigLogger$1.debug#232: LambdaSupplier: Trying to retrieve value via JibriConfig::xmppEnvironments
biglive-jibri-1            | Jibri 2022-08-30 21:53:50.878 FINE: [1] MainKt$setupMetaconfigLogger$1.debug#232: FallbackSupplier: failed to find value via LambdaSupplier: 'JibriConfig::xmppEnvironments': org.jitsi.metaconfig.ConfigException$UnableToRetrieve$NotFound: Considering empty XMPP envs list as not found
biglive-jibri-1            | Jibri 2022-08-30 21:53:50.878 FINE: [1] MainKt$setupMetaconfigLogger$1.debug#232: ConfigSourceSupplier: Trying to retrieve key 'jibri.api.xmpp.environments' from source 'config' as type kotlin.collections.List<com.typesafe.config.Config>
biglive-jibri-1            | Jibri 2022-08-30 21:53:50.887 FINE: [1] MainKt$setupMetaconfigLogger$1.debug#232: ConfigSourceSupplier: Successfully retrieved key 'jibri.api.xmpp.environments' from source 'config' as type kotlin.collections.List<com.typesafe.config.Config>
biglive-jibri-1            | Jibri 2022-08-30 21:53:50.891 FINE: [1] MainKt$setupMetaconfigLogger$1.debug#232: TypeConvertingSupplier: Converted value type from ConfigSourceSupplier: key: 'jibri.api.xmpp.environments', type: 'kotlin.collections.List<com.typesafe.config.Config>', source: 'config'
biglive-jibri-1            | Jibri 2022-08-30 21:53:50.892 FINE: [1] MainKt$setupMetaconfigLogger$1.debug#232: FallbackSupplier: value found via TypeConvertingSupplier: converting value from ConfigSourceSupplier: key: 'jibri.api.xmpp.environments', type: 'kotlin.collections.List<com.typesafe.config.Config>', source: 'config'
biglive-jibri-1            | Jibri 2022-08-30 21:53:51.259 INFO: [1] XmppApi.updatePresence#203: Jibri reports its status is now JibriStatus(busyStatus=IDLE, health=OverallHealth(healthStatus=HEALTHY, details={})), publishing presence to connections
biglive-jibri-1            | Jibri 2022-08-30 21:53:51.261 FINE: [1] MucClientManager.setPresenceExtension#160: Setting a presence extension: org.jitsi.xmpp.extensions.jibri.JibriStatusPacketExt@16727bf0
biglive-jibri-1            | Jibri 2022-08-30 21:53:51.270 INFO: [1] XmppApi.start#156: Connecting to xmpp environment on xmpp.meet.jitsi with config XmppEnvironmentConfig(name=<no value>-0, xmppServerHosts=[xmpp.meet.jitsi], xmppDomain=meet.jitsi, baseUrl=https://biglive.biglinux.com.br, controlLogin=XmppCredentials(domain=auth.meet.jitsi, port=5222, username=jibri, password=*****), controlMuc=XmppMuc(domain=internal-muc.meet.jitsi, roomName=jibribrewery, nickname=jibri-294483795), sipControlMuc=null, callLogin=XmppCredentials(domain=recorder.meet.jitsi, port=null, username=recorder, password=*****), stripFromRoomDomain=muc., usageTimeoutMins=0, trustAllXmppCerts=true, securityMode=null)
biglive-jibri-1            | Jibri 2022-08-30 21:53:51.272 INFO: [1] XmppApi.start#168: The trustAllXmppCerts config is enabled for this domain, all XMPP server provided certificates will be accepted
biglive-jibri-1            | Jibri 2022-08-30 21:53:51.305 FINE: [1] MainKt$setupMetaconfigLogger$1.debug#232: FallbackSupplier: checking for value via suppliers:
biglive-jibri-1            |   ConfigSourceSupplier: key: 'http_api_port', type: 'kotlin.Int', source: 'command line args'
biglive-jibri-1            |   ConfigSourceSupplier: key: 'jibri.api.http.external-api-port', type: 'kotlin.Int', source: 'config'
biglive-jibri-1            | Jibri 2022-08-30 21:53:51.305 FINE: [1] MainKt$setupMetaconfigLogger$1.debug#232: ConfigSourceSupplier: Trying to retrieve key 'http_api_port' from source 'command line args' as type kotlin.Int
biglive-jibri-1            | Jibri 2022-08-30 21:53:51.305 FINE: [1] MainKt$setupMetaconfigLogger$1.debug#232: FallbackSupplier: failed to find value via ConfigSourceSupplier: key: 'http_api_port', type: 'kotlin.Int', source: 'command line args': org.jitsi.metaconfig.ConfigException$UnableToRetrieve$NotFound: not found
biglive-jibri-1            | Jibri 2022-08-30 21:53:51.306 FINE: [1] MainKt$setupMetaconfigLogger$1.debug#232: ConfigSourceSupplier: Trying to retrieve key 'jibri.api.http.external-api-port' from source 'config' as type kotlin.Int
biglive-jibri-1            | Jibri 2022-08-30 21:53:51.307 FINE: [1] MainKt$setupMetaconfigLogger$1.debug#232: ConfigSourceSupplier: Successfully retrieved key 'jibri.api.http.external-api-port' from source 'config' as type kotlin.Int
biglive-jibri-1            | Jibri 2022-08-30 21:53:51.308 FINE: [1] MainKt$setupMetaconfigLogger$1.debug#232: FallbackSupplier: value found via ConfigSourceSupplier: key: 'jibri.api.http.external-api-port', type: 'kotlin.Int', source: 'config'
biglive-jibri-1            | Jibri 2022-08-30 21:53:51.308 INFO: [1] MainKt.main#152: Using port 2222 for HTTP API
biglive-jibri-1            | Jibri 2022-08-30 21:53:51.327 INFO: [30] [hostname=xmpp.meet.jitsi id=xmpp.meet.jitsi] MucClient.initializeConnectAndJoin#278: Initializing a new MucClient for [ org.jitsi.xmpp.mucclient.MucClientConfiguration id=xmpp.meet.jitsi domain=auth.meet.jitsi hostname=xmpp.meet.jitsi port=5222 username=jibri mucs=[jibribrewery@internal-muc.meet.jitsi] mucNickname=jibri-294483795 disableCertificateVerification=true]
biglive-jibri-1            | Jibri 2022-08-30 21:53:51.379 WARNING: [30] MucClient.createXMPPTCPConnectionConfiguration#116: Disabling certificate verification!
biglive-jibri-1            | Jibri 2022-08-30 21:53:51.452 INFO: [30] [hostname=xmpp.meet.jitsi id=xmpp.meet.jitsi] MucClient.initializeConnectAndJoin#340: Dispatching a thread to connect and login.
biglive-jibri-1            | Jibri 2022-08-30 21:53:51.840 FINE: [30] JibriStatsDClient.incrementCounter#38: Incrementing statsd counter: xmpp-connected:xmpp_server_host:xmpp.meet.jitsi
biglive-jibri-1            | Jibri 2022-08-30 21:53:51.841 INFO: [30] [hostname=xmpp.meet.jitsi id=xmpp.meet.jitsi] MucClient$2.connected#311: Connected.
biglive-jibri-1            | Jibri 2022-08-30 21:53:51.843 INFO: [30] [hostname=xmpp.meet.jitsi id=xmpp.meet.jitsi] MucClient.lambda$getConnectAndLoginCallable$7#636: Logging in.
biglive-jibri-1            | Jibri 2022-08-30 21:53:52.029 INFO: [30] [hostname=xmpp.meet.jitsi id=xmpp.meet.jitsi] MucClient$2.authenticated#317: Authenticated, b=false
biglive-jibri-1            | Jibri 2022-08-30 21:53:52.051 FINE: [30] [hostname=xmpp.meet.jitsi id=xmpp.meet.jitsi] MucClient$MucWrapper.resetLastPresenceSent#836: Resetting lastPresenceSent
biglive-jibri-1            | Jibri 2022-08-30 21:53:52.219 WARNING: [30] [hostname=xmpp.meet.jitsi id=xmpp.meet.jitsi] MucClient.lambda$getConnectAndLoginCallable$7#661: Failed to join the MUCs.
biglive-jibri-1            | org.jivesoftware.smack.XMPPException$XMPPErrorException: XMPP error reply received from jibribrewery@internal-muc.meet.jitsi/jibri-294483795: XMPPError: not-allowed - cancel [Room creation is restricted]. Generated by internal-muc.meet.jitsi
biglive-jibri-1            |    at org.jivesoftware.smack.XMPPException$XMPPErrorException.ifHasErrorThenThrow(XMPPException.java:171)
biglive-jibri-1            |    at org.jivesoftware.smack.XMPPException$XMPPErrorException.ifHasErrorThenThrow(XMPPException.java:165)
biglive-jibri-1            |    at org.jivesoftware.smack.StanzaCollector.nextResultOrThrow(StanzaCollector.java:284)
biglive-jibri-1            |    at org.jivesoftware.smackx.muc.MultiUserChat.enter(MultiUserChat.java:408)
biglive-jibri-1            |    at org.jivesoftware.smackx.muc.MultiUserChat.createOrJoin(MultiUserChat.java:546)
biglive-jibri-1            |    at org.jivesoftware.smackx.muc.MultiUserChat.createOrJoin(MultiUserChat.java:521)
biglive-jibri-1            |    at org.jitsi.xmpp.mucclient.MucClient$MucWrapper.join(MucClient.java:747)
biglive-jibri-1            |    at org.jitsi.xmpp.mucclient.MucClient$MucWrapper.access$300(MucClient.java:674)
biglive-jibri-1            |    at org.jitsi.xmpp.mucclient.MucClient.joinMucs(MucClient.java:360)
biglive-jibri-1            |    at org.jitsi.xmpp.mucclient.MucClient.lambda$getConnectAndLoginCallable$7(MucClient.java:657)
biglive-jibri-1            |    at org.jitsi.retry.RetryStrategy$TaskRunner.run(RetryStrategy.java:167)
biglive-jibri-1            |    at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
biglive-jibri-1            |    at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
biglive-jibri-1            |    at java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:304)
biglive-jibri-1            |    at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
biglive-jibri-1            |    at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
biglive-jibri-1            |    at java.base/java.lang.Thread.run(Thread.java:829)
biglive-jibri-1            | Jibri 2022-08-30 21:54:50.612 FINE: [19] WebhookClient$updateStatus$1.invokeSuspend#107: Updating 0 subscribers of status
biglive-jibri-1            | Jibri 2022-08-30 21:55:50.612 FINE: [19] WebhookClient$updateStatus$1.invokeSuspend#107: Updating 0 subscribers of status
biglive-jibri-1            | Jibri 2022-08-30 21:56:50.612 FINE: [19] WebhookClient$updateStatus$1.invokeSuspend#107: Updating 0 subscribers of status
biglive-jibri-1            | Jibri 2022-08-30 21:57:50.612 FINE: [19] WebhookClient$updateStatus$1.invokeSuspend#107: Updating 0 subscribers of status

You need to change the hostname to your server’s.

I just couldn’t find where this setting is. Everything works, just not recording.

biglive.bigliux.com.br → See

tales@t4l35-orion:~/Docker/Biglive$ grep -Ri hostname *
jicofo/rootfs/defaults/jicofo.conf:        hostname = "{{ $XMPP_SERVER }}"
jvb/rootfs/defaults/jvb.conf:{{ $JVB_MUC_NICKNAME := .Env.JVB_MUC_NICKNAME | default .Env.HOSTNAME -}}
jvb/rootfs/defaults/jvb.conf:                    HOSTNAME = "{{ $SERVER._0 }}"

Do I have to edit these files?

tales@t4l35-orion:~/Docker/Biglive$ grep -Ri xmpp.meet.jitsi *
docker-compose.yml:                    - ${XMPP_SERVER:-xmpp.meet.jitsi}
jibri/rootfs/defaults/jibri.conf:{{ $XMPP_SERVER := .Env.XMPP_SERVER | default "xmpp.meet.jitsi" -}}
jicofo/rootfs/defaults/jicofo.conf:{{ $XMPP_SERVER := .Env.XMPP_SERVER | default "xmpp.meet.jitsi" -}}
jicofo/rootfs/etc/services.d/jicofo/run:[ -z "${XMPP_SERVER}" ] && export XMPP_SERVER=xmpp.meet.jitsi
jigasi/rootfs/defaults/sip-communicator.properties:{{ $XMPP_SERVER := .Env.XMPP_SERVER | default "xmpp.meet.jitsi" -}}
jvb/rootfs/defaults/jvb.conf:{{ $XMPP_SERVER := .Env.XMPP_SERVER | default "xmpp.meet.jitsi" -}}
jvb/rootfs/etc/cont-init.d/10-config:[ -z "${XMPP_SERVER}" ] && export XMPP_SERVER=xmpp.meet.jitsi
web/rootfs/defaults/meet.conf:{{ $XMPP_BOSH_URL_BASE := .Env.XMPP_BOSH_URL_BASE | default "http://xmpp.meet.jitsi:5280" -}}

Please share the entire .env file you’re using.

Regarding the directory, note that it will be inside the container. Unless you make it inside /config/ which is mounted from the host system.

# shellcheck disable=SC2034

################################################################################
################################################################################
# Welcome to the Jitsi Meet Docker setup!
#
# This sample .env file contains some basic options to get you started.
# The full options reference can be found here:
# https://jitsi.github.io/handbook/docs/devops-guide/devops-guide-docker
################################################################################
################################################################################


#
# Basic configuration options
#

# Directory where all configuration will be stored
CONFIG=~/.jitsi-biglive-cfg

# Exposed HTTP port
HTTP_PORT=8001

# Exposed HTTPS port
HTTPS_PORT=8444

# System time zone
TZ=UTC

# Public URL for the web service (required)
PUBLIC_URL=https://biglive.biglinux.com.br

# IP address of the Docker host
# See the "Running behind NAT or on a LAN environment" section in the Handbook:
# https://jitsi.github.io/handbook/docs/devops-guide/devops-guide-docker#running-behind-nat-or-on-a-lan-environment
#DOCKER_HOST_ADDRESS=192.168.1.1


#
# JaaS Components (beta)
# https://jaas.8x8.vc
#

# Enable JaaS Components (hosted Jigasi)
#ENABLE_JAAS_COMPONENTS=0

#
# Let's Encrypt configuration
#

# Enable Let's Encrypt certificate generation
#ENABLE_LETSENCRYPT=1

# Domain for which to generate the certificate
#LETSENCRYPT_DOMAIN=meet.example.com

# E-Mail for receiving important account notifications (mandatory)
#LETSENCRYPT_EMAIL=alice@atlanta.net

# Use the staging server (for avoiding rate limits while testing)
#LETSENCRYPT_USE_STAGING=1


#
# Etherpad integration (for document sharing)
#

# Set etherpad-lite URL in docker local network (uncomment to enable)
#ETHERPAD_URL_BASE=http://etherpad.meet.jitsi:9001

# Set etherpad-lite public URL, including /p/ pad path fragment (uncomment to enable)
#ETHERPAD_PUBLIC_URL=https://etherpad.my.domain/p/

# Name your etherpad instance!
ETHERPAD_TITLE=Video Chat

# The default text of a pad
ETHERPAD_DEFAULT_PAD_TEXT="Bem-Vindo(a) ao Web Chat!\n\n"

# Name of the skin for etherpad
ETHERPAD_SKIN_NAME=colibris

# Skin variants for etherpad
ETHERPAD_SKIN_VARIANTS="super-light-toolbar super-light-editor light-background full-width-editor"


#
# Basic Jigasi configuration options (needed for SIP gateway support)
#

# SIP URI for incoming / outgoing calls
#JIGASI_SIP_URI=test@sip2sip.info

# Password for the specified SIP account as a clear text
#JIGASI_SIP_PASSWORD=passw0rd

# SIP server (use the SIP account domain if in doubt)
#JIGASI_SIP_SERVER=sip2sip.info

# SIP server port
#JIGASI_SIP_PORT=5060

# SIP server transport
#JIGASI_SIP_TRANSPORT=UDP


#
# Authentication configuration (see handbook for details)
#

# Enable authentication
#ENABLE_AUTH=1

# Enable guest access
#ENABLE_GUESTS=1

# Select authentication type: internal, jwt, ldap or matrix
#AUTH_TYPE=internal

# JWT authentication
#

# Application identifier
#JWT_APP_ID=my_jitsi_app_id

# Application secret known only to your token generator
#JWT_APP_SECRET=my_jitsi_app_secret

# (Optional) Set asap_accepted_issuers as a comma separated list
#JWT_ACCEPTED_ISSUERS=my_web_client,my_app_client

# (Optional) Set asap_accepted_audiences as a comma separated list
#JWT_ACCEPTED_AUDIENCES=my_server1,my_server2

# LDAP authentication (for more information see the Cyrus SASL saslauthd.conf man page)
#

# LDAP url for connection
#LDAP_URL=ldaps://ldap.domain.com/

# LDAP base DN. Can be empty
#LDAP_BASE=DC=example,DC=domain,DC=com

# LDAP user DN. Do not specify this parameter for the anonymous bind
#LDAP_BINDDN=CN=binduser,OU=users,DC=example,DC=domain,DC=com

# LDAP user password. Do not specify this parameter for the anonymous bind
#LDAP_BINDPW=LdapUserPassw0rd

# LDAP filter. Tokens example:
# %1-9 - if the input key is user@mail.domain.com, then %1 is com, %2 is domain and %3 is mail
# %s - %s is replaced by the complete service string
# %r - %r is replaced by the complete realm string
#LDAP_FILTER=(sAMAccountName=%u)

# LDAP authentication method
#LDAP_AUTH_METHOD=bind

# LDAP version
#LDAP_VERSION=3

# LDAP TLS using
#LDAP_USE_TLS=1

# List of SSL/TLS ciphers to allow
#LDAP_TLS_CIPHERS=SECURE256:SECURE128:!AES-128-CBC:!ARCFOUR-128:!CAMELLIA-128-CBC:!3DES-CBC:!CAMELLIA-128-CBC

# Require and verify server certificate
#LDAP_TLS_CHECK_PEER=1

# Path to CA cert file. Used when server certificate verify is enabled
#LDAP_TLS_CACERT_FILE=/etc/ssl/certs/ca-certificates.crt

# Path to CA certs directory. Used when server certificate verify is enabled
#LDAP_TLS_CACERT_DIR=/etc/ssl/certs

# Wether to use starttls, implies LDAPv3 and requires ldap:// instead of ldaps://
# LDAP_START_TLS=1


#
# Security
#
# Set these to strong passwords to avoid intruders from impersonating a service account
# The service(s) won't start unless these are specified
# Running ./gen-passwords.sh will update .env with strong passwords
# You may skip the Jigasi and Jibri passwords if you are not using those
# DO NOT reuse passwords
#

# XMPP password for Jicofo client connections
JICOFO_AUTH_PASSWORD=7b9ae465a32d796f5a543672afc47ef2

# XMPP password for JVB client connections
JVB_AUTH_PASSWORD=14b40f1d3bf92312a33e8e7983904d0a

# XMPP password for Jigasi MUC client connections
JIGASI_XMPP_PASSWORD=e5066bde871ace92070c21fc0f8ded1d

# XMPP recorder password for Jibri client connections
JIBRI_RECORDER_PASSWORD=b0bd2f7d2e2e5997ac2b0eff6681541a

# XMPP password for Jibri client connections
JIBRI_XMPP_PASSWORD=8fe5d69d9020204767047eb88ff0d442

#
# Docker Compose options
#

# Container restart policy
#RESTART_POLICY=unless-stopped

# Jitsi image version (useful for local development)
#JITSI_IMAGE_VERSION=latest

# Configurção de gravação
JIBRI_RECORDER_USER=recorder
JIBRI_RECORDING_DIR=/home/tales/Drive/Biglive
#JIBRI_FINALIZE_RECORDING_SCRIPT_PATH=/config/finalize.sh

Alright.

You don’t need to specify JIBRI_RECORDER_USER because a default is provided.

JIBRI_RECORDING_DIR=/home/tales/Drive/Biglive this won’t work because it’s a path that the Jibri container needs to have access to. It defaults to /config/recordings, which means you’ll get them in ~/.jitsi-biglive-cfg/jibri/recordings in the host system. You could choose to edit the yml file and add another volume if you want.

You also need to add ENABLE_RECORDING=1 to your .env file.

image
Now there was no error when I put it to record, but soon after this message appeared…

“All recordings are currently busy.
We are working to release recording resources.
Try again in a few minutes.”

CAn you pl share the jibri logs?

Logs: Untitled - BitBin

biglive-jibri-1            | ChromeDriver was started successfully.
biglive-jibri-1            | Jibri 2022-09-01 15:01:55.608 SEVERE: [67] XmppApi.handleStartJibriIq#294: Error starting Jibri service 
biglive-jibri-1            | org.openqa.selenium.WebDriverException: unknown error: Chrome failed to start: crashed.
biglive-jibri-1            |   (chrome not reachable)
biglive-jibri-1            |   (The process started from chrome location /usr/bin/chromium is no longer running, so ChromeDriver is assuming that Chrome has crashed.)

Chrome cannot work correctly. What about the resources? CPU, RAM…?

tales@t4l35-orion:~/Docker/Biglive$ free -m
               total        used        free      shared  buff/cache   available
Mem:           23988       10738        1898         919       11351       12012
Swap:              0           0           0

Looks like the browser failed to start :open_mouth: Can you check if you have anything in browser.txt in CONFIG/jibri/logs ?

I tested it on Brave

Does jibri have the write permission for this folder?