mirror of
https://github.com/bunkerity/bunkerized-nginx
synced 2023-12-13 21:30:18 +01:00
73 lines
2 KiB
Bash
Executable file
73 lines
2 KiB
Bash
Executable file
#!/bin/bash
|
|
|
|
# load some functions
|
|
. /opt/bunkerized-nginx/entrypoint/utils.sh
|
|
|
|
function do_and_check_cmd() {
|
|
if [ "$CHANGE_DIR" != "" ] ; then
|
|
cd "$CHANGE_DIR"
|
|
fi
|
|
if [ "$AS_ROOT" != "" ] ; then
|
|
output=$("$@" 2>&1)
|
|
else
|
|
output=$(su -s "/bin/bash" -c "$1" nginx 2>&1)
|
|
fi
|
|
ret="$?"
|
|
if [ $ret -ne 0 ] ; then
|
|
echo "[!] Error from command : $*"
|
|
echo "$output"
|
|
exit $ret
|
|
fi
|
|
echo "$output"
|
|
return 0
|
|
}
|
|
|
|
# Check if we are root
|
|
if [ $(id -u) -ne 0 ] ; then
|
|
echo "[!] Run me as root"
|
|
exit 1
|
|
fi
|
|
|
|
# Check if variables.env is present
|
|
if [ ! -f "/opt/bunkerized-nginx/variables.env" ] ; then
|
|
echo "[!] Missing /opt/bunkerized-nginx/variables.env"
|
|
exit 1
|
|
fi
|
|
|
|
# Run generator
|
|
echo "[*] Generate configuration files"
|
|
do_and_check_cmd "/opt/bunkerized-nginx/gen/main.py --settings /opt/bunkerized-nginx/settings.json --templates /opt/bunkerized-nginx/confs --output /etc/nginx --variables /opt/bunkerized-nginx/variables.env"
|
|
|
|
# Run temporary nginx if needed
|
|
status="$(systemctl status nginx 2>&1)"
|
|
if [ $? -ne 0 ] && [ "$(grep "^.*AUTO_LETS_ENCRYPT=yes$" /opt/bunkerized-nginx/variables.env)" != "" ] ; then
|
|
echo "[*] Run temp nginx"
|
|
do_and_check_cmd "cp /opt/bunkerized-nginx/confs/global/nginx-temp.conf /tmp/nginx-temp.conf"
|
|
replace_in_file "/tmp/nginx-temp.conf" "%USE_API%" ""
|
|
replace_in_file "/tmp/nginx-temp.conf" "%HTTP_PORT%" "80"
|
|
AS_ROOT="yes" do_and_check_cmd nginx -c /tmp/nginx-temp.conf -g 'user nginx;'
|
|
fi
|
|
|
|
# Run pre-jobs
|
|
echo "[*] Run jobs"
|
|
CHANGE_DIR=/tmp do_and_check_cmd "/opt/bunkerized-nginx/entrypoint/jobs.sh"
|
|
|
|
# Stop temp nginx
|
|
status="$(systemctl status nginx 2>&1)"
|
|
if [ $? -ne 0 ] && [ -f "/tmp/nginx-temp.pid" ] ; then
|
|
AS_ROOT="yes" do_and_check_cmd nginx -c /tmp/nginx-temp.conf -s quit
|
|
fi
|
|
|
|
# Reload nginx if it's running
|
|
status="$(systemctl status nginx 2>&1)"
|
|
if [ $? -eq 0 ] ; then
|
|
echo "[*] Reload nginx"
|
|
AS_ROOT="yes" do_and_check_cmd systemctl reload nginx
|
|
# Otherwise start it
|
|
else
|
|
echo "[*] Start nginx"
|
|
AS_ROOT="yes" do_and_check_cmd systemctl start nginx
|
|
fi
|
|
|
|
# Done
|
|
echo "[*] bunkerized-nginx successfully executed"
|