Configuring an internal ReadTheDocs

Project Overview

  • ReadTheDocs application to serve project documentation
  • Simple and Straightforward, minimal overhead
  • Modified to point to our domain, not readthedocs
  • Restricted Public Access

Technology Overview

ReadTheDocs comes with the following technology stack:

  • Varnish
  • Nginx
  • gunicorn
  • postgres
  • python/django
  • solr (haystack search)
  • Chef

In an effort to align with some of the technologies I have some experience with, I modified the technology stack slightly, its now as follows:

* supervisor
* gunicorn
* memcached
* nginx
* python/django
* mysql
* whoosh (haystack search)
* fabric

Key Functionality Overview

Setup Steps

Provision a server: * Provision an ubuntu 11.10 instance (I used rackspace, other versions have not been tested)

Clone and setup the project locally: * git clone * mkvirtualenv --distribute readthedocs * pip install -r pip_requirements.txt * modify the file by changing the server ip and root password to the values returned by your instance provisioner * run fab -f stage_rtd

Post Installation Steps: * Try * Change the root password to mysql!! * Change the test user password!! * Configure IP Tables to be as restrictive as you need * Enable email via django settings * Upload a test project (test/test) * Modify the nginx settings to support (project name) support:

Some Gotcha’s

  • If builds fail, information on why they fail is sparse
John M Costa, III
Software Engineer, Cyclist, Weight Lifter, Video Gamer.

Software Engineer with over 15 years of technical experience in the IT industry. I enjoy solving problems with automation.


comments powered by Disqus