Run your flask website in tor using flask_tor.It doesn’t interfere with other tor processes on your computer, so you can use the Tor Browser or the system tor on their own.
Use it only for educational purpose.
- No need root permission
- Multiple instances
- Optional persistent onion address (reuse the same .onion between runs)
Python 3.6+ is required.
pip install flask-tor- Import with
from flask_tor import run_with_tor. - call function
run_with_tor(), store as variable and give it as port argument in flask app.
# flask_tor_example.py
from flask import Flask
from flask_tor import run_with_tor
app = Flask(__name__)
port = run_with_tor(persistent_key_file='~/.flask_tor/hidden_service_key')
@app.route("/")
def hello():
return "Hello World!"
if __name__ == '__main__':
app.run(port=port)Running the example:
python flask_tor_example.py
connecting_to_tor: 100% - Done
* Running on <random_adress>.onion
* Serving Flask app "main"
* Debug mode: off
* Running on http://127.0.0.1:<port>/
If you pass a persistent_key_file path, the first run will create a key file and subsequent runs will reuse it so the onion address stays the same. Set reuse_key=False to force a new address while still updating the stored key.