I started django-simple-deploy back in 2021, and for a long time it only worked on specific OSes, and supported specific platforms. With the 0.6.1 release, it should work for most people on most OSes.
If you have a project that works locally, and you have the CLI installed for Fly.io, Platform.sh, or Heroku, you can deploy your project in three steps:
$ pip install django-simple-deploy
# Add simple_deploy to INSTALLED_APPS.
$ python manage.py simple_deploy --platform fly_io --automate-all
--automate-all flag, simple_deploy will inspect your project, create the appropriate resources, make the appropriate configuration changes, commit those changes, push your project, and run the initial migration. Your deployed project should appear automatically in a new browser tab. You can also specify
heroku as the
I actually recommend the configuration-only usage. The steps are a little longer, but everything happens over the command line. In this usage, you create a new project using the platform’s CLI, and then run simple_deploy. It does all the configuration, and then you run that platform’s
push command. All the configuration work is contained in a single commit. For this usage, see the quick start guide for the platform you’re working with.
This might seem like a project that’s entirely aimed at people new to Django. But during the development period, it’s proven quite useful to experienced Django people who want to try a new platform, among other uses.
The project is messy internally at the moment, but my next focus is a bunch of refactoring work. Any bugs reported should be more straightforward to address than the issues that have arisen up to this point. If you make a trial run and want to share your results, there’s a Documenting a test run issue suited for sharing your experience, whether it was successful or not.
I’d love to know how well this works for people, and where it’s still failing.