44 lines
1.1 KiB
Markdown
44 lines
1.1 KiB
Markdown
|
# pyinfra-nginx
|
||
|
|
||
|
This is a pyinfra module to manage an nginx web server.
|
||
|
|
||
|
## Install
|
||
|
|
||
|
Just install this python package with
|
||
|
`pip install git+https://git.0x90.space/0x90/pyinfra-nginx/`
|
||
|
(preferably to your virtual environment).
|
||
|
|
||
|
## Usage
|
||
|
|
||
|
You can use this module
|
||
|
from your pyinfra deploy.py file
|
||
|
like this:
|
||
|
|
||
|
```
|
||
|
from pyinfra_nginx import deploy_nginx, nginx_deployer
|
||
|
|
||
|
|
||
|
deploy_nginx() # install nginx via apt if it doesn't exist
|
||
|
|
||
|
with nginx_deployer() as n:
|
||
|
n.add_nginx_domain(domain="example.org", webroot="/var/www/html/")
|
||
|
```
|
||
|
|
||
|
This will install nginx via apt
|
||
|
(only Debian-like systems are supported right now)
|
||
|
and deploy an example nginx config
|
||
|
which exposes static files
|
||
|
under the `/var/www/html` directory.
|
||
|
|
||
|
### Options
|
||
|
|
||
|
`add_nginx_domain()` supports 3 template configs for configuring your site:
|
||
|
|
||
|
- `webroot` for serving a static page,
|
||
|
- `proxy_port` for passing traffic to a separate application listening on some port,
|
||
|
- and `redirect` for redirecting to a different website with a 301 HTTP status code.
|
||
|
- You can use `config_path` if your site is so special it needs a custom config.
|
||
|
|
||
|
These 4 options are mutually exclusive.
|
||
|
|