nixpkgs mirror (for testing) github.com/NixOS/nixpkgs
nix
at netboot-syslinux-multiplatform 1043 lines 30 kB view raw
1{ lib 2, config 3, fetchFromGitHub 4, fetchFromGitLab 5, fetchhg 6, fetchpatch 7, runCommand 8 9, arpa2common 10, brotli 11, curl 12, expat 13, fdk_aac 14, ffmpeg 15, geoip 16, libbsd 17, libiconv 18, libkrb5 19, libmaxminddb 20, libmodsecurity 21, libuuid 22, libxml2 23, lmdb 24, luajit 25, msgpuck 26, openssl 27, opentracing-cpp 28, pam 29, psol 30, which 31, yajl 32, zlib 33, zstd 34}: 35 36let 37 38 http_proxy_connect_module_generic = patchName: rec { 39 name = "http_proxy_connect"; 40 src = fetchFromGitHub { 41 name = "http_proxy_connect_module_generic"; 42 owner = "chobits"; 43 repo = "ngx_http_proxy_connect_module"; 44 rev = "96ae4e06381f821218f368ad0ba964f87cbe0266"; 45 sha256 = "1nc7z31i7x9dzp67kzgvs34hs6ps749y26wcpi3wf5mm63i803rh"; 46 }; 47 48 patches = [ 49 "${src}/patch/${patchName}.patch" 50 ]; 51 52 meta = with lib; { 53 description = "Forward proxy module for CONNECT request handling"; 54 homepage = "https://github.com/chobits/ngx_http_proxy_connect_module"; 55 license = with licenses; [ bsd2 ]; 56 maintainers = with maintainers; [ ]; 57 }; 58 }; 59 60in 61 62let self = { 63 akamai-token-validate = { 64 name = "akamai-token-validate"; 65 src = fetchFromGitHub { 66 name = "akamai-token-validate"; 67 owner = "kaltura"; 68 repo = "nginx-akamai-token-validate-module"; 69 rev = "34fd0c94d2c43c642f323491c4f4a226cd83b962"; 70 sha256 = "0yf34s11vgkcl03wbl6gjngm3p9hs8vvm7hkjkwhjh39vkk2a7cy"; 71 }; 72 73 inputs = [ openssl ]; 74 75 meta = with lib; { 76 description = "Validates Akamai v2 query string tokens"; 77 homepage = "https://github.com/kaltura/nginx-akamai-token-validate-module"; 78 license = with licenses; [ agpl3 ]; 79 maintainers = with maintainers; [ ]; 80 }; 81 }; 82 83 auth-a2aclr = { 84 name = "auth-a2aclr"; 85 src = fetchFromGitLab { 86 name = "auth-a2aclr"; 87 owner = "arpa2"; 88 repo = "nginx-auth-a2aclr"; 89 rev = "bbabf9480bb2b40ac581551883a18dfa6522dd63"; 90 sha256 = "sha256-h2LgMhreCgod+H/bNQzY9BvqG9ezkwikwWB3T6gHH04="; 91 }; 92 93 inputs = [ 94 (arpa2common.overrideAttrs 95 (old: rec { 96 version = "0.7.1"; 97 98 src = fetchFromGitLab { 99 owner = "arpa2"; 100 repo = "arpa2common"; 101 rev = "v${version}"; 102 sha256 = "sha256-8zVsAlGtmya9EK4OkGUMu2FKJRn2Q3bg2QWGjqcii64="; 103 }; 104 })) 105 ]; 106 107 meta = with lib; { 108 description = "Integrate ARPA2 Resource ACLs into nginx"; 109 homepage = "https://gitlab.com/arpa2/nginx-auth-a2aclr"; 110 license = with licenses; [ isc ]; 111 maintainers = with maintainers; [ ]; 112 }; 113 }; 114 115 aws-auth = { 116 name = "aws-auth"; 117 src = fetchFromGitHub { 118 name = "aws-auth"; 119 owner = "anomalizer"; 120 repo = "ngx_aws_auth"; 121 rev = "2.1.1"; 122 sha256 = "10z67g40w7wpd13fwxyknkbg3p6hn61i4v8xw6lh27br29v1y6h9"; 123 }; 124 125 meta = with lib; { 126 description = "Proxy to authenticated AWS services"; 127 homepage = "https://github.com/anomalizer/ngx_aws_auth"; 128 license = with licenses; [ bsd2 ]; 129 maintainers = with maintainers; [ ]; 130 }; 131 }; 132 133 brotli = { 134 name = "brotli"; 135 src = let src' = fetchFromGitHub { 136 name = "brotli"; 137 owner = "google"; 138 repo = "ngx_brotli"; 139 rev = "6e975bcb015f62e1f303054897783355e2a877dc"; 140 sha256 = "sha256-G0IDYlvaQzzJ6cNTSGbfuOuSXFp3RsEwIJLGapTbDgo="; 141 }; in 142 runCommand "brotli" { } '' 143 cp -a ${src'} $out 144 substituteInPlace $out/filter/config \ 145 --replace '$ngx_addon_dir/deps/brotli/c' ${lib.getDev brotli} 146 ''; 147 148 inputs = [ brotli ]; 149 150 meta = with lib; { 151 description = "Brotli compression"; 152 homepage = "https://github.com/google/ngx_brotli"; 153 license = with licenses; [ bsd2 ]; 154 maintainers = with maintainers; [ ]; 155 }; 156 }; 157 158 cache-purge = { 159 name = "cache-purge"; 160 src = fetchFromGitHub { 161 name = "cache-purge"; 162 owner = "nginx-modules"; 163 repo = "ngx_cache_purge"; 164 rev = "2.5.1"; 165 sha256 = "0va4jz36mxj76nmq05n3fgnpdad30cslg7c10vnlhdmmic9vqncd"; 166 }; 167 168 meta = with lib; { 169 description = "Adds ability to purge content from FastCGI, proxy, SCGI and uWSGI caches"; 170 homepage = "https://github.com/nginx-modules/ngx_cache_purge"; 171 license = with licenses; [ bsd2 ]; 172 maintainers = with maintainers; [ ]; 173 }; 174 }; 175 176 coolkit = { 177 name = "coolkit"; 178 src = fetchFromGitHub { 179 name = "coolkit"; 180 owner = "FRiCKLE"; 181 repo = "ngx_coolkit"; 182 rev = "0.2"; 183 sha256 = "1idj0cqmfsdqawjcqpr1fsq670fdki51ksqk2lslfpcs3yrfjpqh"; 184 }; 185 186 meta = with lib; { 187 description = "Collection of small and useful nginx add-ons"; 188 homepage = "https://github.com/FRiCKLE/ngx_coolkit"; 189 license = with licenses; [ bsd2 ]; 190 maintainers = with maintainers; [ ]; 191 }; 192 }; 193 194 dav = { 195 name = "dav"; 196 src = fetchFromGitHub { 197 name = "dav"; 198 owner = "arut"; 199 repo = "nginx-dav-ext-module"; 200 rev = "v3.0.0"; 201 sha256 = "000dm5zk0m1hm1iq60aff5r6y8xmqd7djrwhgnz9ig01xyhnjv9w"; 202 }; 203 204 inputs = [ expat ]; 205 206 meta = with lib; { 207 description = "WebDAV PROPFIND,OPTIONS,LOCK,UNLOCK support"; 208 homepage = "https://github.com/arut/nginx-dav-ext-module"; 209 license = with licenses; [ bsd2 ]; 210 maintainers = with maintainers; [ ]; 211 }; 212 }; 213 214 develkit = { 215 name = "develkit"; 216 src = fetchFromGitHub { 217 name = "develkit"; 218 owner = "vision5"; 219 repo = "ngx_devel_kit"; 220 rev = "v0.3.1"; 221 sha256 = "1c5zfpvm0hrd9lp8rasmw79dnr2aabh0i6y11wzb783bp8m3p2sq"; 222 }; 223 224 meta = with lib; { 225 description = "Adds additional generic tools that module developers can use in their own modules"; 226 homepage = "https://github.com/vision5/ngx_devel_kit"; 227 license = with licenses; [ bsd3 ]; 228 maintainers = with maintainers; [ ]; 229 }; 230 }; 231 232 echo = { 233 name = "echo"; 234 src = fetchFromGitHub { 235 name = "echo"; 236 owner = "openresty"; 237 repo = "echo-nginx-module"; 238 rev = "v0.62"; 239 sha256 = "0kr1y094yw1a9fyrf4w73ikq18w5ys463wza9n7yfl77xdwirnvl"; 240 }; 241 242 meta = with lib; { 243 description = "Brings echo, sleep, time, exec and more shell-style goodies to Nginx"; 244 homepage = "https://github.com/openresty/echo-nginx-module"; 245 license = with licenses; [ bsd2 ]; 246 maintainers = with maintainers; [ ]; 247 }; 248 }; 249 250 fancyindex = { 251 name = "fancyindex"; 252 src = fetchFromGitHub { 253 name = "fancyindex"; 254 owner = "aperezdc"; 255 repo = "ngx-fancyindex"; 256 rev = "v0.5.2"; 257 sha256 = "0nar45lp3jays3p6b01a78a6gwh6v0snpzcncgiphcqmj5kw8ipg"; 258 }; 259 260 meta = with lib; { 261 description = " Fancy indexes module"; 262 homepage = "https://github.com/aperezdc/ngx-fancyindex"; 263 license = with licenses; [ bsd2 ]; 264 maintainers = with maintainers; [ aneeshusa ]; 265 }; 266 }; 267 268 fluentd = { 269 name = "fluentd"; 270 src = fetchFromGitHub { 271 name = "fluentd"; 272 owner = "fluent"; 273 repo = "nginx-fluentd-module"; 274 rev = "8af234043059c857be27879bc547c141eafd5c13"; 275 sha256 = "1ycb5zd9sw60ra53jpak1m73zwrjikwhrrh9q6266h1mlyns7zxm"; 276 }; 277 278 meta = with lib; { 279 description = "Fluentd data collector"; 280 homepage = "https://github.com/fluent/nginx-fluentd-module"; 281 license = with licenses; [ asl20 ]; 282 maintainers = with maintainers; [ ]; 283 }; 284 }; 285 286 geoip2 = { 287 name = "geoip2"; 288 src = fetchFromGitHub { 289 name = "geoip2"; 290 owner = "leev"; 291 repo = "ngx_http_geoip2_module"; 292 rev = "3.4"; 293 sha256 = "CAs1JZsHY7RymSBYbumC2BENsXtZP3p4ljH5QKwz5yg="; 294 }; 295 296 inputs = [ libmaxminddb ]; 297 298 meta = with lib; { 299 description = "Creates variables with values from the maxmind geoip2 databases"; 300 homepage = "https://github.com/leev/ngx_http_geoip2_module"; 301 license = with licenses; [ bsd2 ]; 302 maintainers = with maintainers; [ pinpox ]; 303 }; 304 }; 305 306 http_proxy_connect_module_v18 = http_proxy_connect_module_generic "proxy_connect_rewrite_1018" // { 307 supports = with lib.versions; version: major version == "1" && minor version == "18"; 308 }; 309 310 http_proxy_connect_module_v19 = http_proxy_connect_module_generic "proxy_connect_rewrite_1018" // { 311 supports = with lib.versions; version: major version == "1" && minor version == "19"; 312 }; 313 314 ipscrub = { 315 name = "ipscrub"; 316 src = fetchFromGitHub { 317 name = "ipscrub"; 318 owner = "masonicboom"; 319 repo = "ipscrub"; 320 rev = "v1.0.1"; 321 sha256 = "0qcx15c8wbsmyz2hkmyy5yd7qn1n84kx9amaxnfxkpqi05vzm1zz"; 322 } + "/ipscrub"; 323 324 inputs = [ libbsd ]; 325 326 meta = with lib; { 327 description = " IP address anonymizer"; 328 homepage = "https://github.com/masonicboom/ipscrub"; 329 license = with licenses; [ bsd3 ]; 330 maintainers = with maintainers; [ ]; 331 }; 332 }; 333 334 limit-speed = { 335 name = "limit-speed"; 336 src = fetchFromGitHub { 337 name = "limit-speed"; 338 owner = "yaoweibin"; 339 repo = "nginx_limit_speed_module"; 340 rev = "f77ad4a56fbb134878e75827b40cf801990ed936"; 341 sha256 = "0kkrd08zpcwx938i2is07vq6pgjkvn97xzjab0g4zaz8bivgmjp8"; 342 }; 343 344 meta = with lib; { 345 description = "Limit the total speed from the specific user"; 346 homepage = "https://github.com/yaoweibin/nginx_limit_speed_module"; 347 license = with licenses; [ bsd2 ]; 348 maintainers = with maintainers; [ ]; 349 }; 350 }; 351 352 live = { 353 name = "live"; 354 src = fetchFromGitHub { 355 name = "live"; 356 owner = "arut"; 357 repo = "nginx-live-module"; 358 rev = "5e4a1e3a718e65e5206c24eba00d42b0d1c4b7dd"; 359 sha256 = "1kpnhl4b50zim84z22ahqxyxfq4jv8ab85kzsy2n5ciqbyg491lz"; 360 }; 361 362 meta = with lib; { 363 description = "HTTP live module"; 364 homepage = "https://github.com/arut/nginx-live-module"; 365 license = with licenses; [ bsd2 ]; 366 maintainers = with maintainers; [ ]; 367 }; 368 }; 369 370 lua = rec { 371 name = "lua"; 372 src = fetchFromGitHub { 373 name = "lua"; 374 owner = "openresty"; 375 repo = "lua-nginx-module"; 376 rev = "v0.10.22"; 377 sha256 = "sha256-TyeTL7/0dI2wS2eACS4sI+9tu7UpDq09aemMaklkUss="; 378 }; 379 380 inputs = [ luajit ]; 381 382 preConfigure = let 383 # fix compilation against nginx 1.23.0 384 nginx-1-23-patch = fetchpatch { 385 url = "https://github.com/openresty/lua-nginx-module/commit/b6d167cf1a93c0c885c28db5a439f2404874cb26.patch"; 386 sha256 = "sha256-l7GHFNZXg+RG2SIBjYJO1JHdGUtthWnzLIqEORJUNr4="; 387 }; 388 in '' 389 export LUAJIT_LIB="${luajit}/lib" 390 export LUAJIT_INC="$(realpath ${luajit}/include/luajit-*)" 391 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 patch -p1 -d $lua_src -i ${nginx-1-23-patch} 397 export configureFlags="''${configureFlags//"${src}"/"$lua_src"}" 398 unset lua_src 399 ''; 400 401 allowMemoryWriteExecute = true; 402 403 meta = with lib; { 404 description = "Embed the Power of Lua"; 405 homepage = "https://github.com/openresty/lua-nginx-module"; 406 license = with licenses; [ bsd2 ]; 407 maintainers = with maintainers; [ ]; 408 }; 409 }; 410 411 lua-upstream = { 412 name = "lua-upstream"; 413 src = fetchFromGitHub { 414 name = "lua-upstream"; 415 owner = "openresty"; 416 repo = "lua-upstream-nginx-module"; 417 rev = "v0.07"; 418 sha256 = "1gqccg8airli3i9103zv1zfwbjm27h235qjabfbfqk503rjamkpk"; 419 }; 420 421 inputs = [ luajit ]; 422 allowMemoryWriteExecute = true; 423 424 meta = with lib; { 425 description = "Expose Lua API to ngx_lua for Nginx upstreams"; 426 homepage = "https://github.com/openresty/lua-upstream-nginx-module"; 427 license = with licenses; [ bsd2 ]; 428 maintainers = with maintainers; [ ]; 429 }; 430 }; 431 432 modsecurity = { 433 name = "modsecurity"; 434 src = fetchFromGitHub { 435 name = "modsecurity-nginx"; 436 owner = "SpiderLabs"; 437 repo = "ModSecurity-nginx"; 438 rev = "v1.0.3"; 439 sha256 = "sha256-xp0/eqi5PJlzb9NaUbNnzEqNcxDPyjyNwZOwmlv1+ag="; 440 }; 441 442 inputs = [ curl geoip libmodsecurity libxml2 lmdb yajl ]; 443 disableIPC = true; 444 445 meta = with lib; { 446 description = "Open source, cross platform web application firewall (WAF)"; 447 homepage = "https://github.com/SpiderLabs/ModSecurity"; 448 license = with licenses; [ asl20 ]; 449 maintainers = with maintainers; [ ]; 450 }; 451 }; 452 453 moreheaders = { 454 name = "moreheaders"; 455 src = fetchFromGitHub { 456 name = "moreheaders"; 457 owner = "openresty"; 458 repo = "headers-more-nginx-module"; 459 rev = "v0.34"; 460 sha256 = "sha256-LsrN/rF/p17x/80Jw9CgbmK69to6LycCM1OwTBojz8M="; 461 }; 462 463 meta = with lib; { 464 description = "Set, add, and clear arbitrary output headers"; 465 homepage = "https://github.com/openresty/headers-more-nginx-module"; 466 license = with licenses; [ bsd2 ]; 467 maintainers = with maintainers; [ ]; 468 }; 469 }; 470 471 mpeg-ts = { 472 name = "mpeg-ts"; 473 src = fetchFromGitHub { 474 name = "mpeg-ts"; 475 owner = "arut"; 476 repo = "nginx-ts-module"; 477 rev = "v0.1.1"; 478 sha256 = "12dxcyy6wna1fccl3a9lnsbymd6p4apnwz6c24w74v97qvpfdxqd"; 479 }; 480 481 meta = with lib; { 482 description = "MPEG-TS Live Module"; 483 homepage = "https://github.com/arut/nginx-ts-module"; 484 license = with licenses; [ bsd2 ]; 485 maintainers = with maintainers; [ ]; 486 }; 487 }; 488 489 naxsi = { 490 name = "naxsi"; 491 src = fetchFromGitHub { 492 name = "naxsi"; 493 owner = "nbs-system"; 494 repo = "naxsi"; 495 rev = "95ac520eed2ea04098a76305fd0ad7e9158840b7"; 496 sha256 = "0b5pnqkgg18kbw5rf2ifiq7lsx5rqmpqsql6hx5ycxjzxj6acfb3"; 497 } + "/naxsi_src"; 498 499 meta = with lib; { 500 description = "Open-source, high performance, low rules maintenance WAF"; 501 homepage = "https://github.com/nbs-system/naxsi"; 502 license = with licenses; [ gpl3 ]; 503 maintainers = with maintainers; [ ]; 504 }; 505 }; 506 507 njs = rec { 508 name = "njs"; 509 src = fetchhg { 510 url = "https://hg.nginx.org/njs"; 511 rev = "0.7.10"; 512 sha256 = "sha256-/yKzY+BUFxLk8bWo+mqKfRVRsC2moe+WvhaRYIGdr6Y="; 513 name = "nginx-njs"; 514 }; 515 516 # njs module sources have to be writable during nginx build, so we copy them 517 # to a temporary directory and change the module path in the configureFlags 518 preConfigure = '' 519 NJS_SOURCE_DIR=$(readlink -m "$TMPDIR/${src}") 520 mkdir -p "$(dirname "$NJS_SOURCE_DIR")" 521 cp --recursive "${src}" "$NJS_SOURCE_DIR" 522 chmod -R u+rwX,go+rX "$NJS_SOURCE_DIR" 523 export configureFlags="''${configureFlags/"${src}"/"$NJS_SOURCE_DIR/nginx"}" 524 unset NJS_SOURCE_DIR 525 ''; 526 527 inputs = [ which ]; 528 529 meta = with lib; { 530 description = "Subset of the JavaScript language that allows extending nginx functionality"; 531 homepage = "https://nginx.org/en/docs/njs/"; 532 license = with licenses; [ bsd2 ]; 533 maintainers = with maintainers; [ ]; 534 }; 535 }; 536 537 opentracing = { 538 name = "opentracing"; 539 src = 540 let src' = fetchFromGitHub { 541 name = "opentracing"; 542 owner = "opentracing-contrib"; 543 repo = "nginx-opentracing"; 544 rev = "v0.10.0"; 545 sha256 = "1q234s3p55xv820207dnh4fcxkqikjcq5rs02ai31ylpmfsf0kkb"; 546 }; 547 in "${src'}/opentracing"; 548 549 inputs = [ opentracing-cpp ]; 550 551 meta = with lib; { 552 description = "Enable requests served by nginx for distributed tracing via The OpenTracing Project"; 553 homepage = "https://github.com/opentracing-contrib/nginx-opentracing"; 554 license = with licenses; [ asl20 ]; 555 maintainers = with maintainers; [ ]; 556 }; 557 }; 558 559 pagespeed = { 560 name = "pagespeed"; 561 src = let 562 moduleSrc = fetchFromGitHub { 563 name = "pagespeed"; 564 owner = "apache"; 565 repo = "incubator-pagespeed-ngx"; 566 rev = "v${psol.version}-stable"; 567 sha256 = "0ry7vmkb2bx0sspl1kgjlrzzz6lbz07313ks2lr80rrdm2zb16wp"; 568 }; 569 in runCommand "ngx_pagespeed" { 570 meta = { 571 description = "PageSpeed module for Nginx"; 572 homepage = "https://developers.google.com/speed/pagespeed/module/"; 573 license = lib.licenses.asl20; 574 }; 575 } '' 576 cp -r "${moduleSrc}" "$out" 577 chmod -R +w "$out" 578 ln -s "${psol}" "$out/psol" 579 ''; 580 581 inputs = [ zlib libuuid ]; # psol deps 582 allowMemoryWriteExecute = true; 583 584 meta = with lib; { 585 description = "Automatic PageSpeed optimization"; 586 homepage = "https://github.com/apache/incubator-pagespeed-ngx"; 587 license = with licenses; [ asl20 ]; 588 maintainers = with maintainers; [ ]; 589 }; 590 }; 591 592 pam = { 593 name = "pam"; 594 src = fetchFromGitHub { 595 name = "pam"; 596 owner = "sto"; 597 repo = "ngx_http_auth_pam_module"; 598 rev = "v1.5.3"; 599 sha256 = "sha256:09lnljdhjg65643bc4535z378lsn4llbq67zcxlln0pizk9y921a"; 600 }; 601 602 inputs = [ pam ]; 603 604 meta = with lib; { 605 description = "Use PAM for simple http authentication "; 606 homepage = "https://github.com/sto/ngx_http_auth_pam_module"; 607 license = with licenses; [ bsd2 ]; 608 maintainers = with maintainers; [ ]; 609 }; 610 }; 611 612 pinba = { 613 name = "pinba"; 614 src = fetchFromGitHub { 615 name = "pinba"; 616 owner = "tony2001"; 617 repo = "ngx_http_pinba_module"; 618 rev = "28131255d4797a7e2f82a6a35cf9fc03c4678fe6"; 619 sha256 = "00fii8bjvyipq6q47xhjhm3ylj4rhzmlk3qwxmfpdn37j7bc8p8c"; 620 }; 621 622 meta = with lib; { 623 description = "Pinba module for nginx"; 624 homepage = "https://github.com/tony2001/ngx_http_pinba_module"; 625 license = with licenses; [ unfree ]; # no license in repo 626 maintainers = with maintainers; [ ]; 627 }; 628 }; 629 630 push-stream = { 631 name = "push-stream"; 632 src = fetchFromGitHub { 633 name = "push-stream"; 634 owner = "wandenberg"; 635 repo = "nginx-push-stream-module"; 636 rev = "1cdc01521ed44dc614ebb5c0d19141cf047e1f90"; 637 sha256 = "0ijka32b37dl07k2jl48db5a32ix43jaczrpjih84cvq8yph0jjr"; 638 }; 639 640 meta = with lib; { 641 description = "Pure stream http push technology"; 642 homepage = "https://github.com/wandenberg/nginx-push-stream-module"; 643 license = with licenses; [ gpl3 ]; 644 maintainers = with maintainers; [ ]; 645 }; 646 }; 647 648 rtmp = { 649 name = "rtmp"; 650 src = fetchFromGitHub { 651 name = "rtmp"; 652 owner = "arut"; 653 repo = "nginx-rtmp-module"; 654 rev = "v1.2.2"; 655 sha256 = "0y45bswk213yhkc2v1xca2rnsxrhx8v6azxz9pvi71vvxcggqv6h"; 656 }; 657 658 meta = with lib; { 659 description = "Media Streaming Server"; 660 homepage = "https://github.com/arut/nginx-rtmp-module"; 661 license = with licenses; [ bsd2 ]; 662 maintainers = with maintainers; [ ]; 663 }; 664 }; 665 666 secure-token = rec { 667 name = "secure-token"; 668 version = "1.5"; 669 src = fetchFromGitHub { 670 name = "secure-token"; 671 owner = "kaltura"; 672 repo = "nginx-secure-token-module"; 673 rev = "refs/tags/${version}"; 674 hash = "sha256-qYTjGS9pykRqMFmNls52YKxEdXYhHw+18YC2zzdjEpU="; 675 }; 676 677 inputs = [ openssl ]; 678 679 meta = with lib; { 680 description = "Generates CDN tokens, either as a cookie or as a query string parameter"; 681 homepage = "https://github.com/kaltura/nginx-secure-token-module"; 682 license = with licenses; [ agpl3 ]; 683 maintainers = with maintainers; [ ]; 684 }; 685 }; 686 687 set-misc = { 688 name = "set-misc"; 689 src = fetchFromGitHub { 690 name = "set-misc"; 691 owner = "openresty"; 692 repo = "set-misc-nginx-module"; 693 rev = "v0.32"; 694 sha256 = "048a6jwinbjgxiprjj9ml3fdp0mhkx89g6ggams57fsx9m5vaxax"; 695 }; 696 697 meta = with lib; { 698 description = "Various set_xxx directives added to the rewrite module (md5/sha1, sql/json quoting and many more)"; 699 homepage = "https://github.com/openresty/set-misc-nginx-module"; 700 license = with licenses; [ bsd2 ]; 701 maintainers = with maintainers; [ ]; 702 }; 703 }; 704 705 shibboleth = { 706 name = "shibboleth"; 707 src = fetchFromGitHub { 708 name = "shibboleth"; 709 owner = "nginx-shib"; 710 repo = "nginx-http-shibboleth"; 711 rev = "3f5ff4212fa12de23cb1acae8bf3a5a432b3f43b"; 712 sha256 = "136zjipaz7iikgcgqwdv1mrh3ya996zyzbkdy6d4k07s2h9g7hy6"; 713 }; 714 715 meta = with lib; { 716 description = "Shibboleth auth request"; 717 homepage = "https://github.com/nginx-shib/nginx-http-shibboleth"; 718 license = with licenses; [ bsd2 ]; 719 maintainers = with maintainers; [ ]; 720 }; 721 }; 722 723 sla = { 724 name = "sla"; 725 src = fetchFromGitHub { 726 name = "sla"; 727 owner = "goldenclone"; 728 repo = "nginx-sla"; 729 rev = "7778f0125974befbc83751d0e1cadb2dcea57601"; 730 sha256 = "1x5hm6r0dkm02ffny8kjd7mmq8przyd9amg2qvy5700x6lb63pbs"; 731 }; 732 733 meta = with lib; { 734 description = "Implements a collection of augmented statistics based on HTTP-codes and upstreams response time"; 735 homepage = "https://github.com/goldenclone/nginx-sla"; 736 license = with licenses; [ unfree ]; # no license in repo 737 maintainers = with maintainers; [ ]; 738 }; 739 }; 740 741 slowfs-cache = { 742 name = "slowfs-cache"; 743 src = fetchFromGitHub { 744 name = "slowfs-cache"; 745 owner = "FRiCKLE"; 746 repo = "ngx_slowfs_cache"; 747 rev = "1.10"; 748 sha256 = "1gyza02pcws3zqm1phv3ag50db5gnapxyjwy8skjmvawz7p5bmxr"; 749 }; 750 751 meta = with lib; { 752 description = "Adds ability to cache static files"; 753 homepage = "https://github.com/friCKLE/ngx_slowfs_cache"; 754 license = with licenses; [ bsd2 ]; 755 maintainers = with maintainers; [ ]; 756 }; 757 }; 758 759 sorted-querystring = { 760 name = "sorted-querystring"; 761 src = fetchFromGitHub { 762 name = "sorted-querystring"; 763 owner = "wandenberg"; 764 repo = "nginx-sorted-querystring-module"; 765 rev = "0.3"; 766 sha256 = "0p6b0hcws39n27fx4xp9k4hb3pcv7b6kah4qqaj0pzjy3nbp4gj7"; 767 }; 768 769 meta = with lib; { 770 description = "Expose querystring parameters sorted in a variable"; 771 homepage = "https://github.com/wandenberg/nginx-sorted-querystring-module"; 772 license = with licenses; [ mit ]; 773 maintainers = with maintainers; [ ]; 774 }; 775 }; 776 777 spnego-http-auth = { 778 name = "spnego-http-auth"; 779 src = fetchFromGitHub { 780 name = "spnego-http-auth"; 781 owner = "stnoonan"; 782 repo = "spnego-http-auth-nginx-module"; 783 rev = "72c8ee04c81f929ec84d5a6d126f789b77781a8c"; 784 sha256 = "05rw3a7cv651951li995r5l1yzz6kwkm2xpbd59jsfzd74bw941i"; 785 }; 786 787 inputs = [ libkrb5 ]; 788 789 meta = with lib; { 790 description = "SPNEGO HTTP Authentication Module"; 791 homepage = "https://github.com/stnoonan/spnego-http-auth-nginx-module"; 792 license = with licenses; [ bsd2 ]; 793 maintainers = with maintainers; [ ]; 794 }; 795 }; 796 797 statsd = { 798 name = "statsd"; 799 src = fetchFromGitHub { 800 name = "statsd"; 801 owner = "harvesthq"; 802 repo = "nginx-statsd"; 803 rev = "b970e40467a624ba710c9a5106879a0554413d15"; 804 sha256 = "1x8j4i1i2ahrr7qvz03vkldgdjdxi6mx75mzkfizfcc8smr4salr"; 805 }; 806 807 meta = with lib; { 808 description = "Send statistics to statsd"; 809 homepage = "https://github.com/harvesthq/nginx-statsd"; 810 license = with licenses; [ bsd3 ]; 811 maintainers = with maintainers; [ ]; 812 }; 813 }; 814 815 stream-sts = { 816 name = "stream-sts"; 817 src = fetchFromGitHub { 818 name = "stream-sts"; 819 owner = "vozlt"; 820 repo = "nginx-module-stream-sts"; 821 rev = "v0.1.1"; 822 sha256 = "1jdj1kik6l3rl9nyx61xkqk7hmqbncy0rrqjz3dmjqsz92y8zaya"; 823 }; 824 825 meta = with lib; { 826 description = "Stream server traffic status core module"; 827 homepage = "https://github.com/vozlt/nginx-module-stream-sts"; 828 license = with licenses; [ bsd2 ]; 829 maintainers = with maintainers; [ ]; 830 }; 831 }; 832 833 sts = { 834 name = "sts"; 835 src = fetchFromGitHub { 836 name = "sts"; 837 owner = "vozlt"; 838 repo = "nginx-module-sts"; 839 rev = "v0.1.1"; 840 sha256 = "0nvb29641x1i7mdbydcny4qwlvdpws38xscxirajd2x7nnfdflrk"; 841 }; 842 843 meta = with lib; { 844 description = "Stream server traffic status module"; 845 homepage = "https://github.com/vozlt/nginx-module-sts"; 846 license = with licenses; [ bsd2 ]; 847 maintainers = with maintainers; [ ]; 848 }; 849 }; 850 851 subsFilter = { 852 name = "subsFilter"; 853 src = fetchFromGitHub { 854 name = "subsFilter"; 855 owner = "yaoweibin"; 856 repo = "ngx_http_substitutions_filter_module"; 857 rev = "b8a71eacc7f986ba091282ab8b1bbbc6ae1807e0"; 858 sha256 = "027jxzx66q9a6ycn47imjh40xmnqr0z423lz0ds3w4rf1c2x130f"; 859 }; 860 861 meta = with lib; { 862 description = "Filter module which can do both regular expression and fixed string substitutions"; 863 homepage = "https://github.com/yaoweibin/ngx_http_substitutions_filter_module"; 864 license = with licenses; [ bsd2 ]; 865 maintainers = with maintainers; [ ]; 866 }; 867 }; 868 869 sysguard = { 870 name = "sysguard"; 871 src = fetchFromGitHub { 872 name = "sysguard"; 873 owner = "vozlt"; 874 repo = "nginx-module-sysguard"; 875 rev = "e512897f5aba4f79ccaeeebb51138f1704a58608"; 876 sha256 = "19c6w6wscbq9phnx7vzbdf4ay6p2ys0g7kp2rmc9d4fb53phrhfx"; 877 }; 878 879 meta = with lib; { 880 description = "Nginx sysguard module"; 881 homepage = "https://github.com/vozlt/nginx-module-sysguard"; 882 license = with licenses; [ bsd2 ]; 883 maintainers = with maintainers; [ ]; 884 }; 885 }; 886 887 upload = { 888 name = "upload"; 889 src = fetchFromGitHub { 890 name = "upload"; 891 owner = "fdintino"; 892 repo = "nginx-upload-module"; 893 rev = "2.3.0"; 894 sha256 = "8veZP516oC7TESO368ZsZreetbDt+1eTcamk7P1kWjU="; 895 }; 896 897 meta = with lib; { 898 description = "Handle file uploads using multipart/form-data encoding and resumable uploads"; 899 homepage = "https://github.com/fdintino/nginx-upload-module"; 900 license = with licenses; [ bsd3 ]; 901 maintainers = with maintainers; [ ]; 902 }; 903 }; 904 905 upstream-check = { 906 name = "upstream-check"; 907 src = fetchFromGitHub { 908 name = "upstream-check"; 909 owner = "yaoweibin"; 910 repo = "nginx_upstream_check_module"; 911 rev = "e538034b6ad7992080d2403d6d3da56e4f7ac01e"; 912 sha256 = "06y7k04072xzqyqyb08m0vaaizkp4rfwm0q7i735imbzw2rxb74l"; 913 }; 914 915 meta = with lib; { 916 description = "Support upstream health check"; 917 homepage = "https://github.com/yaoweibin/nginx_upstream_check_module"; 918 license = with licenses; [ bsd2 ]; 919 maintainers = with maintainers; [ ]; 920 }; 921 }; 922 923 upstream-tarantool = { 924 name = "upstream-tarantool"; 925 src = fetchFromGitHub { 926 name = "upstream-tarantool"; 927 owner = "tarantool"; 928 repo = "nginx_upstream_module"; 929 rev = "v2.7.1"; 930 sha256 = "0ya4330in7zjzqw57djv4icpk0n1j98nvf0f8v296yi9rjy054br"; 931 }; 932 933 inputs = [ msgpuck.dev yajl ]; 934 935 meta = with lib; { 936 description = "Tarantool NginX upstream module (REST, JSON API, websockets, load balancing)"; 937 homepage = "https://github.com/tarantool/nginx_upstream_module"; 938 license = with licenses; [ bsd2 ]; 939 maintainers = with maintainers; [ ]; 940 }; 941 }; 942 943 url = { 944 name = "url"; 945 src = fetchFromGitHub { 946 name = "url"; 947 owner = "vozlt"; 948 repo = "nginx-module-url"; 949 rev = "9299816ca6bc395625c3683fbd2aa7b916bfe91e"; 950 sha256 = "0mk1gjmfnry6hgdsnlavww9bn7223idw50jlkhh5k00q5509w4ip"; 951 }; 952 953 meta = with lib; { 954 description = "URL encoding converting module"; 955 homepage = "https://github.com/vozlt/nginx-module-url"; 956 license = with licenses; [ bsd2 ]; 957 maintainers = with maintainers; [ ]; 958 }; 959 }; 960 961 video-thumbextractor = { 962 name = "video-thumbextractor"; 963 src = fetchFromGitHub { 964 name = "video-thumbextractor"; 965 owner = "wandenberg"; 966 repo = "nginx-video-thumbextractor-module"; 967 rev = "92b80642538eec4cfc98114dec5917b8d820e912"; 968 sha256 = "0a8d9ifryhhnll7k7jcsf9frshk5yhpsgz7zgxdmw81wbz5hxklc"; 969 }; 970 971 inputs = [ ffmpeg ]; 972 973 meta = with lib; { 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; [ ]; 978 }; 979 }; 980 981 vod = { 982 name = "vod"; 983 src = fetchFromGitHub { 984 name = "vod"; 985 owner = "kaltura"; 986 repo = "nginx-vod-module"; 987 rev = "1.31"; 988 hash = "sha256-ZpeO8QWQ+fGkz08u/zFOq7vj4aHcodzSHNrc1SgGUyc="; 989 }; 990 991 inputs = [ ffmpeg fdk_aac openssl libxml2 libiconv ]; 992 993 meta = with lib; { 994 description = "VOD packager"; 995 homepage = "https://github.com/kaltura/nginx-vod-module"; 996 license = with licenses; [ agpl3 ]; 997 maintainers = with maintainers; [ ]; 998 }; 999 }; 1000 1001 vts = { 1002 name = "vts"; 1003 src = fetchFromGitHub { 1004 name = "vts"; 1005 owner = "vozlt"; 1006 repo = "nginx-module-vts"; 1007 rev = "v0.2.2"; 1008 sha256 = "sha256-ReTmYGVSOwtnYDMkQDMWwxw09vT4iHYfYZvgd8iBotk="; 1009 }; 1010 1011 meta = with lib; { 1012 description = "Virtual host traffic status module"; 1013 homepage = "https://github.com/vozlt/nginx-module-vts"; 1014 license = with licenses; [ bsd2 ]; 1015 maintainers = with maintainers; [ SuperSandro2000 ]; 1016 }; 1017 }; 1018 1019 zstd = { 1020 name = "zstd"; 1021 src = fetchFromGitHub { 1022 name = "zstd"; 1023 owner = "tokers"; 1024 repo = "zstd-nginx-module"; 1025 rev = "25d88c262be47462cf90015ee7ebf6317b6848f9"; 1026 sha256 = "sha256-YRluKekhx1tb6e5IL1FPK05jPtzfQPaHI47cdada928="; 1027 }; 1028 1029 inputs = [ zstd ]; 1030 1031 meta = with lib; { 1032 description = "Nginx modules for the Zstandard compression"; 1033 homepage = "https://github.com/tokers/zstd-nginx-module"; 1034 license = with licenses; [ bsd2 ]; 1035 maintainers = with maintainers; [ SuperSandro2000 ]; 1036 }; 1037 }; 1038}; in self // lib.optionalAttrs config.allowAliases { 1039 # deprecated or renamed packages 1040 modsecurity-nginx = self.modsecurity; 1041 fastcgi-cache-purge = throw "fastcgi-cache-purge was renamed to cache-purge"; 1042 ngx_aws_auth = throw "ngx_aws_auth was renamed to aws-auth"; 1043}