ajdavis / motor-blog

Blog based on Tornado, MongoDB, and Motor. To be used with MarsEdit.
148 stars 40 forks source link

Deploy pattern #23

Open wsantos opened 11 years ago

wsantos commented 11 years ago

Sorry create this thing as an issue, but I'm wondering what pattern use for a production deploy, what you use Jesse? You blog is a git clone of master branch ? Do you suggest any pattern ?

ajdavis commented 11 years ago

Yeah, I guess I could document this better.

emptysquare.net is a Rackspace server. I made a Python 2.7 virtualenv on it, cloned Motor-Blog's master branch there, and installed its requirements.txt.

I put a copy of motor_blog.conf.example in ~/etc/motor_blog.conf and customized it a bit.

I put a copy of the example supervisord.conf in ~/etc as well.

Same for nginx.conf.

NGinx and Supervisord are started from /etc/init.d scripts.

Supervisor runs mongod and four instances of Motor-Blog's server.py.

Supervisor, MongoDB, and Motor-Blog are all configured to log to ~/log/.

That's about it. The scripts in /etc/ are a good starting point. I can add my init.d scripts there too.

ajdavis commented 11 years ago

Oh, supervisord is installed into its own virtualenv with pip, so the init.d script that runs it from there.

ajdavis commented 11 years ago

Deployment is a hack: I ssh into emptysquare.net, git pull the latest Motor-Blog, then restart server.py with supervisorctl.

wsantos commented 11 years ago

Thanks ajdavis.

ajdavis commented 11 years ago

I'm actually going to keep this open until I've updated the documentation. I could be useful to people. I also want to review @bdarnell's tornado-production-skeleton for ideas.