NCTL¶
Fuses ngrok and CloudFront offering a fully automated solution
Platform Supported
Deployments
Kick off¶
Recommendations
Use a dedicated virtual environment
Install nctl
python -m pip install nctl
Initiate - IDE
import nctl
if __name__ == '__main__':
nctl.tunnel()
Initiate - CLI
nctl start
Use
nctl --help
for usage instructions.
Environment Variables¶
Sourcing environment variables from an env file
By default,
nctl
will look for a.env
file in the current working directory.
PORT - Port number to expose using ngrok.
HOST - Hostname of the server that has to be exposed.
NGROK_AUTH - Auth token for ngrok.
NGROK_CONFIG - Ngrok configuration filepath. Auto-created when auth token is specified.
AWS_PROFILE_NAME - AWS profile name.
AWS_ACCESS_KEY_ID - AWS access key ID.
AWS_SECRET_ACCESS_KEY - AWS secret key.
AWS_REGION_NAME - AWS region name.
DISTRIBUTION_ID - Cloudfront distribution ID. Required to update an existing distribution.
DISTRIBUTION_CONFIG - Cloudfront distribution config filepath. Required to create a new distribution.
DEBUG - Boolean flag to enable debug level logging.
LOG - Simple option to switch between
stdout
andfile
logging.LOG_CONFIG - Custom logging configuration. Accepts
.yaml
,.json
and.ini
filetypes.
Coding Standards¶
Docstring format: Google
Styling conventions: PEP 8
and isort
Release Notes¶
Requirement
python -m pip install gitverse
Usage
gitverse-release reverse -f release_notes.rst -t 'Release Notes'
Linting¶
pre-commit
will ensure linting, run pytest, generate runbook & release notes, and validate hyperlinks in ALL
markdown files (including Wiki pages)
Requirement
python -m pip install sphinx==5.1.1 pre-commit recommonmark
Usage
pre-commit run --all-files
Pypi Package¶
Runbook¶
License & copyright¶
© Vignesh Rao
Licensed under the MIT License