You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
60 lines
2.3 KiB
60 lines
2.3 KiB
#!/usr/bin/with-contenv bash
|
|
|
|
if [[ -z $JIBRI_RECORDER_PASSWORD || -z $JIBRI_XMPP_PASSWORD ]]; then
|
|
echo 'FATAL ERROR: Jibri recorder password and auth password must be set'
|
|
exit 1
|
|
fi
|
|
|
|
OLD_JIBRI_RECORDER_PASSWORD=passw0rd
|
|
if [[ "$JIBRI_RECORDER_PASSWORD" == "$OLD_JIBRI_RECORDER_PASSWORD" ]]; then
|
|
echo 'FATAL ERROR: Jibri recorder password must be changed, check the README'
|
|
exit 1
|
|
fi
|
|
|
|
OLD_JIBRI_XMPP_PASSWORD=passw0rd
|
|
if [[ "$JIBRI_XMPP_PASSWORD" == "$OLD_JIBRI_XMPP_PASSWORD" ]]; then
|
|
echo 'FATAL ERROR: Jibri auth password must be changed, check the README'
|
|
exit 1
|
|
fi
|
|
|
|
# DISPLAY is necessary for start
|
|
[ -z "${DISPLAY}" ] \
|
|
&& ( echo -e "\e[31mERROR: Please set DISPLAY variable.\e[39m"; kill 1; exit 1 )
|
|
|
|
# check loaded snd_aloop module and exit if is not loaded on the host
|
|
[ -z "$(lsmod | grep -om1 snd_aloop)" ] \
|
|
&& ( echo -e "\e[31mERROR: Please load snd-aloop module on the docker host.\e[39m"; kill 1; exit 1 )
|
|
|
|
# get host's audio group id
|
|
host_audio_group="$(stat -c %g /dev/snd/pcmC0D0p 2>/dev/null)"
|
|
|
|
# audio group is not found. Has it been run without jibri.yml?
|
|
[ -z "${host_audio_group}" ] \
|
|
&& ( echo -e "\e[31mERROR: Binding /dev/snd is not found. Please check that you run docker-compose with -f jibri.yml.\e[39m"; kill 1; exit 1 )
|
|
|
|
# try to create group with this id. If group with the id already exists, just skip
|
|
groupadd -g ${host_audio_group} jibri-audio >/dev/null 2>&1
|
|
# include user to the group by id
|
|
usermod -aG ${host_audio_group} jibri
|
|
|
|
# script for finalizing must have executing bit.
|
|
[ ! -z "${JIBRI_FINALIZE_RECORDING_SCRIPT_PATH}" ] \
|
|
&& [ ! -x "${JIBRI_FINALIZE_RECORDING_SCRIPT_PATH}" ] \
|
|
&& chmod +x ${JIBRI_FINALIZE_RECORDING_SCRIPT_PATH}
|
|
|
|
# set rundom jibri nickname for the instance if is not set
|
|
[ -z "${JIBRI_INSTANCE_ID}" ] && export JIBRI_INSTANCE_ID=$(date +%N)
|
|
|
|
# always recreate configs
|
|
tpl /defaults/config.json > /etc/jitsi/jibri/config.json
|
|
tpl /defaults/logging.properties > /etc/jitsi/jibri/logging.properties
|
|
|
|
# make recording dir
|
|
[ -z "${JIBRI_RECORDING_DIR}" ] && export JIBRI_RECORDING_DIR=/config/recordings
|
|
mkdir -p ${JIBRI_RECORDING_DIR}
|
|
chown -R jibri ${JIBRI_RECORDING_DIR}
|
|
|
|
# make logs dir
|
|
[ -z "${JIBRI_LOGS_DIR}" ] && export JIBRI_LOGS_DIR=/config/logs
|
|
mkdir -p ${JIBRI_LOGS_DIR}
|
|
chown -R jibri ${JIBRI_LOGS_DIR}
|
|
|