mirror of
https://github.com/nihilvux/bancho.py.git
synced 2025-09-15 18:18:38 -07:00
53 lines
1.7 KiB
Bash
53 lines
1.7 KiB
Bash
#!/usr/bin/env bash
|
|
set -euo pipefail
|
|
|
|
# ensure admin privileges
|
|
if (( $EUID != 0 )); then
|
|
printf "This script must be run with administrative privileges."
|
|
exit
|
|
fi
|
|
|
|
root_dir=$(pwd)
|
|
nginx_version=$(nginx -v 2>&1 | awk -F' ' '{print $3}' | grep -o '[0-9.]*$')
|
|
|
|
# download the nginx source and the geoip2 module in a temp folder
|
|
mkdir "temp" && cd "temp"
|
|
wget http://nginx.org/download/nginx-$nginx_version.tar.gz
|
|
tar zxvf nginx-$nginx_version.tar.gz
|
|
wget -O ngx_http_geoip2_module.tar.gz https://github.com/leev/ngx_http_geoip2_module/archive/master.tar.gz
|
|
tar zxvf ngx_http_geoip2_module.tar.gz
|
|
|
|
# install essentials apps to compile software and add ppas
|
|
apt update && apt install -y \
|
|
software-properties-common \
|
|
build-essential
|
|
|
|
# install maxmind's ppa and the libraries required to build nginx
|
|
add-apt-repository ppa:maxmind/ppa -y
|
|
apt install -y \
|
|
libmaxminddb0 \
|
|
libmaxminddb-dev \
|
|
mmdb-bin \
|
|
geoipupdate \
|
|
libpcre3 \
|
|
libpcre3-dev \
|
|
zlib1g \
|
|
zlib1g-dev \
|
|
libssl-dev
|
|
|
|
# build nginx with the geoip2 module
|
|
cd nginx-$nginx_version
|
|
./configure --add-dynamic-module=../ngx_http_geoip2_module-master $(nginx -V) --with-compat
|
|
make
|
|
|
|
# install the new dynamic module in nginx
|
|
mkdir -p /etc/nginx/modules-available /etc/nginx/modules-enabled
|
|
cp objs/ngx_http_geoip2_module.so /usr/lib/nginx/modules
|
|
echo "load_module modules/ngx_http_geoip2_module.so;" > /etc/nginx/modules-available/mod-http-geoip2.conf
|
|
rm -f /etc/nginx/modules-enabled/60-mod-http-geoip2.conf
|
|
ln -s /etc/nginx/modules-available/mod-http-geoip2.conf /etc/nginx/modules-enabled/60-mod-http-geoip2.conf
|
|
|
|
cd "$root_dir" && rm -r temp
|
|
|
|
printf "The GeoIP2 module has been installed and enabled."
|