The story and tech of Read the Docs

  • 1,151 views
Uploaded on

 

More in: Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads

Views

Total Views
1,151
On Slideshare
0
From Embeds
0
Number of Embeds
1

Actions

Shares
Downloads
14
Comments
0
Likes
3

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • DB -> Django Template -> Sphinx Config -> Jinja Template \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n

Transcript

  • 1. The story and tech of Read the Docs Eric Holscher http://ericholscher.com Djangocon 2011
  • 2. What this talk is» Talk about the history of Read the Docs» Technology Involved» Interesting outcomes of openness» Lessons learned
  • 3. Who am I» I come from Django» Work at Urban Airship» Like automating systems
  • 4. Why I’m here» Feedback» Ideas» Hopefully you’ll learn something too!» Shameless self-promotion
  • 5. The story
  • 6. 2010 Django Dash
  • 7. Charles LeiferBobby Grace (Design) Me
  • 8. Doc Hosting Sucks» packages.python.org» Github Pages» Your own janky cronjobs
  • 9. `
  • 10. Sphinx» Standard documentation tool for python» Uses reStructured Text
  • 11. Had a workable site in 48 hours
  • 12. Fully Open Source
  • 13. Fully Open Source» github.com/rtfd/readthedocs.org» github.com/ericholscher/chef-django-example» ericholscher.com/tag/chef-series/
  • 14. Officially Hosted» Celery» Fabric» Nose, py.test» Virtualenv, Pip» Django CMS» Django Grapelli/Floppyforms/Sentry» mod_wsgi (woo!)
  • 15. DEMO
  • 16. What makes it tick
  • 17. Features
  • 18. Git, Hg, Bzr, Svn
  • 19. Post commit hooks
  • 20. Custom Theme
  • 21. Full-text search
  • 22. Tags & Branches = Versions
  • 23. PDF Generation
  • 24. Virtualenvs
  • 25. rtfd.org
  • 26. Tech
  • 27. Subdomains
  • 28. CNAME Support
  • 29. Cname Support» Request for docs.fabfile.org» docs.fabfile.org -> fabric.readthedocs.org» In middleware, resolve CNAME and determine docs to serve.» Cache it.
  • 30. Architecture +-----------+ | | +-----| Varnish |------+ | +-----------+ | | | +---------+ +---------++-------------+ | | | | +--------------+| |-----| Nginx | | Nginx |----| || File | +---------+ +---------+ | File || System | | | | System |+-------------+ +---------+ +--------+ +---------+ +--------------+ | | | | | | | | | | | +---------|Gunicorn |--|Postgres|--|Gunicorn |--------+ | | +---------+ +--------+ +---------+ | | | | | | | | +------------------+ | | | | | +---------------------| Build Server |-------------------+ | | +------------------+
  • 31. Haystack & Solr
  • 32. Chef
  • 33. Nagios & Munin
  • 34. Upstart
  • 35. REST API
  • 36. CoffeeScript
  • 37. CLI
  • 38. Open Source Outcomes
  • 39. Patches
  • 40. Known architecture information
  • 41. Slow Loris
  • 42. Trust
  • 43. People Writing Docs
  • 44. Lessons
  • 45. Think about your URLs. Really hard.
  • 46. Lay your project out sanely
  • 47. Write tests!
  • 48. Build around a standard tool
  • 49. Passing data through systems is hard
  • 50. Serving static files is annoying
  • 51. Log. Everything.
  • 52. Promote (Hi!)
  • 53. Find a designer!
  • 54. Follow the Unix Philosophy
  • 55. Have a mission
  • 56. Thanks
  • 57. Revsys
  • 58. PSF
  • 59. Mozilla
  • 60. Divio
  • 61. Pyladies
  • 62. Questions?» readthedocs.org / rtfd.org» #readthedocs on Freenode» github.com/rtfd/readthedocs.org» eric@ericholscher.com