Anonymous committed 6a177f3

adding README.rst

  • Participants
  • Parent commits e084d98

Comments (0)

Files changed (3)

+Silk is a Fabric_ based tool for setting up Python WSGI apps to run on an Ubuntu/Nginx/Supervisord/Gunicorn stack.
+Key Features
+ * Deploy your site to one or more servers with a single command ('silk push').
+ * Automatic configuration of Nginx, Supervisord, and Gunicorn to get your site running.
+ * Isolation of each site into a separate Virtualenv_
+ * Support for differing app config depending on which role you deploy to (a different DB in staging than production, for example).
+ * 
+A silk-enabled project should be layed out something like this::
+  ├── deps.yaml
+  ├──
+  ├──
+  ├── roles
+  │   ├── dev.yaml
+  │   ├── staging.yaml
+  │   └── production.yaml
+  ├── site.yaml
+  └── my-django-project
+Some of those files/folders are required, other are optional:
+1. site.yaml - This is the main config file (comparable to app.yaml in Google App Engine)
+2. deps.yaml - Lists Python packages, Ubuntu apt packages, and apt build dependencies that need to be installed on the server running your site.
+3. - A Fabric_-compatible fabfile that imports Silk's Fabric functions.
+4. roles/\*.yaml - One or more 'role' files that contain the config to be passed into your app depending on the deployment context.
+All of the required files will be created for you with the 'silk skel' command.
+1. - For Django projects it's nice to have a little shim to expose the project as a WSGI app.  I like to call mine
+You can use whatever you like, or nothing at all, depending on your setup.
+2. my-django-project - Silk isn't restricted to Django; any valid WSGI app on your Python path should be servable.  But for Django projects
+I think it makes sense to stick them right there.
+.. _Fabric:
+.. _Virtualenv:
     author='Brent Tubbs',
-    version='0.0.10',
+    version='0.0.11',
     package_dir={'silk': 'silk'},

File silk/

 #!/usr/bin/env python
 import subprocess
-import yaml
 import sys
-from signal import SIGTERM, SIGINT
 import time
 import os
+import pkg_resources
+import shutil
+import random
+from signal import SIGTERM, SIGINT
 import cherrypy
-import pkg_resources, shutil
-import random
+import yaml
 import silk.lib
 def run_til_you_die(args, kill_signal, cwd=os.getcwd(), env={}):