___ ___ ___ ___ ___ ___
/\__\ /\ \ /\__\ /\ \ /\__\ /\ \
/:/ / /::\ \ /::| | /::\ \ /:/ / /::\ \
/:/__/ /:/\:\ \ /:|:| | /:/\:\ \ /:/__/ /:/\:\ \
/::\ \ ___ /:/ \:\ \ /:/|:| |__ /:/ \:\ \ /::\ \ ___ /:/ \:\ \
/:/\:\ /\__\ /:/__/ \:\__\ /:/ |:| /\__\ /:/__/ \:\__\ /:/\:\ /\__\ /:/__/ \:\__\
\/__\:\/:/ / \:\ \ /:/ / \/__|:|/:/ / \:\ \ \/__/ \/__\:\/:/ / \:\ \ /:/ /
\::/ / \:\ /:/ / |:/:/ / \:\ \ \::/ / \:\ /:/ /
/:/ / \:\/:/ / |::/ / \:\ \ /:/ / \:\/:/ /
/:/ / \::/ / /:/ / \:\__\ /:/ / \::/ /
\/__/ \/__/ \/__/ \/__/ \/__/ \/__/
So, uh, honcho is basically Foreman, but uh, honcho instead.
Seriously? honcho is a Python port of Foreman.
Why a port? Well, only two good reasons, and only one of which you're going to be interested in:
-
I work in Python-only development environments, where installing Ruby just so I can run Procfile apps seems a bit crazy. Python, on the other hand, is part of the LSB, and so even in "Ruby-only" environments, Python will still be around.
-
I wanted to learn about asynchronous I/O in Python.
pip install honcho
If you're one of those sick people who's into this kind of thing, you can probably also easy_install honcho
. But please, don't: get with the program.
- Read the Foreman documentation
- Run
honcho -h
and see which bits of Foreman I've got round to implementing
Or, the 30-second version:
-
Write a Procfile:
$ cat >Procfile <<EOM web: python serve.py redis: redis-server EOM
-
Optional: write a .env file to configure your app:
$ cat >.env <<EOM PORT=6000 REDIS_URI=redis://localhost:6789/0 EOM
-
Run the app with honcho:
$ honcho start