Skip to content

Instantly share code, notes, and snippets.

@j67678
Created September 14, 2014 05:09
Show Gist options
  • Save j67678/4c1f6b8bfa6345edccf8 to your computer and use it in GitHub Desktop.
Save j67678/4c1f6b8bfa6345edccf8 to your computer and use it in GitHub Desktop.
ZNC log hosted on nginx with fancyindex
# Maintainer: Alexander Kuznecov <alexander@kuznetcov.me>
_pkgname="nginx"
_user="http"
_group="http"
_doc_root="/usr/share/${_pkgname}/http"
_sysconf_path="etc"
_conf_path="${_sysconf_path}/${_pkgname}"
_tmp_path="/var/spool/${_pkgname}"
_pid_path="/run"
_lock_path="/var/lock"
_log_path="/var/log/${_pkgname}"
### 3d party modules:
_echo_ver="v0.54"
_echo_dirname="ngx_echo"
_headersmore_ver="v0.25"
_headersmore_dirname="ngx_headersmore"
_uploadprogress_ver="v0.9.1"
_uploadprogress_dirname="ngx_uploadprogress"
_upstreamfair_hash="a18b4099fbd458111983200e098b6f0c8efed4bc"
_upstreamfair_dirname="ngx_upstreamfair"
_fancyindex_ver="v0.3.3"
_fancyindex_dirname="ngx_fancyindex"
_authpam_ver="1.3"
_authpam_dirname="ngx_authpam"
_accesskey_ver="2.0.3"
_accesskey_dirname="ngx_accesskey"
_rtmp_ver="v1.1.4"
_rtmp_dirname="ngx_rtmp"
_davext_ver="v0.0.3"
_davext_dirname="ngx_daxext"
_naxsi_ver="0.53-2"
_naxsi_dirname="ngx_naxsi"
pkgname=nginx-custom
pkgver=1.6.1
pkgrel=1
pkgdesc="lightweight HTTP server and IMAP/POP3 proxy server with standard, additional and 3d party modules"
arch=('i686' 'x86_64')
depends=('pcre' 'zlib' 'openssl' 'pam' 'geoip' 'geoip-database' 'gd')
makedepends=(
'libxslt'
'gd'
'git'
)
url="http://nginx.org"
license=('custom')
conflicts=('nginx' 'nginx-unstable' 'nginx-svn' 'nginx-devel' 'nginx-custom-dev' 'nginx-full')
provides=('nginx')
backup=("${_conf_path}/nginx.conf"
"${_conf_path}/koi-win"
"${_conf_path}/koi-utf"
"${_conf_path}/win-utf"
"${_conf_path}/mime.types"
"${_conf_path}/fastcgi.conf"
"${_conf_path}/fastcgi_params"
"${_conf_path}/scgi_params"
"${_conf_path}/uwsgi_params"
"etc/logrotate.d/nginx")
_user=http
_group=http
source=("nginx.sh"
"nginx.conf"
"nginx.logrotate"
"nginx.service"
"http://nginx.org/download/nginx-$pkgver.tar.gz"
"${_fancyindex_dirname}.tar.gz::https://github.com/aperezdc/ngx-fancyindex/archive/${_fancyindex_ver}.tar.gz"
"${_uploadprogress_dirname}.source::https://github.com/masterzen/nginx-upload-progress-module/tarball/${_uploadprogress_ver}"
"${_headersmore_dirname}.source::https://github.com/agentzh/headers-more-nginx-module/tarball/${_headersmore_ver}"
"${_echo_dirname}.source::https://github.com/agentzh/echo-nginx-module/tarball/${_echo_ver}"
"${_upstreamfair_dirname}.source::https://github.com/gnosek/nginx-upstream-fair/tarball/${_upstreamfair_hash}"
"${_authpam_dirname}.tar.gz::http://web.iti.upv.es/~sto/nginx/ngx_http_auth_pam_module-${_authpam_ver}.tar.gz"
"${_accesskey_dirname}.tar.gz::http://wiki.nginx.org/images/5/51/Nginx-accesskey-${_accesskey_ver}.tar.gz"
"${_rtmp_dirname}.zip::https://github.com/arut/nginx-rtmp-module/archive/${_rtmp_ver}.zip"
"${_davext_dirname}.tar.gz::https://github.com/arut/nginx-dav-ext-module/archive/${_davext_ver}.tar.gz"
"${_naxsi_dirname}.tar.gz::https://github.com/nbs-system/naxsi/archive/${_naxsi_ver}.tar.gz"
)
md5sums=('d56559ed5e8cc0b1c7adbe33f2300c4c'
'845cab784b50f1666bbf89d7435ac7af'
'ab1eb640c978536c1dad16674d6b3c3c'
'ce9a06bcaf66ec4a3c4eb59b636e0dfd'
'45e5a11f48b001644676f7767980a2bf'
'5289441fc49f457d5fb36b6b5ef6ec89'
'f7dee95dbe8ada5f4d8e9d59ca1f4797'
'10e178b0cecf6ce891ee297d32ba2f14'
'f740fe12b67e482049e8b42aef4f7edd'
'ac5e7f485476af70e0ee1c52016cddaf'
'bf3c3389353f11f5f2047b67ce08ba79'
'9b5304346d5139b1841f5baa01ab0cbe'
'1551bfd19b7a1d8d42ce7ac1f1b75618'
'2cb502dbda335be4ebd5fed0b3182bae'
'348b50914a1eedaed09a2509621adf43')
build() {
local _src_dir="${srcdir}/${_pkgname}-${pkgver}"
mv ngx-fancyindex-* ${_fancyindex_dirname}
mv openresty-headers-more-nginx-module-* ${_headersmore_dirname}
mv openresty-echo-nginx-module-* ${_echo_dirname}
mv masterzen-nginx-upload-progress-module-* ${_uploadprogress_dirname}
mv gnosek-nginx-upstream-fair-* ${_upstreamfair_dirname}
mv ngx_http_auth_pam_module-${_authpam_ver} ${_authpam_dirname}
mv nginx-accesskey* ${_accesskey_dirname}
mv nginx-rtmp-module* ${_rtmp_dirname}
mv nginx-dav-ext-module* ${_davext_dirname}
mv naxsi* ${_naxsi_dirname}
cd $_src_dir
./configure \
--prefix="/${_conf_path}" \
--conf-path="/${_conf_path}/nginx.conf" \
--sbin-path="/usr/bin/${_pkgname}" \
--pid-path="${_pid_path}/${_pkgname}.pid" \
--lock-path=${_pid_path}/${_pkgname}.lock \
--http-client-body-temp-path=${_tmp_path}/client_body_temp \
--http-proxy-temp-path=${_tmp_path}/proxy_temp \
--http-fastcgi-temp-path=${_tmp_path}/fastcgi_temp \
--http-uwsgi-temp-path=${_tmp_path}/uwsgi_temp \
--http-scgi-temp-path=${_tmp_path}scgi_temp \
--http-log-path=${_log_path}/access.log \
--error-log-path=${_log_path}/error.log \
--user=${_user} \
--group=${_group} \
--with-debug \
--with-ipv6 \
--with-imap \
--add-module=../${_naxsi_dirname}/naxsi_src/ \
--with-imap_ssl_module \
--with-http_ssl_module \
--with-http_stub_status_module \
--with-http_dav_module \
--with-http_gzip_static_module \
--with-http_realip_module \
--with-http_addition_module \
--with-http_xslt_module \
--with-http_image_filter_module \
--with-http_sub_module \
--with-http_flv_module \
--with-http_mp4_module \
--with-http_random_index_module \
--with-http_secure_link_module \
--with-http_perl_module \
--with-http_degradation_module \
--with-http_geoip_module \
--with-http_spdy_module \
--with-http_gunzip_module \
--add-module=../${_echo_dirname} \
--add-module=../${_headersmore_dirname} \
--add-module=../${_uploadprogress_dirname} \
--add-module=../${_upstreamfair_dirname} \
--add-module=../${_fancyindex_dirname} \
--add-module=../${_authpam_dirname} \
--add-module=../${_accesskey_dirname} \
--add-module=../${_rtmp_dirname} \
--add-module=../${_davext_dirname}
make
}
package() {
cd "${srcdir}/${_pkgname}-${pkgver}"
make DESTDIR="$pkgdir/" install
sed -i -e "s/\<user\s\+\w\+;/user $_user;/g" ${pkgdir}/$_conf_path/nginx.conf
mkdir -p ${pkgdir}/$_conf_path/sites-enabled/
mkdir -p ${pkgdir}/$_conf_path/sites-available/
install -d "${pkgdir}/${_tmp_path}"
install -d "${pkgdir}/${_doc_root}"
mv "${pkgdir}/${_conf_path}/html/"* "${pkgdir}/${_doc_root}"
rm -rf "${pkgdir}/${_conf_path}/html"
install -D -m555 "${srcdir}/nginx.sh" "${pkgdir}/etc/rc.d/${_pkgname}"
install -D -m644 "${srcdir}/nginx.logrotate" "${pkgdir}/etc/logrotate.d/${_pkgname}"
install -D -m644 "${srcdir}/nginx.conf" "${pkgdir}/etc/conf.d/${_pkgname}"
install -D -m644 "${srcdir}/nginx.service" "${pkgdir}/lib/systemd/system/nginx.service"
install -D -m644 "LICENSE" "${pkgdir}/usr/share/licenses/${_pkgname}/LICENSE"
install -D -m644 "man/nginx.8" "${pkgdir}/usr/share/man/man8/nginx.8"
}
server {
listen 81;
root /home/renzhn/.znc/moddata/log;
location / {
fancyindex on;
fancyindex_exact_size off;
}
location ~ \.log$ {
more_set_headers 'Content-Type: text/plain; charset=utf-8';
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment