Skip to content

Livekit Egress: Send Recording to Jitsi Admin

Andreas edited this page Feb 8, 2025 · 3 revisions

You can use the Livekit Egress to record a Livekit videoconference.

To send the recording to Jitsi Admin, you need a second docker container that is used as a directory monitor and file sender via http(s).

Directory for Livekit-Egress

mkdir /opt/livekit-egress
chmod -R 777 /opt/livekit-egress

Livekit Egress

Starting the Livekit Egress Container: More Information about the Docker Contaiener for Livekit Egress can be found here Livekit Egress Docs.

Create the Livekit-Egress configuration:

# cat /opt/livekit-egress/config.yaml
log_level: debug
api_key: <your-api-key>
api_secret: <your-api-secret>
ws_url: ws://<host ip address of the livekit server>:7880
insecure: true
redis:
  address: <host ip address of the redis server>:6379

Start the docker container with the new livekit-egress configuration:

docker run -d \
  --restart always \
  -e EGRESS_CONFIG_FILE=/out/config.yaml \
  -v /opt/livekit-egress:/out \
  livekit/egress

Livekit Jitsi Admin Recording Uploader

The file of the Livekit Egress is stored at /opt/livekit-egress. Hence, we need another service, that is monitoring the following directory and after a new recording has been created, the file must be send to Jitsi Admin.

This container is using the inotify service in linux, to monitor the /out directory for new files. You should create other scripts to clean this directory after the file has been uploaded to Jitsi Admin or add more disk space.

Pull the latest docker image of the uploader:

docker pull \
  git.h2-invent.com/meetling/livekit-egress-uploader:latest

Start the uploader container:

docker run -d \
  --restart always \
  -e UPLOAD_URL=<your-jitsi-admin-url-with-http(s)> \
  -e CHUNK_SIZE=15728640 \
  -v /opt/livekit-egress:/out \
  git.h2-invent.com/meetling/livekit-egress-uploader:latest