{ "info": { "author": "Nate Aune", "author_email": "nate@appsembler.com", "bugtrack_url": null, "classifiers": [], "description": "django-deployer\n===============\n\ndjango-deployer is a deployment tool for Django that currently deploys any Django app to the following PaaS providers: \nDotcloud, Stackato and Google App Engine.\n\nThe goal of django-deployer is to minimize the effort to deploy a Django app to any of the popular PaaS providers. It asks a series of questions about your Django project, and then generates a generic deploy.yml file that captures all of your project's requirements. django-deployer then uses this deploy.yml file to translate these requirements into specific configurations for each PaaS. \n\nSee the roadmap below for adding support for more providers: Heroku, OpenShift, Elastic Beanstalk and Gondor.\n\nGetting Started\n---------------\n\nTo install django-deployer, use ``pip`` to fetch the package from PyPi:\n\n.. code:: bash\n\t\n $ pip install django-deployer\n\nNow from your project's root directory run the ``deployer-init`` command once, and then run ``fab setup``. \n\nIn this example (using `paasbakeoff `_), we are going to tell django-deployer to prepare our project to deploy to Google App Engine.\n\n.. code:: bash\n\n $ deployer-init\n $ fab setup\n\n\tWe need to ask a few questions before we can deploy your Django app\n\t* What is your Django project directory name?\n\t (This usually contains your settings.py and a urls.py) mywebsite\n\t* What is your Django settings module? [mywebsite.settings] \n\t* Where is your requirements.txt file? [requirements.txt] mywebsite/requirements/project.txt\n\t* What version of Python does your app need? [Python2.7] \n\t* What is your STATIC_URL? [/static/] \n\t* What is your MEDIA_URL? [/media/] \n\t* Which provider would you like to deploy to (dotcloud, openshift, appengine)? appengine\n\t* What's your Google App Engine application ID (see https://appengine.google.com/)? djangodeployermezz\n\t* What's the full instance ID of your Cloud SQL instance (should be in format \"projectid:instanceid\" found at https://code.google.com/apis/console/)? djangomezzanine:djangomezzdb\n\t* What's your database name? appenginedemo\n\t* Where is your Google App Engine SDK location? [/usr/local/google_appengine] \n\tCreating a deploy.yml with your app's deploy info...\n\tCreated /Users/nateaune/Dropbox/code/paasbakeoff/deploy.yml\n\n\tJust a few more steps before you're ready to deploy your app!\n\n\t1. Run this command to create the virtualenv with all the packages and deploy:\n\n\t $ fab deploy\n\n\t2. Create and sync the db on the Cloud SQL:\n\n\t $ sh manage.sh cloudcreatedb\n\t $ sh manage.sh cloudsyncdb\n\n\t3. Everything is set up now, you can run other commands that will execute on your remotely deployed app, such as:\n\n\t $ sh manage.sh dbshell\n\n\tDone.\n\nNow inspect your project directory and you will see that a file ``deploy.yml`` and various config files were created. \n\n**Note:** if you're going to try different PaaS providers, it's recommended that you make a separate git branch for each one, because when you re-run ``fab setup`` it could inadvertently overwrite the config files from the first run.\n\nUpgrading\n---------\n\nYou will notice that when we ran ``pip install django-deployer`` it created a script ``deployer-init``. When you ran this script, it created a fabfile.py in your current directory that imports the tasks module from the ``django-deployer`` project.\n\n.. code:: python\n\n\tfrom django_deployer.tasks import *\n\nThis means that you can update the django-deployer package and don't need to regenerate the fabfile.\n\n.. code:: bash\n\n\t$ pip install -U django-deployer\n\n\nContribute\n----------\n\nIf you want to develop django-deployer, you can clone it and install it into your project's virtualenv:\n\n.. code:: bash\n\n $ source bin/activate\n (venv)$ git clone git://github.com/natea/django-deployer.git\n (venv)$ cd django-deployer\n (venv)$ python setup.py develop\n\nOr you can also install an editable source version of it using pip:\n\n.. code:: bash\n\n $ source bin/activate\n (venv)$ pip install -e git+git://github.com/natea/django-deployer.git#django-deployer\n\nWhich will clone the git repo into the ``src`` directory of your project's virtualenv.\n\nRoadmap\n-------\n\n- Add support for Heroku, OpenShift, Amazon Elastic Beanstalk and Gondor\n- Perform some intelligent code analysis to better guess the settings (see the djangolint project - https://github.com/yumike/djangolint)\n- Write tests!\n- Caching (Redis, Memcache)\n- Celery\n- Email\n- SSL\n\n\nChangelog\n---------\n\n0.1.6 (2013-04-10)\n++++++++++++++++++\n\n- Use a createdb.py that handles timeouts better\n- Remove dj-database-url since it doesn't work with Dotcloud\n- Prompt for location of manage.py (for discrepancy in project layouts in Django 1.3 vs 1.4)\n- dotcloud.yml file needs DJANGO_SETTINGS_MODULE or else manage.py won't work\n- dotcloud.yml file needs UTF-8 or else browsing Mezzanine gallery won't work\n- Let user choose their admin password instead of hardcoding it\n- Make sure STATIC_ROOT and MEDIA_ROOT are defined in settings_dotcloud.py\n- If project already has a top level requirements.txt, don't do anything\n- Add validators for ensuring that requirements file exists, \n- Validate the admin password and that the user chose a valid provider\n- Ensure that the user doesn't leave fields blank\n\n0.1.5 (2013-04-08)\n++++++++++++++++++\n \n- Need a MANIFEST.in in order to find the .txt and .rst files (@natea)\n- Fixed bug with misnamed CHANGES.txt -> CHANGES.rst (@natea)\n- Fixed bug with missing README.rst (@natea)\n\n0.1.1 (2013-03-26)\n++++++++++++++++++\n\n- Added support for Google App Engine (@natea, @littleq0903)\n\n0.1.0 (2012-09-07)\n++++++++++++++++++\n\n- Initial version for Stackato and Dotcloud (@natea, @johnthedebs)", "description_content_type": null, "docs_url": null, "download_url": "UNKNOWN", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "http://natea.github.io/django-deployer", "keywords": "PaaS Django Dotcloud Stackato Heroku Gondor AWS OpenShift GAE appengine fabric deployment", "license": "MIT", "maintainer": null, "maintainer_email": null, "name": "django-deployer", "package_url": "https://pypi.org/project/django-deployer/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/django-deployer/", "project_urls": { "Download": "UNKNOWN", "Homepage": "http://natea.github.io/django-deployer" }, "release_url": "https://pypi.org/project/django-deployer/0.1.6/", "requires_dist": null, "requires_python": null, "summary": "Django deployment tool for popular PaaS providers", "version": "0.1.6" }, "last_serial": 789460, "releases": { "0.1.1": [ { "comment_text": "", "digests": { "md5": "6ea5d98ce9a9dfdd2c4c00e84eb1efbe", "sha256": "3c68e1baa7ccacbfdfdda453838e6853df3d974caab5c262c00a6b6571aafad4" }, "downloads": -1, "filename": "django-deployer-0.1.1.tar.gz", "has_sig": false, "md5_digest": "6ea5d98ce9a9dfdd2c4c00e84eb1efbe", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9546, "upload_time": "2013-04-08T19:11:23", "url": "https://files.pythonhosted.org/packages/37/b9/691251dcdd34a91d63edb1097255ffe14d166a90ba22f398afaf8fb0e325/django-deployer-0.1.1.tar.gz" } ], "0.1.2": [ { "comment_text": "", "digests": { "md5": "2d2c61150151e4e71e9da434c8ceea20", "sha256": "c848bcb68f3de17740b7fdc346609506c18dd49a54b78ea9d3c5aa0207603e13" }, "downloads": -1, "filename": "django-deployer-0.1.2.tar.gz", "has_sig": false, "md5_digest": "2d2c61150151e4e71e9da434c8ceea20", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9688, "upload_time": "2013-04-08T19:47:27", "url": "https://files.pythonhosted.org/packages/c5/6a/3a5e43c5467852fa5339bea628506e80cd2d38c8e3a7eed42b7b2f2a4784/django-deployer-0.1.2.tar.gz" } ], "0.1.3": [ { "comment_text": "", "digests": { "md5": "aff0ef53939fb577a840e5b3054e2b7a", "sha256": "f64d7b9d4581ec344228366c01a62b1e099051a115d38b70e7f32fc3ed97736a" }, "downloads": -1, "filename": "django-deployer-0.1.3.tar.gz", "has_sig": false, "md5_digest": "aff0ef53939fb577a840e5b3054e2b7a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10212, "upload_time": "2013-04-08T20:15:33", "url": "https://files.pythonhosted.org/packages/04/4d/7434f7c0d1aa3790d355ece7faa2bb39bf5e1af5524298b6a7ba42041863/django-deployer-0.1.3.tar.gz" } ], "0.1.4": [ { "comment_text": "", "digests": { "md5": "8d61d8726d2977c3b9b1e7a0db66a819", "sha256": "5e22c1636528a08f9d78aa93cc3723e2a1af1e975bcde527c65fcd5edad3c116" }, "downloads": -1, "filename": "django-deployer-0.1.4.tar.gz", "has_sig": false, "md5_digest": "8d61d8726d2977c3b9b1e7a0db66a819", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11448, "upload_time": "2013-04-08T20:34:11", "url": "https://files.pythonhosted.org/packages/75/82/021b6d6aae165d08df9d64d4d77d83d9de613a2dc8793d12121d482c6729/django-deployer-0.1.4.tar.gz" } ], "0.1.5": [ { "comment_text": "", "digests": { "md5": "3a3a5f6012cdccc5b46acf07ead5edae", "sha256": "30675446fcf4cf43fe62657b23bf7f6bbe2e8df14fb1d231933717f2dbca93ab" }, "downloads": -1, "filename": "django-deployer-0.1.5.tar.gz", "has_sig": false, "md5_digest": "3a3a5f6012cdccc5b46acf07ead5edae", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 14163, "upload_time": "2013-04-08T21:25:28", "url": "https://files.pythonhosted.org/packages/7f/4e/67b26e99266ab226f3a4e3bab585d637e9bf2f737be2c4e7ecd17fbfec20/django-deployer-0.1.5.tar.gz" } ], "0.1.6": [ { "comment_text": "", "digests": { "md5": "c564eea6a2fbe2fe3afcec2493444d57", "sha256": "550c8b4757eed92710c38e114ee060a2c6a3c140ba6f82da853e4e3ce0ee35e8" }, "downloads": -1, "filename": "django-deployer-0.1.6.tar.gz", "has_sig": false, "md5_digest": "c564eea6a2fbe2fe3afcec2493444d57", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 16020, "upload_time": "2013-04-10T21:03:10", "url": "https://files.pythonhosted.org/packages/fa/7a/f0d90efc74f473edc431d717a99923f36f8485ee08e08089d7bd2b94f21e/django-deployer-0.1.6.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "c564eea6a2fbe2fe3afcec2493444d57", "sha256": "550c8b4757eed92710c38e114ee060a2c6a3c140ba6f82da853e4e3ce0ee35e8" }, "downloads": -1, "filename": "django-deployer-0.1.6.tar.gz", "has_sig": false, "md5_digest": "c564eea6a2fbe2fe3afcec2493444d57", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 16020, "upload_time": "2013-04-10T21:03:10", "url": "https://files.pythonhosted.org/packages/fa/7a/f0d90efc74f473edc431d717a99923f36f8485ee08e08089d7bd2b94f21e/django-deployer-0.1.6.tar.gz" } ] }