#!/bin/bash
apt update
apt -y install wget nginx libnginx-mod-stream certbot
wget https://github.com/processone/ejabberd/releases/download/26.02/ejabberd_26.02-1_amd64.deb
dpkg -i ejabberd_26.02-1_amd64.deb
rm -f ejabberd_26.02-1_amd64.deb
systemctl enable --now ejabberd

systemctl restart nginx

mkdir /etc/nginx/tcpconf.d

echo "" > /etc/nginx/tcpconf.d/lb
tee /etc/nginx/tcpconf.d/lb <<EOF
stream {

    upstream web_server {
        server 127.0.0.1:5443;
    }
    server {
        listen 443;
        proxy_pass web_server;

    }
}
EOF

echo "include /etc/nginx/tcpconf.d/*;" >> /etc/nginx/nginx.conf

echo "" > /etc/nginx/sites-enabled/default
tee /etc/nginx/sites-enabled/default <<EOF
server {
        listen 80 default_server;
        listen [::]:80 default_server;

        server_name _;
        location /.well-known {
        	root /var/www/;
        }

        location / {
                proxy_pass http://127.0.0.1:5280/;
        }
}
EOF

nginx -t && service nginx restart
domainname=$1
if [[ -z "$domainname" ]]; then
	read -e -p "Enter domain name: " domainname 
fi
echo $domainname
certbot certonly --webroot -w /var/www/ -d ${domainname} -d pubsub.${domainname} -d proxy.${domainname} -d conference.${domainname} -d upload.${domainname}
chown -R www-data:ejabberd /etc/letsencrypt
chmod -R 770 /etc/letsencrypt

curl -fsSL https://junk.dificen.to/ilusha/ejabberd.yml > /opt/ejabberd/conf/ejabberd.yml

sed -i "s@hostnametemplate@${domainname}@g" /opt/ejabberd/conf/ejabberd.yml

systemctl restart ejabberd

ejabberdctl register adminn ${domainname} Temp12313!
