Metadata-Version: 2.1
Name: webdomains
Version: 1.0.0b2
Summary: Manage your Web domains served by NGINX
Home-page: UNKNOWN
Author: Cliss XXI
Author-email: contact@cliss21.com
License: GPLv3
Project-URL: Bug Tracker, https://forge.cliss21.org/cliss21/webdomains/issues
Project-URL: Source Code, https://forge.cliss21.org/cliss21/webdomains
Platform: UNKNOWN
Classifier: Development Status :: 4 - Beta
Classifier: Operating System :: POSIX :: Linux
Classifier: Topic :: Internet :: WWW/HTTP :: HTTP Servers
Classifier: License :: OSI Approved :: GNU General Public License v3 (GPLv3)
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.6
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3 :: Only
Requires-Python: <4,>=3.6
Description-Content-Type: text/markdown
Requires-Dist: click (>=7.0)
Requires-Dist: jinja2 (>=2.10)
Provides-Extra: test
Requires-Dist: black ; extra == 'test'
Requires-Dist: flake8-black ; extra == 'test'
Requires-Dist: flake8-isort ; extra == 'test'
Requires-Dist: flake8 (>=3.5) ; extra == 'test'
Requires-Dist: isort (>=5.0) ; extra == 'test'
Requires-Dist: pytest ; extra == 'test'
Requires-Dist: pytest-cov ; extra == 'test'

# webdomains

Manage your Web domains served by NGINX.

## Installation
### Requirements

On a Debian-based host, you will need an already configured and running
[NGINX server](https://nginx.net/). You may also install the following
packages to satisfy the Python dependencies:
- `python3-click`
- `python3-jinja2`

To generate the SSL/TLS certificates for the domains, you will also have to
install and configure [dehydrated](https://dehydrated.io/). It is recommended
to use a recent version - i.e. from `buster-backports`. To serve the ACME
challenge, the default NGINX configuration of a domain is looking for
`/etc/nginx/snippets/acme-challenge.conf` - which can just contain:

```nginx
location /.well-known/acme-challenge {
    default_type "text/plain";
    alias        /var/lib/dehydrated/acme-challenges;
}
```

### Configuration

You can provide your own `server.conf` template which is used to generate the
NGINX configuration of a new domain. *webdomains* will look for a file with this
name in `/etc/webdomains/templates` at first. If it does not exist, the
[default template](webdomains/templates/server.conf) is used.

## Development

To set up a development environment, all you need to have to install is a
Python 3 interpreter, Git and Make. Then, run the following:

```bash
git clone https://forge.cliss21.org/cliss21/webdomains.git
cd webdomains/

# create and active a virtual environment
python3 -m venv venv/
source venv/bin/activate

# install the package with test requirements
pip install -e .[test]
```

You can now run the following commands:
- `make lint`: check the code syntax
- `make tests`: run the tests
- `make coverage`: report the code coverage

## License

*webdomains* is mainly developed by [Cliss XXI](https://www.cliss21.com) and
licensed under the [GPLv3+](LICENSE). Any contribution is welcome!


