Jibri docker installation not working

Hi, I have followed - Self-Hosting Guide - Docker · Jitsi Meet Handbook for installing jitsi meet. I have also installed jibri.

I am using Ubuntu 20 Desktop, I can start the conference at https://localhost:8443/ but whenever I start I recording I get the below error:

2022-01-20 10:26:22.355 FINE: [47] org.jitsi.xmpp.mucclient.MucClient.log() Received an IQ with type set: IQ Stanza (jibri http://jitsi.org/protocol/jibri) [to=jibri@auth.meet.jitsi/eKUshYFy,from=jibribrewery@internal-muc.meet.jitsi/focus,id=amlicmlAYXV0aC5tZWV0LmppdHNpL2VLVXNoWUZ5AFpaRjVVLTU4NQB9MKAL27uLVhq/q96wolfF,type=set,]
2022-01-20 10:26:22.367 INFO: [47] org.jitsi.jibri.api.xmpp.XmppApi.log() Received JibriIq <iq xmlns='jabber:client' to='jibri@auth.meet.jitsi/eKUshYFy' from='jibribrewery@internal-muc.meet.jitsi/focus' id='amlicmlAYXV0aC5tZWV0LmppdHNpL2VLVXNoWUZ5AFpaRjVVLTU4NQB9MKAL27uLVhq/q96wolfF' type='set'><jibri xmlns='http://jitsi.org/protocol/jibri' action='start' recording_mode='file' room='automaticlawsuitsdevelopdaily@muc.meet.jitsi' session_id='jvkyiawbztivlmey' app_data='{"file_recording_metadata":{"share":true}}'/></iq> from environment [MucClient id=xmpp.meet.jitsi hostname=xmpp.meet.jitsi]
2022-01-20 10:26:22.370 INFO: [47] org.jitsi.jibri.api.xmpp.XmppApi.log() Received start request, starting service
2022-01-20 10:26:22.515 INFO: [47] org.jitsi.jibri.api.xmpp.XmppApi.log() Parsed call url info: CallUrlInfo(baseUrl=https://meet.jitsi, callName=automaticlawsuitsdevelopdaily, urlParams=[])
2022-01-20 10:26:22.518 INFO: [47] org.jitsi.jibri.JibriManager.log() Starting a file recording with params: FileRecordingRequestParams(callParams=CallParams(callUrlInfo=CallUrlInfo(baseUrl=https://meet.jitsi, callName=automaticlawsuitsdevelopdaily, urlParams=[]), email='', passcode=null, callStatsUsernameOverride=, displayName=), sessionId=jvkyiawbztivlmey, callLoginParams=XmppCredentials(domain=recorder.meet.jitsi, port=null, username=recorder, password=*****))
2022-01-20 10:26:22.538 FINE: [47] org.jitsi.jibri.capture.ffmpeg.FfmpegCapturer.log() Detected os as OS: LINUX
2022-01-20 10:26:22.545 FINE: [47] org.jitsi.jibri.config.log() ConfigSourceSupplier: Trying to retrieve key 'jibri.call-status-checks.default-call-empty-timeout' from source 'config' as type java.time.Duration
2022-01-20 10:26:22.551 FINE: [47] org.jitsi.jibri.config.log() ConfigSourceSupplier: Successfully retrieved key 'jibri.call-status-checks.default-call-empty-timeout' from source 'config' as type java.time.Duration
2022-01-20 10:26:22.560 FINE: [47] org.jitsi.jibri.config.log() ConfigSourceSupplier: Trying to retrieve key 'jibri.chrome.flags' from source 'config' as type kotlin.collections.List<kotlin.String>
2022-01-20 10:26:22.561 FINE: [47] org.jitsi.jibri.config.log() ConfigSourceSupplier: Successfully retrieved key 'jibri.chrome.flags' from source 'config' as type kotlin.collections.List<kotlin.String>
Starting ChromeDriver 96.0.4664.45 (76e4c1bb2ab4671b8beba3444e61c0f17584b2fc-refs/branch-heads/4664@{#947}) on port 23674
Only local connections are allowed.
Please see https://chromedriver.chromium.org/security-considerations for suggestions on keeping ChromeDriver safe.
ChromeDriver was started successfully.
2022-01-20 10:26:23.282 INFO: [47] org.openqa.selenium.remote.ProtocolHandshake.createSession() Detected dialect: OSS
2022-01-20 10:26:23.294 FINE: [47] org.jitsi.jibri.config.log() FallbackSupplier: checking for value via suppliers:
  LambdaSupplier: 'JibriConfig::recordingDirectory'
  ConfigSourceSupplier: key: 'jibri.recording.recordings-directory', type: 'kotlin.String', source: 'config'
2022-01-20 10:26:23.295 FINE: [47] org.jitsi.jibri.config.log() LambdaSupplier: Trying to retrieve value via JibriConfig::recordingDirectory
2022-01-20 10:26:23.295 FINE: [47] org.jitsi.jibri.config.log() FallbackSupplier: failed to find value via LambdaSupplier: 'JibriConfig::recordingDirectory': org.jitsi.metaconfig.ConfigException$UnableToRetrieve$Error: class java.lang.NullPointerException
2022-01-20 10:26:23.295 FINE: [47] org.jitsi.jibri.config.log() ConfigSourceSupplier: Trying to retrieve key 'jibri.recording.recordings-directory' from source 'config' as type kotlin.String
2022-01-20 10:26:23.296 FINE: [47] org.jitsi.jibri.config.log() ConfigSourceSupplier: Successfully retrieved key 'jibri.recording.recordings-directory' from source 'config' as type kotlin.String
2022-01-20 10:26:23.297 FINE: [47] org.jitsi.jibri.config.log() FallbackSupplier: value found via ConfigSourceSupplier: key: 'jibri.recording.recordings-directory', type: 'kotlin.String', source: 'config'
2022-01-20 10:26:23.297 FINE: [47] org.jitsi.jibri.config.log() FallbackSupplier: checking for value via suppliers:
  LambdaSupplier: 'JibriConfig::finalizeRecordingScriptPath'
  ConfigSourceSupplier: key: 'jibri.recording.finalize-script', type: 'kotlin.String', source: 'config'
2022-01-20 10:26:23.298 FINE: [47] org.jitsi.jibri.config.log() LambdaSupplier: Trying to retrieve value via JibriConfig::finalizeRecordingScriptPath
2022-01-20 10:26:23.298 FINE: [47] org.jitsi.jibri.config.log() FallbackSupplier: failed to find value via LambdaSupplier: 'JibriConfig::finalizeRecordingScriptPath': org.jitsi.metaconfig.ConfigException$UnableToRetrieve$Error: class java.lang.NullPointerException
2022-01-20 10:26:23.298 FINE: [47] org.jitsi.jibri.config.log() ConfigSourceSupplier: Trying to retrieve key 'jibri.recording.finalize-script' from source 'config' as type kotlin.String
2022-01-20 10:26:23.299 FINE: [47] org.jitsi.jibri.config.log() ConfigSourceSupplier: Successfully retrieved key 'jibri.recording.finalize-script' from source 'config' as type kotlin.String
2022-01-20 10:26:23.299 FINE: [47] org.jitsi.jibri.config.log() FallbackSupplier: value found via ConfigSourceSupplier: key: 'jibri.recording.finalize-script', type: 'kotlin.String', source: 'config'
2022-01-20 10:26:23.300 INFO: [47] org.jitsi.jibri.service.impl.FileRecordingJibriService.log() Writing recording to /config/recordings/jvkyiawbztivlmey, finalize script path /path/to/finalize
2022-01-20 10:26:23.303 FINE: [47] org.jitsi.jibri.statsd.JibriStatsDClient.log() Incrementing statsd counter: start:recording
2022-01-20 10:26:23.303 INFO: [47] org.jitsi.jibri.status.JibriStatusManager.log() Busy status has changed: IDLE -> BUSY
2022-01-20 10:26:23.304 FINE: [47] org.jitsi.jibri.webhooks.v1.WebhookClient.log() Updating 0 subscribers of status
2022-01-20 10:26:23.304 INFO: [47] org.jitsi.jibri.api.xmpp.XmppApi.log() Jibri reports its status is now JibriStatus(busyStatus=BUSY, health=OverallHealth(healthStatus=HEALTHY, details={})), publishing presence to connections
2022-01-20 10:26:23.304 FINE: [47] org.jitsi.xmpp.mucclient.MucClientManager.log() Setting a presence extension: org.jitsi.xmpp.extensions.jibri.JibriStatusPacketExt@78e5e556
2022-01-20 10:26:23.305 FINE: [47] org.jitsi.xmpp.mucclient.MucClientManager.log() Replacing presence extension: org.jitsi.xmpp.extensions.jibri.JibriStatusPacketExt@28501a4b
2022-01-20 10:26:23.306 INFO: [47] org.jitsi.jibri.api.xmpp.XmppApi.log() Sending 'pending' response to start IQ
2022-01-20 10:26:23.307 FINE: [43] org.jitsi.xmpp.extensions.DefaultPacketExtensionProvider.parse() Could not add a provider for element busy-status from namespace http://jitsi.org/protocol/jibri
2022-01-20 10:26:23.311 INFO: [57] org.jitsi.jibri.selenium.pageobjects.HomePage.log() Visiting url https://meet.jitsi
2022-01-20 10:26:23.311 FINE: [43] org.jitsi.xmpp.extensions.DefaultPacketExtensionProvider.parse() Could not add a provider for element health-status from namespace http://jitsi.org/protocol/health
2022-01-20 10:26:29.433 SEVERE: [57] org.jitsi.jibri.selenium.JibriSelenium.log() An error occurred while joining the call
org.openqa.selenium.WebDriverException: unknown error: net::ERR_NAME_NOT_RESOLVED
  (Session info: chrome=96.0.4664.45)
  (Driver info: chromedriver=96.0.4664.45 (76e4c1bb2ab4671b8beba3444e61c0f17584b2fc-refs/branch-heads/4664@{#947}),platform=Linux 5.11.0-46-generic x86_64) (WARNING: The server did not provide any stacktrace information)
Command duration or timeout: 0 milliseconds
Build info: version: 'unknown', revision: 'unknown', time: 'unknown'
System info: host: 'a7ce10aacdd2', ip: '172.19.0.6', os.name: 'Linux', os.arch: 'amd64', os.version: '5.11.0-46-generic', java.version: '11.0.13'
Driver info: org.openqa.selenium.chrome.ChromeDriver
Capabilities {acceptInsecureCerts: false, acceptSslCerts: false, applicationCacheEnabled: false, browserConnectionEnabled: false, browserName: chrome, chrome: {chromedriverVersion: 96.0.4664.45 (76e4c1bb2ab46..., userDataDir: /tmp/.com.google.Chrome.nc2DBr}, cssSelectorsEnabled: true, databaseEnabled: false, goog:chromeOptions: {debuggerAddress: localhost:43359}, handlesAlerts: true, hasTouchScreen: false, javascriptEnabled: true, locationContextEnabled: true, mobileEmulationEnabled: false, nativeEvents: true, networkConnectionEnabled: false, pageLoadStrategy: normal, platform: LINUX, platformName: LINUX, proxy: Proxy(), rotatable: false, setWindowRect: true, strictFileInteractability: false, takesHeapSnapshot: true, takesScreenshot: true, timeouts: {implicit: 0, pageLoad: 300000, script: 30000}, unexpectedAlertBehaviour: ignore, unhandledPromptBehavior: ignore, version: 96.0.4664.45, webStorageEnabled: true, webauthn:extension:credBlob: true, webauthn:extension:largeBlob: true, webauthn:virtualAuthenticators: true}
Session ID: 4ff673d69a4b7822af29b3e68e4bb821
	at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
	at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
	at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
	at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:490)
	at org.openqa.selenium.remote.ErrorHandler.createThrowable(ErrorHandler.java:214)
	at org.openqa.selenium.remote.ErrorHandler.throwIfResponseFailed(ErrorHandler.java:166)
	at org.openqa.selenium.remote.http.JsonHttpResponseCodec.reconstructValue(JsonHttpResponseCodec.java:40)
	at org.openqa.selenium.remote.http.AbstractHttpResponseCodec.decode(AbstractHttpResponseCodec.java:80)
	at org.openqa.selenium.remote.http.AbstractHttpResponseCodec.decode(AbstractHttpResponseCodec.java:44)
	at org.openqa.selenium.remote.HttpCommandExecutor.execute(HttpCommandExecutor.java:158)
	at org.openqa.selenium.remote.service.DriverCommandExecutor.execute(DriverCommandExecutor.java:83)
	at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:543)
	at org.openqa.selenium.remote.RemoteWebDriver.get(RemoteWebDriver.java:271)
	at org.jitsi.jibri.selenium.pageobjects.AbstractPageObject.visit(AbstractPageObject.kt:35)
	at org.jitsi.jibri.selenium.JibriSelenium$joinCall$1.run(JibriSelenium.kt:293)
	at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
	at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
	at java.base/java.lang.Thread.run(Thread.java:829)
2022-01-20 10:26:29.435 INFO: [57] org.jitsi.jibri.selenium.JibriSelenium.log() Transitioning from state Starting up to Error: FailedToJoinCall SESSION Failed to join the call
2022-01-20 10:26:29.436 INFO: [57] org.jitsi.jibri.service.impl.FileRecordingJibriService.log() File recording service transitioning from state Starting up to Error: FailedToJoinCall SESSION Failed to join the call
2022-01-20 10:26:29.437 INFO: [57] org.jitsi.jibri.api.xmpp.XmppApi.log() Current service had an error Error: FailedToJoinCall SESSION Failed to join the call, sending error iq <iq xmlns='jabber:client' to='jibribrewery@internal-muc.meet.jitsi/focus' id='3XZXY-11' type='set'><jibri xmlns='http://jitsi.org/protocol/jibri' status='off' failure_reason='error' should_retry='true'/></iq>
2022-01-20 10:26:29.437 FINE: [57] org.jitsi.jibri.statsd.JibriStatsDClient.log() Incrementing statsd counter: stop:recording
2022-01-20 10:26:29.438 INFO: [57] org.jitsi.jibri.JibriManager.log() Stopping the current service
2022-01-20 10:26:29.438 INFO: [57] org.jitsi.jibri.service.impl.FileRecordingJibriService.log() Stopping capturer
2022-01-20 10:26:29.439 INFO: [57] org.jitsi.jibri.util.JibriSubprocess.log() Stopping ffmpeg process
2022-01-20 10:26:29.439 INFO: [57] org.jitsi.jibri.util.JibriSubprocess.log() ffmpeg exited with value null
2022-01-20 10:26:29.439 INFO: [57] org.jitsi.jibri.service.impl.FileRecordingJibriService.log() Quitting selenium
2022-01-20 10:26:29.440 INFO: [57] org.jitsi.jibri.service.impl.FileRecordingJibriService.log() No media was recorded, deleting directory and skipping metadata file & finalize
2022-01-20 10:26:29.440 INFO: [57] org.jitsi.jibri.selenium.JibriSelenium.log() Leaving call and quitting browser
2022-01-20 10:26:29.441 INFO: [57] org.jitsi.jibri.selenium.JibriSelenium.log() Recurring call status checks cancelled
2022-01-20 10:26:29.455 INFO: [57] org.jitsi.jibri.selenium.JibriSelenium.log() Got 3 log entries for type browser
2022-01-20 10:26:29.476 INFO: [57] org.jitsi.jibri.selenium.JibriSelenium.log() Got 148 log entries for type driver
2022-01-20 10:26:29.526 INFO: [57] org.jitsi.jibri.selenium.JibriSelenium.log() Got 0 log entries for type client
2022-01-20 10:26:29.527 INFO: [57] org.jitsi.jibri.selenium.JibriSelenium.log() Leaving web call
2022-01-20 10:26:29.549 INFO: [57] org.jitsi.jibri.selenium.JibriSelenium.log() Quitting chrome driver
2022-01-20 10:26:29.627 INFO: [57] org.jitsi.jibri.selenium.JibriSelenium.log() Chrome driver quit

I see that it is trying to open https://meet.jitsi:

2022-01-20 10:26:23.311 INFO: [57] org.jitsi.jibri.selenium.pageobjects.HomePage.log() Visiting url https://meet.jitsi

Can someone please help me out?

try PUBLIC_URL variable. set it to your domain name.

Where do I change that? in the .env file?

Is the entire setup on the same machine?

Yes.

what’s the value of PUBLIC_URL in the .env file?

Currently its commented out

#PUBLIC_URL=https://meet.jitsi
If I uncomment and change it to https://localhost:8443The error says connection refused

Ohh!! so you are running it on localhost? Jibri won’t work on localhost.

Yes

Is there any way to develop/test jibri on my local system? I needed to test the recordings and I think there should be a way to do it locally?

AFAIK there is no way.

CC: @emrah @Freddie Is there any flag that can be used to run jibri locally(to avoid SSL warnings)?

First problem - you can’t run Jibri on Ubuntu desktop. Jibri needs to spin its own xorg; Ubuntu desktop already has xorg installed.

I use LXC containers or virtual machines (virt-manager) for this kind of testing. I have also internal DNS server (dnsmasq)