diff --git a/src/initserver.sh b/src/initserver.sh new file mode 100644 index 0000000..4776b6e --- /dev/null +++ b/src/initserver.sh @@ -0,0 +1,71 @@ +#!/bin/bash + +export PATH='/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin' +if [[ ! -f /opt/config || $INIT == 'yes' ]]; then + +cat /opt/envvars | grep 'CLD_' > /opt/envs +source /opt/envs + + +sleep 5s + +export turnsecret=$(openssl rand -hex 32) +export janusapikey=$(openssl rand -base64 16) +export hashkey=$(openssl rand -hex 16) +export blockkey=$(openssl rand -hex 16) +export ncsharedkey=$(openssl rand -hex 16) +echo "NextCloudHPBSecret: $ncsharedkey" > /root/keys.txt +echo "TurnSecret: $turnsecret" >> /root/keys.txt + + +echo "VARS that must be passed through env: CLOUDURL - COTURNLISTENERIP - COTURNMINPORT - COTURNMAXPORT - REALM - COTURNCERTSPASS - JANUSRTPPORTRANGE - ICEINTERFACE - INIT" + +cd /opt + +openssl req -new -newkey rsa:4096 -nodes -keyout turn_server_pkey.pem -out turn_server.csr -subj "/C=EG/ST=Cairo/L=Heliopolis/O=DevOps/OU=Awesomeness/CN=$CLD_REALM/emailAddress=myname@malaty.net" +openssl req -new -newkey rsa:4096 -days 365 -nodes -x509 -subj "/C=EG/ST=Cairo/L=Heliopolis/O=DevOps/OU=Awesomeness/CN=$CLD_REALM/emailAddress=myname@malaty.net" -keyout turn_server_pkey.pem -out turn_server_cert.pem + + + +openssl dhparam -dsaparam -out dhp.pem 4096 + +SIGNALINGCONF='/etc/signaling/server.conf' +sed -i "s||${janusapikey}|g" $SIGNALINGCONF +sed -i "s||${hashkey}|g" $SIGNALINGCONF +sed -i "s||${blockkey}|g" $SIGNALINGCONF +sed -i "s||${CLD_CLOUDURL}|g" $SIGNALINGCONF +sed -i "s||${ncsharedkey}|g" $SIGNALINGCONF +sed -i "s||${turnsecret}|g" $SIGNALINGCONF +sed -i "s||${CLD_COTURNLISTENERIP}|g" $SIGNALINGCONF + + +COTURNCONF='/etc/turnserver.conf' +sed -i "s||${CLD_COTURNLISTENERIP}|g" $COTURNCONF +sed -i "s||${CLD_COTURNMINPORT}|g" $COTURNCONF +sed -i "s||${CLD_COTURNMAXPORT}|g" $COTURNCONF +sed -i "s||${turnsecret}|g" $COTURNCONF +sed -i "s||${CLD_REALM}|g" $COTURNCONF +sed -i "s||${CLD_COTURNCERTSPASS}|g" $COTURNCONF +mkdir -p /var/log/coturn +mkdir -p /var/lib/turn/ +chown -R turnserver: /var/lib/turn/ +chown -R turnserver:turnserver /var/log/coturn +chown turnserver: /opt/turn_server_pkey.pem + + + +JANUSCONF='/etc/janus/janus.jcfg' +sed -i "s||${CLD_JANUSRTPPORTRANGE}|g" $JANUSCONF +sed -i "s||${CLD_ICEINTERFACE}|g" $JANUSCONF +sed -i "s||${janusapikey}|g" $JANUSCONF +sed -i "s||${CLD_COTURNLISTENERIP}|g" $JANUSCONF + + +systemctl restart coturn +systemctl restart janus +systemctl restart signaling + +touch /opt/config +fi + +