diff --git a/README.md b/README.md index 4ad785f..49aed71 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,5 @@ # freenginx-custom -Iamdoubz custom freenginx config for Ubuntu 22.04. I was tired of forgetting what I used to compile [freenginx](https://freenginx.org/en/docs/) so I made my own repo. +Iamdoubz custom freenginx config, tested with Ubuntu 22.04 and 24.04. I was tired of forgetting what I used to compile [freenginx](https://freenginx.org/en/docs/) so I made my own repo. # Enhancements - Support for H3/QUIC @@ -7,24 +7,27 @@ Iamdoubz custom freenginx config for Ubuntu 22.04. I was tired of forgetting wha - [Zstandard compression](https://github.com/HanadaLee/ngx_http_zstd_module) - [GeoIP2](https://github.com/leev/ngx_http_geoip2_module) - [Headers-More](https://github.com/openresty/headers-more-nginx-module) -- Quantum cryptography -- KTLS +- Post-quantum TLS key exchange (via OpenSSL) +- KTLS (requires kernel 5.10+) - debug +Everything except H3 and post-quantum can be turned off with a `--no-*` flag. + # Dependencies -There are quite a few dependencies to install. The main ones being: -- build-essential -- git -- curl -- wget -- cmake -- [libmaxminddb](https://github.com/maxmind/libmaxminddb) -- And probably others... +You need `sudo` and these packages: + +``` +sudo apt install build-essential git curl unzip cmake pkg-config libzstd-dev +``` + +`libzstd-dev` isn't needed if you build with `--no-zstd`. # Additional Packages +The script downloads these itself: - [PCRE2](https://github.com/PCRE2Project/pcre2/) - [zlib](https://www.zlib.net/) - [openssl](https://github.com/openssl/openssl/) +- [libmaxminddb](https://github.com/maxmind/libmaxminddb), installed system-wide unless the pinned version is already installed. It isn't needed if you build with `--no-geoip2`. # How to download Please use the provided script `freenginx.sh`. Make sure to make it executable first `sudo chmod +x freenginx.sh`. Then run it with `./freenginx.sh`. @@ -43,9 +46,9 @@ If a step fails, the script stops and prints the end of the log. Type `which nginx` and make a copy i.e. `sudo cp /usr/sbin/nginx /usr/sbin/nginx_apt`. **NOTE**: if you have *not* installed nginx, you do not have to do this step. **NOTE**: this script for freenginx is built as a drop in replacement for nginx. # Install newly compiled binary -1. `cd /path/to/buildroot/nginx-release-1.29.4` +1. `cd /path/to/buildroot/nginx-release-` 2. `sudo make install` 3. Check nginx `sudo nginx -t` 4. Reload nginx `sudo nginx -s reload` -5. Verify new version `sudo nginx -v` should output `nginx version: freenginx/1.29.4 (w/GeoIP2,Brotli,H3,Headers-More,Quantum,debug,KTLS)` +5. Verify new version `sudo nginx -v` should output `nginx version: freenginx/ (w/GeoIP2,Brotli,Zstd,H3,Headers-More,Quantum,debug,KTLS)` 6. Optionally free up disk space with `./freenginx.sh --purge` (same `-r` and versions as the build). It refuses to run if the built binary doesn't match `/usr/sbin/nginx`.