58
Read the Docs Eric Holscher http://ericholscher.com OSCON 2011 Thursday, July 28, 2011

Read the Docs: A completely open source Django project

Embed Size (px)

DESCRIPTION

This talk goes over the infrastruct

Citation preview

Page 1: Read the Docs: A completely open source Django project

Read the Docs

Eric Holscherhttp://ericholscher.com

OSCON 2011

Thursday, July 28, 2011

Page 2: Read the Docs: A completely open source Django project

What this talk is

» Talk about the history of Read the Docs

» Technology Involved

» Interesting outcomes of openness

Thursday, July 28, 2011

Page 3: Read the Docs: A completely open source Django project

Who am I

» I come from Django

» Work at Urban Airship

» Like automating systems

Thursday, July 28, 2011

Page 4: Read the Docs: A completely open source Django project

Why I’m here

» Feedback

» Ideas

» Hopefully you’ll learn something too!

» Shameless self-promotion

Thursday, July 28, 2011

Page 5: Read the Docs: A completely open source Django project

The story

Thursday, July 28, 2011

Page 6: Read the Docs: A completely open source Django project

2010 Django Dash

Thursday, July 28, 2011

Page 7: Read the Docs: A completely open source Django project

Charles LeiferBobby Grace (Design)

Me

Thursday, July 28, 2011

Page 8: Read the Docs: A completely open source Django project

Doc Hosting Sucks

» packages.python.org

» Github Pages

» Your own janky cronjobs

Thursday, July 28, 2011

Page 9: Read the Docs: A completely open source Django project

`

Thursday, July 28, 2011

Page 10: Read the Docs: A completely open source Django project

Sphinx

» Standard documentation tool for python

» Uses reStructured Text

Thursday, July 28, 2011

Page 11: Read the Docs: A completely open source Django project

Thursday, July 28, 2011

Page 12: Read the Docs: A completely open source Django project

Had a workable site in 48 hours

Thursday, July 28, 2011

Page 13: Read the Docs: A completely open source Django project

Fully Open Source

Thursday, July 28, 2011

Page 14: Read the Docs: A completely open source Django project

Fully Open Source

» github.com/rtfd/readthedocs.org

» github.com/ericholscher/chef-django-example

» ericholscher.com/tag/chef-series/

Thursday, July 28, 2011

Page 15: Read the Docs: A completely open source Django project

Thursday, July 28, 2011

Page 16: Read the Docs: A completely open source Django project

Officially Hosted

» Celery

» Fabric

» Nose, py.test

» Virtualenv, Pip

» Django CMS

» Django Grapelli/Floppyforms/Sentry

» Lots more

Thursday, July 28, 2011

Page 17: Read the Docs: A completely open source Django project

What makes it tick

Thursday, July 28, 2011

Page 18: Read the Docs: A completely open source Django project

Features

Thursday, July 28, 2011

Page 19: Read the Docs: A completely open source Django project

Git, Hg, Bzr, Svn

Thursday, July 28, 2011

Page 20: Read the Docs: A completely open source Django project

Post commit hooks

Thursday, July 28, 2011

Page 21: Read the Docs: A completely open source Django project

Custom Theme

Thursday, July 28, 2011

Page 22: Read the Docs: A completely open source Django project

Full-text search

Thursday, July 28, 2011

Page 23: Read the Docs: A completely open source Django project

Tags & Branches = Versions

Thursday, July 28, 2011

Page 24: Read the Docs: A completely open source Django project

PDF Generation

Thursday, July 28, 2011

Page 25: Read the Docs: A completely open source Django project

Virtualenvs

Thursday, July 28, 2011

Page 26: Read the Docs: A completely open source Django project

rtfd.org

Thursday, July 28, 2011

Page 27: Read the Docs: A completely open source Django project

Tech

Thursday, July 28, 2011

Page 28: Read the Docs: A completely open source Django project

Subdomains

Thursday, July 28, 2011

Page 29: Read the Docs: A completely open source Django project

CNAME Support

Thursday, July 28, 2011

Page 30: Read the Docs: A completely open source Django project

Cname Support

» Request for docs.fabfile.org

» docs.fabfile.org -> fabric.readthedocs.org

» In middleware, resolve CNAME and determine docs to serve.

» Cache it.

Thursday, July 28, 2011

Page 31: Read the Docs: A completely open source Django project

Architecture +-----------+ | | +-----| Varnish |------+ | +-----------+ | | | +---------+ +---------+ +-------------+ | | | | +--------------+ | |-----| Nginx | | Nginx |----| | | File | +---------+ +---------+ | File | | System | | | | System | +-------------+ +---------+ +--------+ +---------+ +--------------+ | | | | | | | | | | | +---------|Gunicorn |--|Postgres|--|Gunicorn |--------+ | | +---------+ +--------+ +---------+ | | | | | | | | +------------------+ | | | | | +---------------------| Build Server |-------------------+ | | +------------------+

Thursday, July 28, 2011

Page 32: Read the Docs: A completely open source Django project

Haystack & Solr

Thursday, July 28, 2011

Page 33: Read the Docs: A completely open source Django project

Chef

Thursday, July 28, 2011

Page 34: Read the Docs: A completely open source Django project

Nagios & Munin

Thursday, July 28, 2011

Page 35: Read the Docs: A completely open source Django project

Upstart

Thursday, July 28, 2011

Page 36: Read the Docs: A completely open source Django project

REST API

Thursday, July 28, 2011

Page 37: Read the Docs: A completely open source Django project

CoffeeScript

Thursday, July 28, 2011

Page 38: Read the Docs: A completely open source Django project

CLI

Thursday, July 28, 2011

Page 39: Read the Docs: A completely open source Django project

Lessons

Thursday, July 28, 2011

Page 40: Read the Docs: A completely open source Django project

Think about your URLs.Really hard.

Thursday, July 28, 2011

Page 41: Read the Docs: A completely open source Django project

Lay your project out sanely

Thursday, July 28, 2011

Page 42: Read the Docs: A completely open source Django project

Write tests!

Thursday, July 28, 2011

Page 43: Read the Docs: A completely open source Django project

Build around a standard tool

Thursday, July 28, 2011

Page 44: Read the Docs: A completely open source Django project

Passing data through systems is hard

Thursday, July 28, 2011

Page 45: Read the Docs: A completely open source Django project

Serving static files is annoying

Thursday, July 28, 2011

Page 46: Read the Docs: A completely open source Django project

Log. Everything.

Thursday, July 28, 2011

Page 47: Read the Docs: A completely open source Django project

Promote (Hi!)

Thursday, July 28, 2011

Page 48: Read the Docs: A completely open source Django project

Find a designer!

Thursday, July 28, 2011

Page 49: Read the Docs: A completely open source Django project

Follow the Unix Philosophy

Thursday, July 28, 2011

Page 50: Read the Docs: A completely open source Django project

Have a mission

Thursday, July 28, 2011

Page 51: Read the Docs: A completely open source Django project

Open Source Outcomes

Thursday, July 28, 2011

Page 52: Read the Docs: A completely open source Django project

Patches

Thursday, July 28, 2011

Page 53: Read the Docs: A completely open source Django project

Known architecture information

Thursday, July 28, 2011

Page 54: Read the Docs: A completely open source Django project

Slow LorisThursday, July 28, 2011

Page 55: Read the Docs: A completely open source Django project

Trust

Thursday, July 28, 2011

Page 56: Read the Docs: A completely open source Django project

People Writing Docs

Thursday, July 28, 2011

Page 57: Read the Docs: A completely open source Django project

DEMO

Thursday, July 28, 2011

Page 58: Read the Docs: A completely open source Django project

Questions?

» readthedocs.org / rtfd.org

» #readthedocs on Freenode

» github.com/rtfd/readthedocs.org

» [email protected]

Thursday, July 28, 2011