@@ -41,52 +41,95 @@ echo "Install reqs..." && apt-get install -y libyajl-dev ssdeep zlib1g-dev libxs
4141# ====================================================================================
4242mkdir -p $GITHUB_WORKSPACE /nginx_source
4343mkdir -p $GITHUB_WORKSPACE /nginx_mods
44- cd $GITHUB_WORKSPACE /nginx_source; echo " Downloading Nginx v${NGINX_VERSION} ..." && wget https://nginx.org/download/nginx-${NGINX_VERSION} .tar.gz > /dev/null 2>&1 ; tar xf nginx-${NGINX_VERSION} .tar.gz && rm -Rf nginx-${NGINX_VERSION} .tar.gz
44+ # ====================================================================================
45+ if [ ! -d " $GITHUB_WORKSPACE /nginx_source/nginx-${NGINX_VERSION} " ]; then
46+ cd $GITHUB_WORKSPACE /nginx_source; echo " Downloading Nginx v${NGINX_VERSION} ..." ; wget https://nginx.org/download/nginx-${NGINX_VERSION} .tar.gz > /dev/null 2>&1 ; tar xf nginx-${NGINX_VERSION} .tar.gz && rm -Rf nginx-${NGINX_VERSION} .tar.gz
47+ else
48+ echo " nginx-${NGINX_VERSION} already exists, skipping download."
49+ fi
4550# ====================================================================================
4651# BORINGSSL
47- cd $GITHUB_WORKSPACE /nginx_mods; git clone https://boringssl.googlesource.com/boringssl > /dev/null 2>&1
48- cd $GITHUB_WORKSPACE /nginx_mods/boringssl; mkdir -p build; cd build; cmake .. > /dev/null 2>&1 ; echo " Building BoringSSL..." && make -j$CORES > /dev/null 2>&1
49- mkdir -p " $GITHUB_WORKSPACE /nginx_mods/boringssl/.openssl/lib"
50- cd " $GITHUB_WORKSPACE /nginx_mods/boringssl/.openssl" ; ln -s ../include include
51- cd " $GITHUB_WORKSPACE /nginx_mods/boringssl" ; cp " build/libcrypto.a" " .openssl/lib" ; cp " build/libssl.a" " .openssl/lib"
52+
53+ if [ ! -d " $GITHUB_WORKSPACE /nginx_mods/boringssl" ]; then
54+ cd $GITHUB_WORKSPACE /nginx_mods; git clone https://boringssl.googlesource.com/boringssl > /dev/null 2>&1
55+ cd $GITHUB_WORKSPACE /nginx_mods/boringssl; mkdir -p build; cd build; cmake .. > /dev/null 2>&1 ; echo " Building BoringSSL..." && make -j$CORES > /dev/null 2>&1
56+ mkdir -p " $GITHUB_WORKSPACE /nginx_mods/boringssl/.openssl/lib"
57+ cd " $GITHUB_WORKSPACE /nginx_mods/boringssl/.openssl" ; ln -s ../include include
58+ cd " $GITHUB_WORKSPACE /nginx_mods/boringssl" ; cp " build/libcrypto.a" " .openssl/lib" ; cp " build/libssl.a" " .openssl/lib"
59+ else
60+ echo " BoringSSL already exists, skipping download."
61+ fi
5262# ====================================================================================
5363# ZLIB
5464# cd $GITHUB_WORKSPACE/nginx_mods && echo "Downloading ZLIB..." && wget http://zlib.net/current/zlib.tar.gz > /dev/null 2>&1
5565# cd $GITHUB_WORKSPACE/nginx_mods && tar xf zlib.tar.gz; rm -Rf zlib.tar.gz; mv zlib-* zlib
5666# cd $GITHUB_WORKSPACE/nginx_mods/zlib && CFLAGS=-fPIC CXXFLAGS=-fPIC CPPFLAGS="-fPIC" ./configure > /dev/null 2>&1; make -j$CORES > /dev/null 2>&1; make install > /dev/null 2>&1
57- cd $GITHUB_WORKSPACE /nginx_mods && echo " Downloading ZLIB..." && git clone https://github.com/cloudflare/zlib.git > /dev/null 2>&1
58- cd $GITHUB_WORKSPACE /nginx_mods/zlib && CFLAGS=-fPIC CXXFLAGS=-fPIC CPPFLAGS=" -fPIC" ./configure > /dev/null 2>&1 ; make -j$CORES > /dev/null 2>&1 ; make install > /dev/null 2>&1
67+ if [ ! -d " $GITHUB_WORKSPACE /nginx_mods/zlib" ]; then
68+ cd $GITHUB_WORKSPACE /nginx_mods && echo " Downloading ZLIB..." && git clone https://github.com/cloudflare/zlib.git > /dev/null 2>&1
69+ cd $GITHUB_WORKSPACE /nginx_mods/zlib && CFLAGS=-fPIC CXXFLAGS=-fPIC CPPFLAGS=" -fPIC" ./configure > /dev/null 2>&1 ; make -j$CORES > /dev/null 2>&1 ; make install > /dev/null 2>&1
70+ else
71+ echo " ZLIB already exists, skipping download."
72+ fi
5973# ====================================================================================
6074# SYSTEM_MODSECURITY
61- echo " Downloading ModSecurity..." && git clone --depth 1 -b v3/master --single-branch https://github.com/SpiderLabs/ModSecurity.git > /dev/null 2>&1
62- cd ModSecurity; git submodule init > /dev/null 2>&1 ; git submodule update > /dev/null 2>&1 ; ./build.sh > /dev/null 2>&1 ; ./configure > /dev/null 2>&1 ; echo " Building ModSecurity..." && make -j$CORES > /dev/null 2>&1 ; make install > /dev/null 2>&1
75+ if [ ! -d " $GITHUB_WORKSPACE /nginx_mods/ModSecurity" ]; then
76+ cd $GITHUB_WORKSPACE /nginx_mods; echo " Downloading ModSecurity..." && git clone --depth 1 -b v3/master --single-branch https://github.com/SpiderLabs/ModSecurity.git > /dev/null 2>&1
77+ cd $GITHUB_WORKSPACE /nginx_mods/ModSecurity; git submodule init > /dev/null 2>&1 ; git submodule update > /dev/null 2>&1 ; ./build.sh > /dev/null 2>&1 ; ./configure > /dev/null 2>&1 ; echo " Building ModSecurity..." && make -j$CORES > /dev/null 2>&1 ; make install > /dev/null 2>&1
78+ else
79+ echo " ModSecurity already exists, skipping download."
80+ fi
6381# ====================================================================================
6482# SYSTEM_PCRE
65- cd $GITHUB_WORKSPACE /nginx_mods && echo " Downloading ZLIB..." && wget https://github.com/PCRE2Project/pcre2/archive/refs/tags/pcre2-${SYSTEM_PCRE} .tar.gz > /dev/null 2>&1
66- cd $GITHUB_WORKSPACE /nginx_mods && tar xf pcre2-${SYSTEM_PCRE} .tar.gz; rm -Rf pcre2-${SYSTEM_PCRE} .tar.gz
67- cd $GITHUB_WORKSPACE /nginx_mods/pcre2-pcre2-${SYSTEM_PCRE} && ./autogen.sh > /dev/null 2>&1 ; ./configure > /dev/null 2>&1 ; echo " Building PCRE2..." && make -j$CORES > /dev/null 2>&1
83+ if [ ! -d " $GITHUB_WORKSPACE /nginx_mods/pcre2-pcre2-${SYSTEM_PCRE} " ]; then
84+ cd $GITHUB_WORKSPACE /nginx_mods && echo " Downloading ZLIB..." && wget https://github.com/PCRE2Project/pcre2/archive/refs/tags/pcre2-${SYSTEM_PCRE} .tar.gz > /dev/null 2>&1
85+ cd $GITHUB_WORKSPACE /nginx_mods && tar xf pcre2-${SYSTEM_PCRE} .tar.gz; rm -Rf pcre2-${SYSTEM_PCRE} .tar.gz
86+ cd $GITHUB_WORKSPACE /nginx_mods/pcre2-pcre2-${SYSTEM_PCRE} && ./autogen.sh > /dev/null 2>&1 ; ./configure > /dev/null 2>&1 ; echo " Building PCRE2..." && make -j$CORES > /dev/null 2>&1
87+ else
88+ echo " PCRE2 already exists, skipping download."
89+ fi
6890# ====================================================================================
6991# LibInjection
70- cd $GITHUB_WORKSPACE /nginx_mods && echo " Downloading LibInjection..." && git clone https://github.com/libinjection/libinjection.git > /dev/null 2>&1
71- cd $GITHUB_WORKSPACE /nginx_mods/libinjection && ./autogen.sh > /dev/null 2>&1 ; ./configure > /dev/null 2>&1 ; echo " Building LibInjection..." && make -j$CORES > /dev/null 2>&1 ; make install > /dev/null 2>&1
92+ if [ ! -d " $GITHUB_WORKSPACE /nginx_mods/pcre2-pcre2-${SYSTEM_PCRE} " ]; then
93+ cd $GITHUB_WORKSPACE /nginx_mods && echo " Downloading LibInjection..." && git clone https://github.com/libinjection/libinjection.git > /dev/null 2>&1
94+ cd $GITHUB_WORKSPACE /nginx_mods/libinjection && ./autogen.sh > /dev/null 2>&1 ; ./configure > /dev/null 2>&1 ; echo " Building LibInjection..." && make -j$CORES > /dev/null 2>&1 ; make install > /dev/null 2>&1
95+ else
96+ echo " LibInjection already exists, skipping download."
97+ fi
7298# ====================================================================================
7399# NGX_MOD_MODSECURITY
74- cd $GITHUB_WORKSPACE /nginx_mods/; echo " Downloading NgxModSec v${NGX_MOD_MODSECURITY} ..." && wget https://github.com/SpiderLabs/ModSecurity-nginx/archive/refs/tags/v${NGX_MOD_MODSECURITY} .tar.gz > /dev/null 2>&1
75- cd $GITHUB_WORKSPACE /nginx_mods/; tar xf v${NGX_MOD_MODSECURITY} .tar.gz; rm -Rf v${NGX_MOD_MODSECURITY} .tar.gz
100+ if [ ! -d " $GITHUB_WORKSPACE /nginx_mods/ModSecurity-nginx-${NGX_MOD_MODSECURITY} " ]; then
101+ cd $GITHUB_WORKSPACE /nginx_mods/; echo " Downloading NgxModSec v${NGX_MOD_MODSECURITY} ..." && wget https://github.com/SpiderLabs/ModSecurity-nginx/archive/refs/tags/v${NGX_MOD_MODSECURITY} .tar.gz > /dev/null 2>&1 ; tar xf v${NGX_MOD_MODSECURITY} .tar.gz; rm -Rf v${NGX_MOD_MODSECURITY} .tar.gz
102+ else
103+ echo " ngx_modsecurity already exists, skipping download."
104+ fi
76105# ====================================================================================
77106# NGX_MOD_HEADERS_MORE
78- cd $GITHUB_WORKSPACE /nginx_mods/; echo " Downloading Headers v${NGX_MOD_HEADERS_MORE} ..." && wget https://github.com/openresty/headers-more-nginx-module/archive/refs/tags/v${NGX_MOD_HEADERS_MORE} .tar.gz > /dev/null 2>&1
79- cd $GITHUB_WORKSPACE /nginx_mods/; tar xf v${NGX_MOD_HEADERS_MORE} .tar.gz; rm -Rf v${NGX_MOD_HEADERS_MORE} .tar.gz
107+ if [ ! -d " $GITHUB_WORKSPACE /nginx_mods/headers-more-nginx-module-${NGX_MOD_HEADERS_MORE} " ]; then
108+ cd $GITHUB_WORKSPACE /nginx_mods/; echo " Downloading Headers v${NGX_MOD_HEADERS_MORE} ..." && wget https://github.com/openresty/headers-more-nginx-module/archive/refs/tags/v${NGX_MOD_HEADERS_MORE} .tar.gz > /dev/null 2>&1 ; tar xf v${NGX_MOD_HEADERS_MORE} .tar.gz; rm -Rf v${NGX_MOD_HEADERS_MORE} .tar.gz
109+ else
110+ echo " ngx_headers_more already exists, skipping download."
111+ fi
80112# ====================================================================================
81113# Brotli
82- cd $GITHUB_WORKSPACE /nginx_mods/; echo " Downloading Brotli..." && git clone https://github.com/google/ngx_brotli.git > /dev/null 2>&1 ; cd $GITHUB_WORKSPACE /nginx_mods/ngx_brotli && git submodule update --init > /dev/null 2>&1
114+ if [ ! -d " $GITHUB_WORKSPACE /nginx_mods/ngx_brotli" ]; then
115+ cd $GITHUB_WORKSPACE /nginx_mods/; echo " Downloading Brotli..." && git clone https://github.com/google/ngx_brotli.git > /dev/null 2>&1 ; cd $GITHUB_WORKSPACE /nginx_mods/ngx_brotli && git submodule update --init > /dev/null 2>&1
116+ else
117+ echo " ngx_brotli already exists, skipping download."
118+ fi
83119# ====================================================================================
84120# NGX_MOD_GEOIP2
85- cd $GITHUB_WORKSPACE /nginx_mods/; echo " Downloading GEOIP2 v${NGX_MOD_GEOIP2} ..." && wget https://github.com/leev/ngx_http_geoip2_module/archive/refs/tags/${NGX_MOD_GEOIP2} .tar.gz > /dev/null 2>&1
86- cd $GITHUB_WORKSPACE /nginx_mods/; tar xf ${NGX_MOD_GEOIP2} .tar.gz; rm -Rf ${NGX_MOD_GEOIP2} .tar.gz
121+ if [ ! -d " $GITHUB_WORKSPACE /nginx_mods/ngx_http_geoip2_module-${NGX_MOD_GEOIP2} " ]; then
122+ cd $GITHUB_WORKSPACE /nginx_mods/; echo " Downloading GEOIP2 v${NGX_MOD_GEOIP2} ..." && wget https://github.com/leev/ngx_http_geoip2_module/archive/refs/tags/${NGX_MOD_GEOIP2} .tar.gz > /dev/null 2>&1 ; tar xf ${NGX_MOD_GEOIP2} .tar.gz; rm -Rf ${NGX_MOD_GEOIP2} .tar.gz
123+ else
124+ echo " ngx_geoip2 already exists, skipping download."
125+ fi
87126# ====================================================================================
88127# Naxsi
89- cd $GITHUB_WORKSPACE /nginx_mods/; echo " Downloading Naxsi..." && git clone --recurse-submodules https://github.com/wargio/naxsi.git naxsi > /dev/null 2>&1
128+ if [ ! -d " $GITHUB_WORKSPACE /nginx_mods/naxsi/naxsi_src" ]; then
129+ cd $GITHUB_WORKSPACE /nginx_mods/; echo " Downloading Naxsi..." && git clone --recurse-submodules https://github.com/wargio/naxsi.git naxsi > /dev/null 2>&1
130+ else
131+ echo " ngx_naxsi already exists, skipping download."
132+ fi
90133# ====================================================================================
91134echo " Building Nginx v${NGINX_VERSION} ..." && cd $GITHUB_WORKSPACE /nginx_source/nginx-${NGINX_VERSION} && CFLAGS=-fPIC CXXFLAGS=-fPIC ./configure --with-compat \
92135 --user=raweb \
@@ -143,7 +186,7 @@ echo "Building Nginx v${NGINX_VERSION}..." && cd $GITHUB_WORKSPACE/nginx_source/
143186 --add-module=$GITHUB_WORKSPACE /nginx_mods/naxsi/naxsi_src \
144187 --add-module=$GITHUB_WORKSPACE /nginx_mods/ngx_brotli \
145188 --with-cc-opt=" -O3 -fstack-protector-strong -Wformat -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -fPIC -I $GITHUB_WORKSPACE /nginx_mods/boringssl/.openssl/include/" \
146- --with-ld-opt=" -Wl,-z,relro -Wl,-z,now -Wl,--as-needed -pie -L $GITHUB_WORKSPACE /nginx_mods/pcre2-pcre2-${SYSTEM_PCRE} /.libs -lpcre2-8 -L/lib/x86_64-linux-gnu -lpcre -L $GITHUB_WORKSPACE /nginx_mods/boringssl/.openssl/lib/ -lstdc++" > /dev/null 2>&1
189+ --with-ld-opt=" -Wl,-z,relro -Wl,-z,now -Wl,--as-needed -pie -L $GITHUB_WORKSPACE /nginx_mods/pcre2-pcre2-${SYSTEM_PCRE} /.libs -lpcre2-8 -L/lib/x86_64-linux-gnu -lpcre -L $GITHUB_WORKSPACE /nginx_mods/boringssl/.openssl/lib/ -lstdc++" > /dev/null 2>&1
147190 touch $GITHUB_WORKSPACE /nginx_mods/boringssl/.openssl/include/openssl/ssl.h
148191 make -j$CORES > /dev/null 2>&1 ; make install; make clean > /dev/null 2>&1
149192 unset NGINX
@@ -192,7 +235,7 @@ Section: web
192235Priority: optional
193236Architecture: $DEB_ARCH
194237Maintainer: Julio S. <cd@julio.al>
195- Depends: logrotate, libpcre2-8-0, libssl3, libxml2, libxslt1.1, libgd3, libgeoip1, libmaxminddb0, libcurl4, libc6, zlib1g, libbrotli1, libyajl2, libfuzzy2, liblmdb0, libre2-9, libc-ares2 libmodsecurity3
238+ Depends: logrotate, libpcre2-8-0, libssl3, libxml2, libxslt1.1, libgd3, libgeoip1, libmaxminddb0, libcurl4, libc6, zlib1g, libbrotli1, libyajl2, libfuzzy2, liblmdb0, libre2-9, libc-ares2, libmodsecurity3
196239Description: Raweb Webserver (nginx) for Debian $BUILD_CODE
197240EOF
198241
0 commit comments