39 http_proxy_connect_module_generic = patchName: rec {
40 name = "http_proxy_connect";
41 src = fetchFromGitHub {
42 name = "http_proxy_connect_module_generic";
44 repo = "ngx_http_proxy_connect_module";
46 rev = "dcb9a2c614d376b820d774db510d4da12dfe1e5b";
47 hash = "sha256-AzMhTSzmk3osSYy2q28/hko1v2AOTnY/dP5IprqGlQo=";
51 "${src}/patch/${patchName}.patch"
55 description = "Forward proxy module for CONNECT request handling";
56 homepage = "https://github.com/chobits/ngx_http_proxy_connect_module";
57 license = with licenses; [ bsd2 ];
58 maintainers = with maintainers; [ ];
65 akamai-token-validate = {
66 name = "akamai-token-validate";
67 src = fetchFromGitHub {
68 name = "akamai-token-validate";
70 repo = "nginx-akamai-token-validate-module";
71 rev = "34fd0c94d2c43c642f323491c4f4a226cd83b962";
72 sha256 = "0yf34s11vgkcl03wbl6gjngm3p9hs8vvm7hkjkwhjh39vkk2a7cy";
78 description = "Validates Akamai v2 query string tokens";
79 homepage = "https://github.com/kaltura/nginx-akamai-token-validate-module";
80 license = with licenses; [ agpl3Only ];
81 maintainers = with maintainers; [ ];
87 src = fetchFromGitLab {
90 repo = "nginx-auth-a2aclr";
91 rev = "bbabf9480bb2b40ac581551883a18dfa6522dd63";
92 sha256 = "sha256-h2LgMhreCgod+H/bNQzY9BvqG9ezkwikwWB3T6gHH04=";
96 (arpa2common.overrideAttrs
100 src = fetchFromGitLab {
102 repo = "arpa2common";
104 sha256 = "sha256-8zVsAlGtmya9EK4OkGUMu2FKJRn2Q3bg2QWGjqcii64=";
110 description = "Integrate ARPA2 Resource ACLs into nginx";
111 homepage = "https://gitlab.com/arpa2/nginx-auth-a2aclr";
112 license = with licenses; [ isc ];
113 maintainers = with maintainers; [ ];
119 src = fetchFromGitHub {
121 owner = "anomalizer";
122 repo = "ngx_aws_auth";
124 sha256 = "10z67g40w7wpd13fwxyknkbg3p6hn61i4v8xw6lh27br29v1y6h9";
128 description = "Proxy to authenticated AWS services";
129 homepage = "https://github.com/anomalizer/ngx_aws_auth";
130 license = with licenses; [ bsd2 ];
131 maintainers = with maintainers; [ ];
137 src = let src' = fetchFromGitHub {
141 rev = "6e975bcb015f62e1f303054897783355e2a877dc";
142 sha256 = "sha256-G0IDYlvaQzzJ6cNTSGbfuOuSXFp3RsEwIJLGapTbDgo=";
144 runCommand "brotli" { } ''
146 substituteInPlace $out/filter/config \
147 --replace '$ngx_addon_dir/deps/brotli/c' ${lib.getDev brotli}
153 description = "Brotli compression";
154 homepage = "https://github.com/google/ngx_brotli";
155 license = with licenses; [ bsd2 ];
156 maintainers = with maintainers; [ ];
161 name = "cache-purge";
162 src = fetchFromGitHub {
163 name = "cache-purge";
164 owner = "nginx-modules";
165 repo = "ngx_cache_purge";
167 sha256 = "0va4jz36mxj76nmq05n3fgnpdad30cslg7c10vnlhdmmic9vqncd";
171 description = "Adds ability to purge content from FastCGI, proxy, SCGI and uWSGI caches";
172 homepage = "https://github.com/nginx-modules/ngx_cache_purge";
173 license = with licenses; [ bsd2 ];
174 maintainers = with maintainers; [ ];
180 src = fetchFromGitHub {
183 repo = "ngx_coolkit";
185 sha256 = "1idj0cqmfsdqawjcqpr1fsq670fdki51ksqk2lslfpcs3yrfjpqh";
189 description = "Collection of small and useful nginx add-ons";
190 homepage = "https://github.com/FRiCKLE/ngx_coolkit";
191 license = with licenses; [ bsd2 ];
192 maintainers = with maintainers; [ ];
198 src = fetchFromGitHub {
201 repo = "nginx-dav-ext-module";
203 sha256 = "000dm5zk0m1hm1iq60aff5r6y8xmqd7djrwhgnz9ig01xyhnjv9w";
209 description = "WebDAV PROPFIND,OPTIONS,LOCK,UNLOCK support";
210 homepage = "https://github.com/arut/nginx-dav-ext-module";
211 license = with licenses; [ bsd2 ];
212 maintainers = with maintainers; [ ];
218 src = fetchFromGitHub {
221 repo = "ngx_devel_kit";
223 sha256 = "1c5zfpvm0hrd9lp8rasmw79dnr2aabh0i6y11wzb783bp8m3p2sq";
227 description = "Adds additional generic tools that module developers can use in their own modules";
228 homepage = "https://github.com/vision5/ngx_devel_kit";
229 license = with licenses; [ bsd3 ];
230 maintainers = with maintainers; [ ];
238 src = fetchFromGitHub {
241 repo = "echo-nginx-module";
243 hash = "sha256-K7oOE0yxPYLf+3YMVbBsncpHRpGHXjs/8B5QPO3MQC4=";
247 description = "Brings echo, sleep, time, exec and more shell-style goodies to Nginx";
248 homepage = "https://github.com/openresty/echo-nginx-module";
249 license = with licenses; [ bsd2 ];
250 maintainers = with maintainers; [ ];
256 src = fetchFromGitHub {
259 repo = "ngx-fancyindex";
261 sha256 = "0nar45lp3jays3p6b01a78a6gwh6v0snpzcncgiphcqmj5kw8ipg";
265 description = " Fancy indexes module";
266 homepage = "https://github.com/aperezdc/ngx-fancyindex";
267 license = with licenses; [ bsd2 ];
268 maintainers = with maintainers; [ aneeshusa ];
274 src = fetchFromGitHub {
277 repo = "nginx-fluentd-module";
278 rev = "8af234043059c857be27879bc547c141eafd5c13";
279 sha256 = "1ycb5zd9sw60ra53jpak1m73zwrjikwhrrh9q6266h1mlyns7zxm";
283 description = "Fluentd data collector";
284 homepage = "https://github.com/fluent/nginx-fluentd-module";
285 license = with licenses; [ asl20 ];
286 maintainers = with maintainers; [ ];
292 src = fetchFromGitHub {
295 repo = "ngx_http_geoip2_module";
297 sha256 = "CAs1JZsHY7RymSBYbumC2BENsXtZP3p4ljH5QKwz5yg=";
300 inputs = [ libmaxminddb ];
303 description = "Creates variables with values from the maxmind geoip2 databases";
304 homepage = "https://github.com/leev/ngx_http_geoip2_module";
305 license = with licenses; [ bsd2 ];
306 maintainers = with maintainers; [ pinpox ];
310 http_proxy_connect_module_v24 = http_proxy_connect_module_generic "proxy_connect_rewrite_102101" // {
311 supports = with lib.versions; version: major version == "1" && minor version == "24";
314 http_proxy_connect_module_v25 = http_proxy_connect_module_generic "proxy_connect_rewrite_102101" // {
315 supports = with lib.versions; version: major version == "1" && minor version == "25";
320 src = fetchFromGitHub {
322 owner = "masonicboom";
325 sha256 = "0qcx15c8wbsmyz2hkmyy5yd7qn1n84kx9amaxnfxkpqi05vzm1zz";
331 description = " IP address anonymizer";
332 homepage = "https://github.com/masonicboom/ipscrub";
333 license = with licenses; [ bsd3 ];
334 maintainers = with maintainers; [ ];
339 name = "limit-speed";
340 src = fetchFromGitHub {
341 name = "limit-speed";
343 repo = "nginx_limit_speed_module";
344 rev = "f77ad4a56fbb134878e75827b40cf801990ed936";
345 sha256 = "0kkrd08zpcwx938i2is07vq6pgjkvn97xzjab0g4zaz8bivgmjp8";
349 description = "Limit the total speed from the specific user";
350 homepage = "https://github.com/yaoweibin/nginx_limit_speed_module";
351 license = with licenses; [ bsd2 ];
352 maintainers = with maintainers; [ ];
358 src = fetchFromGitHub {
361 repo = "nginx-live-module";
362 rev = "5e4a1e3a718e65e5206c24eba00d42b0d1c4b7dd";
363 sha256 = "1kpnhl4b50zim84z22ahqxyxfq4jv8ab85kzsy2n5ciqbyg491lz";
367 description = "HTTP live module";
368 homepage = "https://github.com/arut/nginx-live-module";
369 license = with licenses; [ bsd2 ];
370 maintainers = with maintainers; [ ];
378 src = fetchFromGitHub {
381 repo = "lua-nginx-module";
383 hash = "sha256-007up/XncaSBimBumHpbwgB1WnkXgBe8e/q/yT6vthI=";
386 inputs = [ luajit_openresty ];
389 export LUAJIT_LIB="${luajit_openresty}/lib"
390 export LUAJIT_INC="$(realpath ${luajit_openresty}/include/luajit-*)"
392 # make source directory writable to allow generating src/ngx_http_lua_autoconf.h
393 lua_src=$TMPDIR/lua-src
394 cp -r "${src}/" "$lua_src"
395 chmod -R +w "$lua_src"
396 export configureFlags="''${configureFlags//"${src}"/"$lua_src"}"
400 allowMemoryWriteExecute = true;
403 description = "Embed the Power of Lua";
404 homepage = "https://github.com/openresty/lua-nginx-module";
405 license = with licenses; [ bsd2 ];
406 maintainers = with maintainers; [ ];
411 name = "lua-upstream";
412 src = fetchFromGitHub {
413 name = "lua-upstream";
415 repo = "lua-upstream-nginx-module";
417 sha256 = "1gqccg8airli3i9103zv1zfwbjm27h235qjabfbfqk503rjamkpk";
420 inputs = [ luajit_openresty ];
421 allowMemoryWriteExecute = true;
424 description = "Expose Lua API to ngx_lua for Nginx upstreams";
425 homepage = "https://github.com/openresty/lua-upstream-nginx-module";
426 license = with licenses; [ bsd2 ];
427 maintainers = with maintainers; [ ];
432 name = "modsecurity";
433 src = fetchFromGitHub {
434 name = "modsecurity-nginx";
435 owner = "SpiderLabs";
436 repo = "ModSecurity-nginx";
438 sha256 = "sha256-xp0/eqi5PJlzb9NaUbNnzEqNcxDPyjyNwZOwmlv1+ag=";
441 inputs = [ curl geoip libmodsecurity libxml2 lmdb yajl ];
445 description = "Open source, cross platform web application firewall (WAF)";
446 homepage = "https://github.com/SpiderLabs/ModSecurity";
447 license = with licenses; [ asl20 ];
448 maintainers = with maintainers; [ ];
453 name = "moreheaders";
454 src = fetchFromGitHub {
455 name = "moreheaders";
457 repo = "headers-more-nginx-module";
459 sha256 = "sha256-X+ygIesQ9PGm5yM+u1BOLYVpm1172P8jWwXNr3ixFY4=";
463 description = "Set, add, and clear arbitrary output headers";
464 homepage = "https://github.com/openresty/headers-more-nginx-module";
465 license = with licenses; [ bsd2 ];
466 maintainers = with maintainers; [ SuperSandro2000 ];
472 src = fetchFromGitHub {
475 repo = "nginx-ts-module";
477 sha256 = "12dxcyy6wna1fccl3a9lnsbymd6p4apnwz6c24w74v97qvpfdxqd";
481 description = "MPEG-TS Live Module";
482 homepage = "https://github.com/arut/nginx-ts-module";
483 license = with licenses; [ bsd2 ];
484 maintainers = with maintainers; [ ];
490 src = fetchFromGitHub {
492 owner = "nbs-system";
494 rev = "95ac520eed2ea04098a76305fd0ad7e9158840b7";
495 sha256 = "0b5pnqkgg18kbw5rf2ifiq7lsx5rqmpqsql6hx5ycxjzxj6acfb3";
499 description = "Open-source, high performance, low rules maintenance WAF";
500 homepage = "https://github.com/nbs-system/naxsi";
501 license = with licenses; [ gpl3 ];
502 maintainers = with maintainers; [ ];
509 url = "https://hg.nginx.org/njs";
511 sha256 = "sha256-bFHrcA1ROMwYf+s0EWOXzkru6wvfRLvjvN8BV/r2tMc=";
515 # njs module sources have to be writable during nginx build, so we copy them
516 # to a temporary directory and change the module path in the configureFlags
518 NJS_SOURCE_DIR=$(readlink -m "$TMPDIR/${src}")
519 mkdir -p "$(dirname "$NJS_SOURCE_DIR")"
520 cp --recursive "${src}" "$NJS_SOURCE_DIR"
521 chmod -R u+rwX,go+rX "$NJS_SOURCE_DIR"
522 export configureFlags="''${configureFlags/"${src}"/"$NJS_SOURCE_DIR/nginx"}"
529 description = "Subset of the JavaScript language that allows extending nginx functionality";
530 homepage = "https://nginx.org/en/docs/njs/";
531 license = with licenses; [ bsd2 ];
532 maintainers = with maintainers; [ ];
537 name = "opentracing";
539 let src' = fetchFromGitHub {
540 name = "opentracing";
541 owner = "opentracing-contrib";
542 repo = "nginx-opentracing";
544 sha256 = "1q234s3p55xv820207dnh4fcxkqikjcq5rs02ai31ylpmfsf0kkb";
546 in "${src'}/opentracing";
548 inputs = [ opentracing-cpp ];
551 description = "Enable requests served by nginx for distributed tracing via The OpenTracing Project";
552 homepage = "https://github.com/opentracing-contrib/nginx-opentracing";
553 license = with licenses; [ asl20 ];
554 maintainers = with maintainers; [ ];
561 moduleSrc = fetchFromGitHub {
564 repo = "incubator-pagespeed-ngx";
565 rev = "v${psol.version}-stable";
566 sha256 = "0ry7vmkb2bx0sspl1kgjlrzzz6lbz07313ks2lr80rrdm2zb16wp";
568 in runCommand "ngx_pagespeed" {
570 description = "PageSpeed module for Nginx";
571 homepage = "https://developers.google.com/speed/pagespeed/module/";
572 license = lib.licenses.asl20;
575 cp -r "${moduleSrc}" "$out"
577 ln -s "${psol}" "$out/psol"
580 inputs = [ zlib libuuid ]; # psol deps
581 allowMemoryWriteExecute = true;
584 description = "Automatic PageSpeed optimization";
585 homepage = "https://github.com/apache/incubator-pagespeed-ngx";
586 license = with licenses; [ asl20 ];
587 maintainers = with maintainers; [ ];
593 src = fetchFromGitHub {
596 repo = "ngx_http_auth_pam_module";
598 sha256 = "sha256:09lnljdhjg65643bc4535z378lsn4llbq67zcxlln0pizk9y921a";
604 description = "Use PAM for simple http authentication ";
605 homepage = "https://github.com/sto/ngx_http_auth_pam_module";
606 license = with licenses; [ bsd2 ];
607 maintainers = with maintainers; [ ];
613 src = fetchFromGitHub {
616 repo = "ngx_http_pinba_module";
617 rev = "28131255d4797a7e2f82a6a35cf9fc03c4678fe6";
618 sha256 = "00fii8bjvyipq6q47xhjhm3ylj4rhzmlk3qwxmfpdn37j7bc8p8c";
622 description = "Pinba module for nginx";
623 homepage = "https://github.com/tony2001/ngx_http_pinba_module";
624 license = with licenses; [ unfree ]; # no license in repo
625 maintainers = with maintainers; [ ];
630 name = "push-stream";
631 src = fetchFromGitHub {
632 name = "push-stream";
633 owner = "wandenberg";
634 repo = "nginx-push-stream-module";
635 rev = "1cdc01521ed44dc614ebb5c0d19141cf047e1f90";
636 sha256 = "0ijka32b37dl07k2jl48db5a32ix43jaczrpjih84cvq8yph0jjr";
640 description = "Pure stream http push technology";
641 homepage = "https://github.com/wandenberg/nginx-push-stream-module";
642 license = with licenses; [ gpl3 ];
643 maintainers = with maintainers; [ ];
649 src = fetchFromGitHub {
652 repo = "nginx-rtmp-module";
654 sha256 = "0y45bswk213yhkc2v1xca2rnsxrhx8v6azxz9pvi71vvxcggqv6h";
658 description = "Media Streaming Server";
659 homepage = "https://github.com/arut/nginx-rtmp-module";
660 license = with licenses; [ bsd2 ];
661 maintainers = with maintainers; [ ];
666 name = "secure-token";
668 src = fetchFromGitHub {
669 name = "secure-token";
671 repo = "nginx-secure-token-module";
672 rev = "refs/tags/${version}";
673 hash = "sha256-qYTjGS9pykRqMFmNls52YKxEdXYhHw+18YC2zzdjEpU=";
676 inputs = [ openssl ];
679 description = "Generates CDN tokens, either as a cookie or as a query string parameter";
680 homepage = "https://github.com/kaltura/nginx-secure-token-module";
681 license = with licenses; [ agpl3Only ];
682 maintainers = with maintainers; [ ];
688 src = fetchFromGitHub {
691 repo = "set-misc-nginx-module";
693 hash = "sha256-jMMj3Ki1uSfQzagoB/O4NarxPjiaF9YRwjSKo+cgMxo=";
697 description = "Various set_xxx directives added to the rewrite module (md5/sha1, sql/json quoting and many more)";
698 homepage = "https://github.com/openresty/set-misc-nginx-module";
699 license = with licenses; [ bsd2 ];
700 maintainers = with maintainers; [ ];
706 src = fetchFromGitHub {
708 owner = "nginx-shib";
709 repo = "nginx-http-shibboleth";
710 rev = "3f5ff4212fa12de23cb1acae8bf3a5a432b3f43b";
711 sha256 = "136zjipaz7iikgcgqwdv1mrh3ya996zyzbkdy6d4k07s2h9g7hy6";
715 description = "Shibboleth auth request";
716 homepage = "https://github.com/nginx-shib/nginx-http-shibboleth";
717 license = with licenses; [ bsd2 ];
718 maintainers = with maintainers; [ ];
724 src = fetchFromGitHub {
726 owner = "goldenclone";
728 rev = "7778f0125974befbc83751d0e1cadb2dcea57601";
729 sha256 = "1x5hm6r0dkm02ffny8kjd7mmq8przyd9amg2qvy5700x6lb63pbs";
733 description = "Implements a collection of augmented statistics based on HTTP-codes and upstreams response time";
734 homepage = "https://github.com/goldenclone/nginx-sla";
735 license = with licenses; [ unfree ]; # no license in repo
736 maintainers = with maintainers; [ ];
741 name = "slowfs-cache";
742 src = fetchFromGitHub {
743 name = "slowfs-cache";
745 repo = "ngx_slowfs_cache";
747 sha256 = "1gyza02pcws3zqm1phv3ag50db5gnapxyjwy8skjmvawz7p5bmxr";
751 description = "Adds ability to cache static files";
752 homepage = "https://github.com/friCKLE/ngx_slowfs_cache";
753 license = with licenses; [ bsd2 ];
754 maintainers = with maintainers; [ ];
758 sorted-querystring = {
759 name = "sorted-querystring";
760 src = fetchFromGitHub {
761 name = "sorted-querystring";
762 owner = "wandenberg";
763 repo = "nginx-sorted-querystring-module";
765 sha256 = "0p6b0hcws39n27fx4xp9k4hb3pcv7b6kah4qqaj0pzjy3nbp4gj7";
769 description = "Expose querystring parameters sorted in a variable";
770 homepage = "https://github.com/wandenberg/nginx-sorted-querystring-module";
771 license = with licenses; [ mit ];
772 maintainers = with maintainers; [ ];
777 name = "spnego-http-auth";
778 src = fetchFromGitHub {
779 name = "spnego-http-auth";
781 repo = "spnego-http-auth-nginx-module";
782 rev = "3575542b3147bd03a6c68a750c3662b0d72ed94e";
783 hash = "sha256-s0m5h7m7dsPD5o2SvBb9L2kB57jwXZK5SkdkGuOmlgs=";
786 inputs = [ libkrb5 ];
789 description = "SPNEGO HTTP Authentication Module";
790 homepage = "https://github.com/stnoonan/spnego-http-auth-nginx-module";
791 license = with licenses; [ bsd2 ];
792 maintainers = teams.deshaw.members;
798 src = fetchFromGitHub {
801 repo = "nginx-statsd";
802 rev = "b970e40467a624ba710c9a5106879a0554413d15";
803 sha256 = "1x8j4i1i2ahrr7qvz03vkldgdjdxi6mx75mzkfizfcc8smr4salr";
807 description = "Send statistics to statsd";
808 homepage = "https://github.com/harvesthq/nginx-statsd";
809 license = with licenses; [ bsd3 ];
810 maintainers = with maintainers; [ ];
816 src = fetchFromGitHub {
819 repo = "nginx-module-stream-sts";
821 sha256 = "1jdj1kik6l3rl9nyx61xkqk7hmqbncy0rrqjz3dmjqsz92y8zaya";
825 description = "Stream server traffic status core module";
826 homepage = "https://github.com/vozlt/nginx-module-stream-sts";
827 license = with licenses; [ bsd2 ];
828 maintainers = with maintainers; [ ];
834 src = fetchFromGitHub {
837 repo = "nginx-module-sts";
839 sha256 = "0nvb29641x1i7mdbydcny4qwlvdpws38xscxirajd2x7nnfdflrk";
843 description = "Stream server traffic status module";
844 homepage = "https://github.com/vozlt/nginx-module-sts";
845 license = with licenses; [ bsd2 ];
846 maintainers = with maintainers; [ ];
852 src = fetchFromGitHub {
855 repo = "ngx_http_substitutions_filter_module";
856 rev = "b8a71eacc7f986ba091282ab8b1bbbc6ae1807e0";
857 sha256 = "027jxzx66q9a6ycn47imjh40xmnqr0z423lz0ds3w4rf1c2x130f";
861 description = "Filter module which can do both regular expression and fixed string substitutions";
862 homepage = "https://github.com/yaoweibin/ngx_http_substitutions_filter_module";
863 license = with licenses; [ bsd2 ];
864 maintainers = with maintainers; [ ];
870 src = fetchFromGitHub {
873 repo = "nginx-module-sysguard";
874 rev = "e512897f5aba4f79ccaeeebb51138f1704a58608";
875 sha256 = "19c6w6wscbq9phnx7vzbdf4ay6p2ys0g7kp2rmc9d4fb53phrhfx";
879 description = "Nginx sysguard module";
880 homepage = "https://github.com/vozlt/nginx-module-sysguard";
881 license = with licenses; [ bsd2 ];
882 maintainers = with maintainers; [ ];
888 src = fetchFromGitHub {
891 repo = "nginx-upload-module";
893 sha256 = "8veZP516oC7TESO368ZsZreetbDt+1eTcamk7P1kWjU=";
897 description = "Handle file uploads using multipart/form-data encoding and resumable uploads";
898 homepage = "https://github.com/fdintino/nginx-upload-module";
899 license = with licenses; [ bsd3 ];
900 maintainers = with maintainers; [ ];
905 name = "upstream-check";
906 src = fetchFromGitHub {
907 name = "upstream-check";
909 repo = "nginx_upstream_check_module";
910 rev = "e538034b6ad7992080d2403d6d3da56e4f7ac01e";
911 sha256 = "06y7k04072xzqyqyb08m0vaaizkp4rfwm0q7i735imbzw2rxb74l";
915 description = "Support upstream health check";
916 homepage = "https://github.com/yaoweibin/nginx_upstream_check_module";
917 license = with licenses; [ bsd2 ];
918 maintainers = with maintainers; [ ];
922 upstream-tarantool = {
923 name = "upstream-tarantool";
924 src = fetchFromGitHub {
925 name = "upstream-tarantool";
927 repo = "nginx_upstream_module";
929 sha256 = "0ya4330in7zjzqw57djv4icpk0n1j98nvf0f8v296yi9rjy054br";
932 inputs = [ msgpuck.dev yajl ];
935 description = "Tarantool NginX upstream module (REST, JSON API, websockets, load balancing)";
936 homepage = "https://github.com/tarantool/nginx_upstream_module";
937 license = with licenses; [ bsd2 ];
938 maintainers = with maintainers; [ ];
944 src = fetchFromGitHub {
947 repo = "nginx-module-url";
948 rev = "9299816ca6bc395625c3683fbd2aa7b916bfe91e";
949 sha256 = "0mk1gjmfnry6hgdsnlavww9bn7223idw50jlkhh5k00q5509w4ip";
953 description = "URL encoding converting module";
954 homepage = "https://github.com/vozlt/nginx-module-url";
955 license = with licenses; [ bsd2 ];
956 maintainers = with maintainers; [ ];
960 video-thumbextractor = rec {
961 name = "video-thumbextractor";
963 src = fetchFromGitHub {
964 name = "video-thumbextractor";
965 owner = "wandenberg";
966 repo = "nginx-video-thumbextractor-module";
967 rev = "refs/tags/${version}";
968 hash = "sha256-F2cuzCbJdGYX0Zmz9MSXTB7x8+FBR6pPpXtLlDRCcj8=";
971 inputs = [ ffmpeg-headless libjpeg ];
974 description = "Extract thumbs from a video file";
975 homepage = "https://github.com/wandenberg/nginx-video-thumbextractor-module";
976 license = with licenses; [ gpl3 ];
977 maintainers = with maintainers; [ ];
983 src = fetchFromGitHub {
986 repo = "nginx-vod-module";
988 hash = "sha256-ZpG0oj60D3o7/7uyE8AybCiOtncVe1Jnjaz22sIFypk=";
990 substituteInPlace $out/vod/media_set.h \
991 --replace "MAX_CLIPS (128)" "MAX_CLIPS (1024)"
995 inputs = [ ffmpeg-headless fdk_aac openssl libxml2 libiconv ];
998 description = "VOD packager";
999 homepage = "https://github.com/kaltura/nginx-vod-module";
1000 license = with licenses; [ agpl3Only ];
1001 maintainers = with maintainers; [ ];
1007 src = fetchFromGitHub {
1010 repo = "nginx-module-vts";
1012 sha256 = "sha256-ReTmYGVSOwtnYDMkQDMWwxw09vT4iHYfYZvgd8iBotk=";
1016 description = "Virtual host traffic status module";
1017 homepage = "https://github.com/vozlt/nginx-module-vts";
1018 license = with licenses; [ bsd2 ];
1019 maintainers = with maintainers; [ SuperSandro2000 ];
1025 src = fetchFromGitHub {
1028 repo = "zstd-nginx-module";
1030 hash = "sha256-1gCV7uUsuYnZfb9e8VfjWkUloVINOUH5qzeJ03kIHgs=";
1036 description = "Nginx modules for the Zstandard compression";
1037 homepage = "https://github.com/tokers/zstd-nginx-module";
1038 license = with licenses; [ bsd2 ];
1039 maintainers = with maintainers; [ SuperSandro2000 ];
1042 }; in self // lib.optionalAttrs config.allowAliases {
1043 # deprecated or renamed packages
1044 modsecurity-nginx = self.modsecurity;
1045 fastcgi-cache-purge = throw "fastcgi-cache-purge was renamed to cache-purge";
1046 ngx_aws_auth = throw "ngx_aws_auth was renamed to aws-auth";