A while back, I wrote a Twisted email server that would sit between you and Twitter and let you reed and send tweets via email.
With the advent of free cloud hosting, I thought it’d be fun to put it online. I’ll share with you how it’s done, for those of you who are looking for a place to put your Twisted app.
The major problem with these easy hosts is that they assume a simple WSGI app or a background worker, but then the background worker is not accessible from the outside.
First I tried Heroku, then Dotcloud, and finally a couple of others, and just when I had given up, @solomonstre came in:
@pepijndevos dotcloud has beta support for arbitrary tcp/udp ports. Want to try? :)
After some fruitless tries, he shared this repo, which contains scaffolding for a web-accessible Python worker.
The core parts of this thing are dotcloud.yml, where you define a setup script, the ports you want, and the command to run your app.
worker:
type: custom
buildscript: builder
ports:
smpt: tcp
pop3: tcp
process: ~/run
approot: twemail
environment:
PYTHON_VERSION: 2.7
builder
contains a whole lot of pip/virtualenv code, while run
contains something like twistd -ny yourapp.tac
.