Skip to content

Latest commit

 

History

History
115 lines (86 loc) · 6.36 KB

README.md

File metadata and controls

115 lines (86 loc) · 6.36 KB

nginx-autoinstall

Compile and install NGINX from source with optional features, modules and patches.

Compatibility

  • Debian 9 and later
  • Ubuntu 16.04 and later

The script might work on ARM-based architectures, but it's only being regularly tested against x86_64 with GitHub Actions.

Features

  • Latest mainline or stable version, from source
  • Optional modules and patches
  • Custom nginx.conf (default does not work)
  • Init script for systemd (not provided by default)
  • Logrotate conf (not provided by default)
  • Block Nginx installation from APT using pinning, to prevent conflicts

Optional modules/features

Cache Modules

Usage

Just download and execute the script :

wget https://raw.githubusercontent.com/angristan/nginx-autoinstall/master/nginx-autoinstall.sh
chmod +x nginx-autoinstall.sh
./nginx-autoinstall.sh

You will be able to:

  • Install NGINX
  • Update NGINX (It will install it again and overwrite current files and/or modules.)
  • Uninstall NGINX with optional cleanup
  • Self-update the script

Just follow the question!

You can check configuration examples for the custom modules.

Headless use

You can run the script without the prompts with the option HEADLESS set to y. This allows for automated install and scripting. This is what is used to test the script with GitHub Actions.

HEADLESS=y ./nginx-autoinstall.sh

To install Nginx mainline with Brotli:

HEADLESS=y \
NGINX_VER=MAINLINE \
BROTLI=y \
./nginx-autoinstall.sh

To install with Geoip:

HEADLESS=y \
GEOIP=y \
GEOIP2_ACCOUNT_ID=YOUR_ACCOUNT_ID_HERE \
GEOIP2_LICENSE_KEY=YOUR_LICENSE_KEY_HERE \
./nginx-autoinstall.sh

To uninstall Nginx and remove the logs and configuration files:

HEADLESS=y \
OPTION=2 \
RM_CONF=y \
RM_LOGS=y \
./nginx-autoinstall.sh

All the default variables are set at the beginning of the script.

LICENSE

GPL v3.0