For information about work before repository switch, see commits in the old repository here.
This is a simple web application that allows you to manage your Nginx reverse proxy configuration. It is written in Python using the Flask web framework.
- Add, edit, and delete reverse proxy configurations
- View the current Nginx configuration
- Automatically reload Nginx after changes are made
- Automatically validate Nginx configuration before reloading
Create a docker compose file with the following content:
services:
reverse-proxy:
container_name: reverse-proxy
build:
context: ./reverse-proxy
dockerfile: Dockerfile
ports:
- 80:80
- 443:443
volumes:
- logs:/var/log/nginx
- conf:/etc/nginx/conf.d
- certs:/etc/nginx/certs
- scripts:/opt/scripts
restart: unless-stopped
web-manager:
container_name: web-manager
build:
context: ./web-manager
dockerfile: Dockerfile
environment:
- SSL_COUNTRY=FR
- SSL_STATE=France
- SSL_CITY=Noisy-le-Grand
- SSL_ORGANIZATION_GLOBAL=ESIEE Paris
- SSL_ORGANIZATION_UNIT=Club*Nix
- SSL_DAYS=365
ports:
- 5000:5000
volumes:
- logs:/app/nginx/logs
- conf:/app/nginx/conf.d
- certs:/app/nginx/certs
- scripts:/app/scripts
- ./logs:/app/logs
restart: unless-stopped
volumes:
logs:
conf:
certs:
scripts:You can then run the following command to start the services:
docker compose up -dThe web manager will be available at http://localhost:5000.
The web manager uses environment variables to configure the SSL certificate generation. The following variables are available:
SSL_COUNTRY: The country code for the SSL certificate (default:FR)SSL_STATE: The state for the SSL certificate (default:France)SSL_CITY: The city for the SSL certificate (default:Noisy-le-Grand)SSL_ORGANIZATION_GLOBAL: The global organization for the SSL certificate (default:ESIEE Paris)SSL_ORGANIZATION_UNIT: The organization unit for the SSL certificate (default:Club*Nix)SSL_DAYS: The number of days the SSL certificate is valid for (default:365)
There are four volumes that are used by the services:
logs: The Nginx logs directoryconf: The Nginx configuration directorycerts: The Nginx certificates directoryscripts: The scripts directory
The logs, conf, and certs volumes are shared between the reverse proxy and the web manager.
The scripts volume is used to communicate and execute reload and validation scripts between the services.
The ./logs volume is used to store the web manager logs.
This project is licensed under the GNU General Public License v3.0 - see the LICENSE file for details.