# ngm
NGINX dynamic modules and websites manager.
## Managing your NGINX modules
The GetPageSpeed repository users have convenient access to over a hundred of NGINX module packages,
via [NGINX Extras collection](https://nginx-extras.getpagespeed.com/).
We realize the need of both our customers and users of other NGINX module collections, to
efficiently manage their installed set of NGINX modules.
The NGINX Manager utility (`ngm`) provides an easy way to list installed or available NGINX modules,
and look up their respective `load_module` directives.
## Usage
### List installed modules
```bash
ngm list
```
Sample output:
+--------------+---------------------------------------+-----------+-------------------------------------------------------------+
| Module ID | Feature Summary | Enabled | Load Directive used by "ngm enable <module id>" |
|--------------+---------------------------------------+-----------+-------------------------------------------------------------|
| security | Modsecurity v3 nginx connector | No | load_module modules/ngx_http_modsecurity_module.so; |
| pagespeed | Pagespeed dynamic module for nginx | Yes | load_module modules/ngx_pagespeed.so; |
| doh | Serving dns-over-https (doh) requests | Yes | load_module modules/ngx_http_doh_module.so; |
| headers-more | Nginx headers more dynamic module | Yes | load_module modules/ngx_http_headers_more_filter_module.so; |
| echo | Nginx echo module | Yes | load_module modules/ngx_http_echo_module.so; |
+--------------+---------------------------------------+-----------+-------------------------------------------------------------+
Alternative, lengthier syntax to run the same is `ngm list installed`.
### Enable an installed module
```bash
ngm enable <module id>
```
For example:
```bash
ngm enable headers-more
```
This will do the following:
* Add respective `load_module` directive at the top of your `nginx.conf` configuration file
* Run `systemctl reload nginx`
### List installable modules
This command list modules available for installation via GetPageSpeed repositories:
```bash
ngm list available
```
## Installation
### CentOS/RHEL and other RPM-based systems
```bash
yum -y https://extras.getpagespeed.com/release-latest.rpm
yum -y install ngm
```
### Other systems
```bash
pip install nginx-manager
```
## Goals for future
### Modules
* `ngm list enabled` to see what modules are enabled via `nginx -T` and parsing `load_module` directives
* `ngm disable <module-name>`
* auto-complete for modules
* `ngm compile --i-know-i-should-use-packages-instead github/blah`
* `ngm list` to display modules based on modules dir, then look up via `rpm -ql` all the `.so` instead of `.json` database
* `ngm list` should display latest versions `lastversion`, this requires look up URL: via `rpm`
### Websites
* Create sites from Jinja templates (absorb idea from https://github.com/dvershinin/pyNginx)
* `ngm sites list`
* `ngm sites create wordpress example.com`
* `ngs list` or `ngxs list`?
Raw data
{
"_id": null,
"home_page": "https://github.com/GetPageSpeed/ngm",
"name": "nginx-manager",
"maintainer": "",
"docs_url": null,
"requires_python": "",
"maintainer_email": "",
"keywords": "",
"author": "Danila Vershinin",
"author_email": "info@getpagespeed.com",
"download_url": "https://files.pythonhosted.org/packages/65/ba/565aba8d60fe804a0622c89dac22f182a00207dfc7f4172a9bd85fc8f7d2/nginx-manager-0.0.16.tar.gz",
"platform": null,
"description": "# ngm\n\nNGINX dynamic modules and websites manager.\n\n## Managing your NGINX modules\n\nThe GetPageSpeed repository users have convenient access to over a hundred of NGINX module packages,\nvia [NGINX Extras collection](https://nginx-extras.getpagespeed.com/).\n\nWe realize the need of both our customers and users of other NGINX module collections, to\nefficiently manage their installed set of NGINX modules.\n\nThe NGINX Manager utility (`ngm`) provides an easy way to list installed or available NGINX modules,\nand look up their respective `load_module` directives.\n\n## Usage\n\n### List installed modules\n\n```bash\nngm list\n```\n\nSample output:\n\n+--------------+---------------------------------------+-----------+-------------------------------------------------------------+\n| Module ID | Feature Summary | Enabled | Load Directive used by \"ngm enable <module id>\" |\n|--------------+---------------------------------------+-----------+-------------------------------------------------------------|\n| security | Modsecurity v3 nginx connector | No | load_module modules/ngx_http_modsecurity_module.so; |\n| pagespeed | Pagespeed dynamic module for nginx | Yes | load_module modules/ngx_pagespeed.so; |\n| doh | Serving dns-over-https (doh) requests | Yes | load_module modules/ngx_http_doh_module.so; |\n| headers-more | Nginx headers more dynamic module | Yes | load_module modules/ngx_http_headers_more_filter_module.so; |\n| echo | Nginx echo module | Yes | load_module modules/ngx_http_echo_module.so; |\n+--------------+---------------------------------------+-----------+-------------------------------------------------------------+\n\nAlternative, lengthier syntax to run the same is `ngm list installed`.\n\n### Enable an installed module\n\n```bash\nngm enable <module id>\n```\n\nFor example:\n\n```bash\nngm enable headers-more\n```\n\nThis will do the following:\n\n* Add respective `load_module` directive at the top of your `nginx.conf` configuration file\n* Run `systemctl reload nginx`\n\n### List installable modules\n\nThis command list modules available for installation via GetPageSpeed repositories:\n\n```bash\nngm list available\n```\n\n## Installation\n\n### CentOS/RHEL and other RPM-based systems\n\n```bash\nyum -y https://extras.getpagespeed.com/release-latest.rpm\nyum -y install ngm\n```\n\n### Other systems\n\n```bash\npip install nginx-manager\n```\n\n## Goals for future\n\n### Modules \n\n* `ngm list enabled` to see what modules are enabled via `nginx -T` and parsing `load_module` directives\n* `ngm disable <module-name>`\n* auto-complete for modules\n* `ngm compile --i-know-i-should-use-packages-instead github/blah`\n* `ngm list` to display modules based on modules dir, then look up via `rpm -ql` all the `.so` instead of `.json` database\n* `ngm list` should display latest versions `lastversion`, this requires look up URL: via `rpm`\n\n### Websites\n\n* Create sites from Jinja templates (absorb idea from https://github.com/dvershinin/pyNginx)\n* `ngm sites list`\n* `ngm sites create wordpress example.com`\n* `ngs list` or `ngxs list`?\n\n",
"bugtrack_url": null,
"license": "BSD",
"summary": "A CLI tool to manage NGINX configuration",
"version": "0.0.16",
"split_keywords": [],
"urls": [
{
"comment_text": "",
"digests": {
"md5": "31dcf450cf2554a4704a54d1a04a1bdb",
"sha256": "fde10f5f4ef8b0f092884d469c9ea0dfcb9fc145d1665a66b8e661c3b53a98b1"
},
"downloads": -1,
"filename": "nginx_manager-0.0.16-py3-none-any.whl",
"has_sig": false,
"md5_digest": "31dcf450cf2554a4704a54d1a04a1bdb",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": null,
"size": 19144,
"upload_time": "2022-12-18T10:45:02",
"upload_time_iso_8601": "2022-12-18T10:45:02.003712Z",
"url": "https://files.pythonhosted.org/packages/c7/db/22207f7fd19ea0ec4d466033731bb211da1784f22cdf0308710521120308/nginx_manager-0.0.16-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"md5": "d76781f15ee428bfdd3399585a96c0e8",
"sha256": "ba64760133ed31eee8f34cd548828ce6e1237851eeca8e43608c9e001f5a4e48"
},
"downloads": -1,
"filename": "nginx-manager-0.0.16.tar.gz",
"has_sig": false,
"md5_digest": "d76781f15ee428bfdd3399585a96c0e8",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 18747,
"upload_time": "2022-12-18T10:45:04",
"upload_time_iso_8601": "2022-12-18T10:45:04.474124Z",
"url": "https://files.pythonhosted.org/packages/65/ba/565aba8d60fe804a0622c89dac22f182a00207dfc7f4172a9bd85fc8f7d2/nginx-manager-0.0.16.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2022-12-18 10:45:04",
"github": true,
"gitlab": false,
"bitbucket": false,
"github_user": "GetPageSpeed",
"github_project": "ngm",
"lcname": "nginx-manager"
}