I work on Lizard (lizard.build). We wrote a Django deployment guide and tested it with Django 6.1.1 and Python 3.13.
The guide uses an explicit WSGI module in the Gunicorn command, collects static files for WhiteNoise in a Docker build, and applies database migrations as a separate step. It covers ALLOWED_HOSTS, CSRF_TRUSTED_ORIGINS, runtime secrets, and PostgreSQL configuration.
Our test checked migrations, a database write and read, static assets, and a form with both valid and missing CSRF tokens. The guide also states the limits of the test; the small test app is not a complete security setup for a production project.
Feedback on the deployment steps or gaps in the explanation would help us improve it. The test notes list the versions and checks.
Oh, nice @yuraoak. I think any part of your tutorial that references part of lizard should have a link to it. For example
Choose a database configuration that consumes your service’s connection values. Set a scoped Managed Postgres reference if you use that addon.
That does a food job of linking out to the variables. I’m not quite sure what’s meant by choosing a db configuration that consumes the services connection values though. Will a beginner understand that? I have not looked at Lizard so I’m not even a beginner.
Another small tweak suggestion:
Your settings must parse DATABASE_URL into Django’s DATABASES setting.
It’s probably worth giving them the code to read it from an environment variable or give them the library that will.
Lastly, have you considered creating a django-simple-deploy plugin? It’d be a way for you to automate a lot of this for your users that use Django.
Thanks for suggesting django-simple-deploy. We’ve now updated the guide and tested the example on Lizard with Managed Postgres, including migrations, database reads and writes, CSRF, and admin static files.
We haven’t built a plugin yet. We’re considering a small plugin that handles the Django configuration and uses our existing CLI for provisioning and deployment. We’d start with the setup covered by the guide and test it on existing projects before expanding support.