Anonymous committed 901c62f

removing old non-rst readme

Comments (0)

Files changed (2)

-include silk/README
+include README.rst
 include silk/deps.yaml
 recursive-include silk/cfg_templates *
 recursive-include silk/site_templates *


-Silk: A smooth kind of Fabric.
-Silk is a tool for deploying Python WSGI apps.  It is designed to "Just Work".
-When faced with tradeoffs between usability and generalizability, I've tried
-to err on the side of usability.
-Silk's goal is to make site deployment as easy as typing something like this:
-silk push -R production
-Silk's other goal is to make it as easy as possible to get to that point.
-Silk is opinionated; rather than trying to provide generic tools applicable to
-a wide range of use cases, it deploys sites in a very specific way:
- - Nginx is used to face the web and proxy requests to the WSGI server.
- - Gunicorn is that WSGI server.
- - Each site is run from a subdirectory of /srv.
- - Ubuntu 10.04 or later is required.
- - Process lauching, monitoring, and logging are handled by Supervisord.
- - Forwarding from Nginx to the WSGI server is done via Unix sockets (not 
- ports).
- - Virtualenv is used to provide Python-level isolation between sites.
-Silk provides a suite of Fabric routines to get a site running on your 
-server(s).  It also provides a couple of command line tools:
- - 'silk', An alias for Fabric's 'fab'.  (This is largely to minimize confusion
- at work, where we already have a different internal project called 'fab'.)
- - 'freeze2yaml', a tool to which you can pipe the output of 'pip freeze', and
- get back a yaml-formatted list of python packages for storing in silk's deps.yaml
- format.
- - 'yaml2freeze', does the reverse of freeze2yaml.
-The file/directory structure of a silk-enabled project looks like this:
-├── deps.yaml
-├── hello_django
-├── roles
-│   ├── dev.yaml
-│   ├── production.yaml
-│   └── staging.yaml
-└── site.yaml
-In rough order of importance, here's what those files and folders are for:
- - site.yaml - Main config file for the site.  Similar (but not identical) to 
- Google App Engine's app.yaml.
- - deps.yaml - Lists Python and Ubuntu packages and build dependencies.
- - - A Fabric fabfile that imports Silk's suite of functions.  You 
- can add your own functions in here too.
- - hello_django - A sample Django project.  You could have anything there.
- - - A shim that presents hello_django as membrane:app for WSGI.
- - roles - A folder containing config files for the various deployment contexts
- of your site.  You can have as many of these as you like, and name them 
- whatever you want.
-Silk is similar in ambition to Ian Bicking's Silver Lining project; to make
-deploying a site to your own servers as simple as deploying an app to Google
-App Engine.
-Key differences between Silk and Silver Lining:
- - Silk uses nginx instead of Apache.
- - Silk uses gunicorn instead of mod_wsgi. (More WSGI options, especially
- CherryPy, may be made available in the future.)
- - Silk embraces Fabric instead of eschewing it.
- - Silk does not yet provide any persistence (database) support, other than 
- helping you inject role-specific configuration into your app at runtime.
-Since we use CherryPy a lot at work, I'll likely add a CherryPy option in
-addition to Gunicorn.  (Or commit blasphemy against fumanchu and figure out
-how to run CherryPy apps from Gunicorn.)
-I'd really like the option to fetch the role configs from a web server instead 
-of just the 'roles' folder.
-A pull option, so you can set a cron job to check with your config server
-every so often and update your site when necessary.