{"id":14985685,"url":"https://github.com/getpagespeed/nginx-extras","last_synced_at":"2025-04-11T22:04:52.925Z","repository":{"id":40553742,"uuid":"199220634","full_name":"GetPageSpeed/nginx-extras","owner":"GetPageSpeed","description":"Submit your NGINX module for build in GetPageSpeed extras RPM repository","archived":false,"fork":false,"pushed_at":"2025-02-14T06:10:45.000Z","size":286,"stargazers_count":10,"open_issues_count":6,"forks_count":5,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-02-14T07:23:15.987Z","etag":null,"topics":["nginx","nginx-module","rpm","yml"],"latest_commit_sha":null,"homepage":"https://www.getpagespeed.com/nginx-extras","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-2-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/GetPageSpeed.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2019-07-27T22:58:07.000Z","updated_at":"2025-02-14T06:10:49.000Z","dependencies_parsed_at":"2023-12-16T08:43:22.258Z","dependency_job_id":"3205e6c2-3bd4-4356-ba29-f870cbbbdb48","html_url":"https://github.com/GetPageSpeed/nginx-extras","commit_stats":{"total_commits":261,"total_committers":5,"mean_commits":52.2,"dds":0.5363984674329502,"last_synced_commit":"2698d463106e46afd6c0427abf0d8277967a8937"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GetPageSpeed%2Fnginx-extras","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GetPageSpeed%2Fnginx-extras/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GetPageSpeed%2Fnginx-extras/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GetPageSpeed%2Fnginx-extras/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/GetPageSpeed","download_url":"https://codeload.github.com/GetPageSpeed/nginx-extras/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":239785315,"owners_count":19696754,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["nginx","nginx-module","rpm","yml"],"created_at":"2024-09-24T14:11:29.115Z","updated_at":"2025-02-20T05:32:10.953Z","avatar_url":"https://github.com/GetPageSpeed.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# nginx-extras\n\n![CircleCI](https://circleci.com/gh/GetPageSpeed/repotest.svg?style=shield\u0026circle-token=db54937e3be24afebb2520f2c59ecb65a848900d)\n\nThe [nginx-extras](https://www.getpagespeed.com/nginx-extras) project, as part of [GetPageSpeed repositories](https://www.getpagespeed.com/redhat) \nis your source of secure, well-maintained packages of NGINX and its 50+ modules.\n\nProduction-ready, quality binary RPM packages for NGINX Brotli, PageSpeed, dynamic ETags, ModSecurity modules (and many more),\nall available for installation via `yum/dnf`, giving you ability to configure your ultimate performant and secure NGINX setup.\n\nAvailable by [subscription](https://www.getpagespeed.com/repo-subscribe), \nit is a budget NGINX Plus alternative, for any RPM-based distro!\n\nFor sysadmins this allows to:\n\n* install prebuilt CentOS/RHEL packages for virtually any NGINX module, without compilation\n* save time, any module can be installed in seconds\n* save production systems from pollution by compilation software\n\nFor module authors, this allows to:\n\n* deliver your module as installable package *in ten minutes*\n* automatic rebuilds when you tag new release of your module (within 24 hrs)\n* automatic rebuilds against newly released NGINX versions\n\n## Supported architectures\n\n* x86_64\n* aarch64 (ARM64)\n\n## Install any NGINX module whatsoever in any RPM-based distro\n\nWe provide NGINX module RPM packages for:\n\n* CentOS/RHEL\n* Fedora Linux (**and this one is free**)\n* Amazon Linux\n* Suse Linux\n\n### Step 1. Install repository configuration for your OS\n\n    sudo yum -y install https://extras.getpagespeed.com/release-latest.rpm\n\n### Step 2. Enable installing modules for mainline NGINX (if you must)\n\n    sudo yum -y install yum-utils\n    sudo yum-config-manager --enable getpagespeed-extras-mainline\n\n### Step 3. Install the module, e.g. cache-purge     \n\n    sudo yum -y install nginx-module-cache-purge\n\n## Request a module\n\nThe list of modules we discovered on GitHub but haven't yet tested or packaged is [here](docs/nonpackaged-modules.md). \nYou can open a ticket/issue to request packaging of any of those.\n\n## Module Requirements (for authors)\n\nThe module requirements are pretty straightforward, and most of the module repositories already follow it:\n\n* Hosted on GitHub\n* Tag releases with sane version numbers. Repositories without any version tag can't build. Pre-releases / beta versions are detected and *not* built\n* `config` file in the root of repository *must* support compiling as dynamic module\n\n### Submit your module for build\n\n* Fork the repository\n* Create `modules/\u003chandle\u003e.yml` file and specify parameters like the example below. The handle should be unique. The resulting package will have name `nginx-module-\u003chandle\u003e`, e.g. `nginx-module-foo`\n* Submit pull request. That's it! Your module will be automatically built against both stable and mainline NGINX. Check it within 10 mins [here](https://extras.getpagespeed.com/redhat/7/mainline/x86_64/repoview/letter_n.group.html) (for mainline NGINX) and [here](https://extras.getpagespeed.com/redhat/7/x86_64/repoview/letter_n.group.html) (for stable NGINX). If it doesn't appear, [raise an issue](https://github.com/GetPageSpeed/nginx-extras/issues/new).\n\n### Sample module.yml\n\n```yml\nrepo: openresty/srcache-nginx-module\nsummary: Transparent subrequest-based caching layout for arbitrary NGINX locations\ndescription: |\n  This module provides a transparent caching layer for arbitrary nginx\n  locations (like those use an upstream or even serve static disk files).\n\n  The caching behavior is mostly compatible with RFC 2616.\nsoname: ngx_http_srcache_filter_module\n```\n\n* `repo` (required): GitHub repository in format `\u003cowner\u003e/\u003cname\u003e`\n* `summary`: short (up to 70 characters) summary of the module\n* `description`: longer description of the module\n* `soname` (required): basename of dynamic module filename\n* `release_ticket`: a URL to the original GitHub project, requesting to tag a release. \n  This is the way to link back to the original project when we have to fork it for the sake of packaging or\n  including important fixes \n* `build_requires` allows you to specify external devel library dependencies, e.g.:\n\n```yml \nbuild_requires:\n  - hiredis-devel\n```\n\nVersion is automatically detected from your latest release, using [`lastversion`](https://github.com/dvershinin/lastversion).\nMake sure that your latest release has a `LICENSE` if you want it to be included in resulting RPM!\n\n## Caveats (for module authors)\n\nSome modules have a pretty sophisticated RPM logic. \nOne is example is `nginx-module-pagespeed`: it needs custom SELinux policy, among other things.\nDon't worry, we still build those modules elsewhere, and \nthey are available through our repository same as any module that is built through this sytem.\n\nIf your module is one of those, raise an issue here.\n\n99% of modules can be still built through this system.\n\n## Caveats (for sysadmins)\n\nUsing our repository implies you take all the risks associated with using an unofficial repository.\nPurchase Nginx Plus subscription if not sure :)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgetpagespeed%2Fnginx-extras","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgetpagespeed%2Fnginx-extras","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgetpagespeed%2Fnginx-extras/lists"}