Climbing Mount Production: Django’s Missing Deployment Story

Speaker
Speaker: Jan Raasch

🐘️ @janraasch@fosstodon.org
🧑‍💼 Linkedin Profile

After finishing Django’s official tutorial, you have a working app on your computer… and nothing else. Just DEBUG = True and a lone security warning. This talk follows my own path from the foot of “Mount Deployment”: discovering django-simple-deploy and its ecosystem of plugins for platforms like Fly.io and Scalingo, then building dsd-vps-kamal to take a bare VPS from empty to a running Django app. We’ll deploy an app to a clean VPS live - all with HTTPS and a custom domain. We’ll close by looking at what’s still missing, from related projects like django-prodserver to a possible Django deployment working group.

The tutorial ends, and then?

I came to Django from many years of Rails, and loved it immediately. Right up until I finished the official tutorial and looked around for what should come next. Rails ships with production-shaped opinions from rails new onward. Django’s tutorial hands you a working app, a DEBUG = True in settings.py, one lone security warning comment, and… that’s it. No Dockerfile. No deploy command. Just manage.py check --deploy with no clear path on how to go live.

Enter django-simple-deploy

django-simple-deploy fills that gap with a plugin architecture: one core tool, many deployment targets. I built dsd-vps-kamal as one of those plugins: Kamal-powered deployment to any plain VPS, no PaaS lock-in.

Live: zero to running

We’ll deploy a small Django app from a completely clean VPS to a running production instance, live, using dsd-vps-kamal. Expect real terminal output, a real server, and (hopefully :)) a working app by the end.

What’s still missing

One plugin doesn’t mean deployment is solved. I want to leave the audience with on-going related efforts and the open problems I see:

This talk is for you if you only finished the tutorial and want to know how to get your app live on the internet.

This talk is also for you if you are a seasoned Django developer, have opinions about deployment, and are looking for ways to share your experience & expertise to benefit the broader Django community.

About Jan

I started my career in software 14+ years ago on the frontend. Quickly, I acquired backend skills to be able to ship complete features end-to-end.

In a previous life, 14+ years ago, I was a mathematician. It shows in how I approach problems – I love diving deep into complex challenges and finding elegant solutions.

I’ve been consulting as a full-stack developer for over 5 years. Remote since before it was cool, I’ve learned that the best products are built on trust, clear communication, and testing ideas early.

Visit my website