Skip to main content

Turn any Gunicorn application into a Tor Onion Service

Project description

Gunicorn Torify

Turn any Gunicorn server into a Tor Onion Service

Installation

It's available on PyPI! Just use pip to install

$ pip install gunicorn-torify

You must have Tor installed to use gunicorn-torify. This would might look like

$ pacman -S tor    # Arch
$ apt install tor  # Debian/Ubuntu
$ apk add tor      # Alpine

Usage

If you don't use a Gunicorn config file, then create some python file such as ./gunicorn-conf.py with the line

from gunicorn_torify import on_starting, on_exit

Then when starting Gunicorn, be sure to include the --config ./gunicorn-conf.py flag.

Persistence

By default, the Onion Service will store its secret keys in ./secrets/tor. To override this you can set the TOR_SERVICE_DIR environment variable before running for the first time.

According to the tor docs this directory contains private keys and should be treated carefully. If deploying in Docker, it's important to persist this directory (otherwise your onion address could change) either with a named volume or a mapped directory. An example deployment could be done with

$ docker volume create my-onion-service
$ docker run -v my-onion-service:/app/secrets/tor afiorillo/gunicorn-torify:flask

Contributing

To setup the development environment, it's convenient to use pyenv and the pyenv virtualenv plugin. For example

$ pyenv virtualenv 3.8.1 gunicorn-torify-3.8
$ pyenv activate gunicorn-torify-3.8
$ pip install -r requirements_dev.txt

TODO

  • Proper tests

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

gunicorn-torify-19.12.2421.tar.gz (3.0 kB view hashes)

Uploaded Source

Built Distribution

gunicorn_torify-19.12.2421-py3-none-any.whl (4.5 kB view hashes)

Uploaded Python 3

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