I’ve been thinking about how to make the deployment process simpler for people for a long time. Last year I made a custom buildpack for Heroku that had an
AUTOCONFIGURE_ALL setting, which would take care of everything the Heroku docs have you do when configuring your project for deployment. It worked, but it wasn’t very satisfying because it was a Heroku-centric approach rather than a Django-centric approach.
Recently I came at it from a different angle. I made an app called
django-simple-deploy that gives you a single management command,
simple_deploy. You can call
simple_deploy in two ways, one that only configures your project for deployment and one that automates the entire deployment process.
So if you have a simple project, you can deploy it in three steps:
$ pip install django-simple-deploy # Add simple_deploy to INSTALLED_APPS $ python manage.py simple_deploy --automate-all
This works from either the main branch, or any development branch.
The configuration-only approach requires you to run
heroku create first, then run
simple_deploy, then review changes, commit changes, push the project, and run the initial migration.
Here’s the PyPI page, and the source repository. The code is a bit messy and I’ll refactor it shortly now that it’s working, but I really like the user-facing aspects of the project at this point. If anyone has thoughts about what you’d like to see in this project, I’d love to consider them early before the project gets more set in its ways. It would be really nice to have a simple, stable way to help people make their initial deployments that didn’t require all of us to know all the deployment steps in detail.
I’m also hoping to add support for at least one more platform. Any platform that allows the entire deployment process to be scripted is a candidate. I’m partial to platforms that don’t require a cc for trial deployments, for a variety of reasons.