Skip to main content

Nginx Quickdeploy

Project description

NGINX QUICKDEPLOY

Code style: black

About

Helps you create and deploy websites on nginx quickly.

Installation

pip3 install nginx-quickdeploy

Usage

Variables:

  • 'FQDN' : Fully Qualified Domain Name, name of your website
  • Nginx config path: Path where your generated config file is stored.
  • Ports: Ports to listen to, in format: <port1> [ssl], <port2> [ssl]
  • Root path: Path where your html files are located
  • Proxy: If your actual application is running on some other port, you can proxy pass and use nginx as webserver. For that just use this function, if not leave it empty

CLI

  -h, --help                          Show this help message and exit
  -i [INPUT], --input [INPUT]         Input json file for easy installation
  -d [DOMAIN], --domain [DOMAIN]      Domain you want to set up.
  -p [PATH], --path [PATH]            Config file path
  --ports [PORTS]                     Ports to listen to separated by comma(,)
  -w [WEBROOT], --webroot [WEBROOT]   Webroot folder containing index.html
  -f [FORWARD], --forward [FORWARD]   Proxy pass URL
  --ssl_cert_path [SSL_CERT_PATH]     SSL certificate path
  --ssl_key_path [SSL_KEY_PATH]       SSL key path

JSON input:

Json input is also supported for easier deployment. Following keys are supported:

  • url : mandatory : provide FQDN
  • path : optional : provide path to be written config, default /etc/nginx/sites-available/{URL}
  • ports : optional, list : provide ports to listen and with ssl or not, default 80 on both interfaces
  • root : optional : path to webroot folder, default /var/www/html/{url}
  • proxy : optional : path to http proxy if you have an app running behind nginx
  • ssl_cert_path : optional : SSL cert path if you have ssl enabled
  • ssl_key_path : optional : SSL key path if you have ssl enabled

Json example

{
  "url": "www.example.org",
  "path": "/usr/shared/www.example.org",
  "ports": ["80", "[::]:80", "443 ssl", "[::]:443 ssl"],
  "root": "/var/www/html",
  "proxy": "https://app.example.org:8080",
  "ssl_cert_path": "/etc/ssl/myexample.org/cert.crt",
  "ssl_key_path": "/etc/ssl/myexample.org/key.pem" 
}

yields:

server {
root /var/www/html;
index index.html index.htm index.nginx-debian.html;
server_name www.example.org;
listen 80;
listen [::]:80;
listen 443 ssl;
listen [::]:443 ssl;
ssl_certificate /etc/ssl/myexample.org/cert.crt;
ssl_certificate_key /etc/ssl/myexample.org/key.pem;
location / {
  proxy_pass https://app.example.org:8080;
  }
}

Tips and Examples

Invoke the script with sudo rights if you want to write to /etc/ngnix/sites-available as it is write protected for non sudo users.

# sudo quickdeploy

FQDN of your domain, e.g. example.com or subdomain.example.com without http or https:  www.example.org
Where should the new config file be saved?, default is /etc/nginx/sites-available/www.example.org :
Ports separated by commas(,) in nginx fashion, like 80, [::]:80 etc
For ssl, just add ssl after the port, e.g. 80, 443 ssl, [::]:80, [::]:443 ssl
Enter ports here:
Enter the www root path(default /var/www/html):
Should this server need to proxy_pass, enter the address here:

Your new website was deployed successfully
Restart nginx to serve it via nginx.

would yield a config file that looks like this:

server {
  root /var/www/html;
  server_name www.example.org;
  listen 80;
   location / {
       try_files $uri $uri/;
   }
}

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

nginx_quickdeploy-0.4.0.tar.gz (9.0 kB view details)

Uploaded Source

Built Distribution

nginx_quickdeploy-0.4.0-py3-none-any.whl (9.8 kB view details)

Uploaded Python 3

File details

Details for the file nginx_quickdeploy-0.4.0.tar.gz.

File metadata

  • Download URL: nginx_quickdeploy-0.4.0.tar.gz
  • Upload date:
  • Size: 9.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.2 importlib_metadata/4.6.4 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.1 CPython/3.9.6

File hashes

Hashes for nginx_quickdeploy-0.4.0.tar.gz
Algorithm Hash digest
SHA256 9d846f9223d5706a5d8a4551c358846dd90c4ee836a4b18bf3413298644c9dc7
MD5 6101fd78b31a1fa4310a65e418c16893
BLAKE2b-256 1608cde1ba5378d95153abe63fc99c3a9be2b10c612503760444db3af52d463e

See more details on using hashes here.

File details

Details for the file nginx_quickdeploy-0.4.0-py3-none-any.whl.

File metadata

  • Download URL: nginx_quickdeploy-0.4.0-py3-none-any.whl
  • Upload date:
  • Size: 9.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.2 importlib_metadata/4.6.4 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.1 CPython/3.9.6

File hashes

Hashes for nginx_quickdeploy-0.4.0-py3-none-any.whl
Algorithm Hash digest
SHA256 3e02c68442709cc6895456579c4d7fd0ae76f61f0cc6dccc4f6a4be64cff2446
MD5 f8b633ecffca867252271b2ddfc63738
BLAKE2b-256 25cb04e174524a7785df4c87b6b37268734d32057f7528055b23c5d8a9ffb50f

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page