mirror of
https://github.com/elisspace/rtinst.git
synced 2026-08-29 15:44:06 +00:00
95 lines
3.4 KiB
Bash
Executable File
95 lines
3.4 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
######################################################################
|
|
#
|
|
# Copyright (c) 2015 arakasi72 (https://github.com/arakasi72)
|
|
#
|
|
# --> Licensed under the MIT license: http://www.opensource.org/licenses/mit-license.php
|
|
#
|
|
######################################################################
|
|
|
|
PATH=/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/bin:/sbin
|
|
serverip=$(ip route get 8.8.8.8 | awk 'NR==1 {print $7}')
|
|
|
|
if [ "$(id -u)" != "0" ]; then
|
|
echo "Must be run as root, directly or with sudo"
|
|
exit 1
|
|
fi
|
|
|
|
if [ $(dpkg-query -W -f='${Status}' webmin 2>/dev/null | grep -c "ok installed") -eq 0 ]; then
|
|
echo "Installing Webmin"
|
|
echo "deb http://download.webmin.com/download/repository sarge contrib" > /etc/apt/sources.list.d/webmin.list
|
|
wget -qO - http://www.webmin.com/jcameron-key.asc | apt-key add -
|
|
aptitude -q=5 update
|
|
aptitude -q=5 -y install webmin
|
|
else
|
|
echo 'Webmin is already installed'
|
|
fi
|
|
|
|
#changes to the webmin config file
|
|
if [ -z "$(grep ^referers_none= /etc/webmin/config)" ]; then
|
|
echo "referers_none=1" >> /etc/webmin/config
|
|
else
|
|
sed -i '/^referers_none=/ c\referers_none=1' /etc/webmin/config
|
|
fi
|
|
|
|
if [ -z "$(grep ^referers= /etc/webmin/config)" ]; then
|
|
echo "referers=localhost" >> /etc/webmin/config
|
|
else
|
|
sed -i '/^referers=/ c\referers=localhost' /etc/webmin/config
|
|
fi
|
|
|
|
if [ -z "$(grep ^webprefix= /etc/webmin/config)" ]; then
|
|
echo "webprefix=/webmin" >> /etc/webmin/config
|
|
else
|
|
sed -i '/^webprefix=/ c\webprefix=\/webmin' /etc/webmin/config
|
|
fi
|
|
|
|
if [ -z "$(grep ^webprefixnoredir= /etc/webmin/config)" ]; then
|
|
echo "webprefixnoredir=1" >> /etc/webmin/config
|
|
else
|
|
sed -i '/^webprefixnoredir=/ c\webprefixnoredir=1' /etc/webmin/config
|
|
fi
|
|
|
|
if [ -z "$(grep ^referer= /etc/webmin/config)" ]; then
|
|
echo "referer=1" >> /etc/webmin/config
|
|
else
|
|
sed -i '/^referer=/ c\referer=1' /etc/webmin/config
|
|
fi
|
|
|
|
if [ -z "$(grep ^ssl= /etc/webmin/miniserv.conf)" ]; then
|
|
echo "ssl=0" >> /etc/webmin/miniserv.conf
|
|
else
|
|
sed -i '/^ssl=/ c\ssl=0' /etc/webmin/miniserv.conf
|
|
fi
|
|
|
|
echo "Setting up Nginx Reverse Proxy"
|
|
|
|
#set up default proxy settings
|
|
echo 'proxy_redirect off;' > /etc/nginx/conf.d/proxy.conf
|
|
echo 'proxy_set_header Host $host;' >> /etc/nginx/conf.d/proxy.conf
|
|
echo 'proxy_set_header X-Real-IP $remote_addr;' >> /etc/nginx/conf.d/proxy.conf
|
|
echo 'proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;' >> /etc/nginx/conf.d/proxy.conf
|
|
echo 'proxy_cache off;' >> /etc/nginx/conf.d/proxy.conf
|
|
echo 'proxy_buffering off;' >> /etc/nginx/conf.d/proxy.conf
|
|
|
|
#include webmin location in main nginx site file
|
|
sed -i '/webmin-loc/d' /etc/nginx/sites-available/default
|
|
sed -i '/^$/N;/^\n$/D' /etc/nginx/sites-available/default
|
|
lineno=$(grep -Fn 'location ~ /\.ht' /etc/nginx/sites-available/default | cut -d : -f 1 | tail -1)
|
|
sed -i $lineno"i\ include \/etc\/nginx\/sites-available\/webmin-loc;\n" /etc/nginx/sites-available/default
|
|
|
|
#write the webmin nginx location file
|
|
echo 'location /webmin/ {' > /etc/nginx/sites-available/webmin-loc
|
|
echo ' proxy_pass http://localhost:10000/;' >> /etc/nginx/sites-available/webmin-loc
|
|
echo ' proxy_redirect http://$host:10000/ /webmin/;' >> /etc/nginx/sites-available/webmin-loc
|
|
echo '}' >> /etc/nginx/sites-available/webmin-loc
|
|
|
|
#restart services
|
|
service webmin restart >> /dev/null 2>&1
|
|
service nginx restart >> /dev/null 2>&1
|
|
echo "Completed"
|
|
echo
|
|
echo "Webmin can be accessed at https://$serverip/webmin"
|
|
echo "login using root, or sudo user credentials"
|