cd /news/developer-tools/django-deploy-probes-deployment-prob… · home topics developer-tools article
[ARTICLE · art-13136] src=dev.to ↗ pub= topic=developer-tools verified=true sentiment=↑ positive

django-deploy-probes — deployment probe endpoints for Django

The article introduces **django-deploy-probes**, a small Django package that provides standardized health check endpoints (`/healthz`, `/readyz`, `/startupz`, `/version`) for production deployment workflows like Kubernetes probes and Docker health checks. It separates lightweight liveness checks from dependency checks (e.g., database, Redis) by design, placing the latter in `/readyz` or `/startupz` to avoid mixing concerns. The package aims to replace the inconsistent, repeatedly rewritten health check logic found across Django projects with a reusable, simple solution.

read1 min views22 publishedMay 24, 2026

When deploying Django applications, I kept running into the same problem: health check endpoints were implemented differently in every project, and liveness checks often got mixed together with dependency checks.

I built django-deploy-probes

to make that cleaner.

It is a small Django package that adds these endpoints:

/healthz

/readyz

/startupz

/version

The package is meant for production deployment workflows such as Docker health checks, Kubernetes liveness/readiness/startup probes, blue-green deployments, rolling deployments, and CI/CD deployment validation.

One design choice I cared about was keeping /healthz

lightweight. Database, Redis, Celery, or other dependency checks do not belong in a liveness endpoint by default, so those checks are meant to live in /readyz

or /startupz

and be enabled explicitly through settings.

The goal was not to build a full monitoring system, but to provide a small, reusable package for a piece of deployment logic that tends to get rewritten over and over in Django projects.

Installation is simple:

pip install django-deploy-probes

Then include the URLs in your Django project:

from django.urls import include, path

urlpatterns = [
    path("probes/", include("django_deploy_probes.urls")),
]

That gives you endpoints like:

  • /probes/healthz
  • /probes/readyz
  • /probes/startupz
  • /probes/version The first public release is 0.1.0, and it is available on both GitHub and PyPI.

GitHub: https://github.com/emfpdlzj/django-deploy-probes

PyPI: https://pypi.org/project/django-deploy-probes/

I’d appreciate feedback from people running Django in production, especially around the endpoint split, default behavior, and whether there are deployment cases I should support better.

── more in #developer-tools 4 stories · sorted by recency
── more on @django 3 stories trending now
sponsored brought to you by zahid.host 4,200+ EU-deployed projects
reading about agents? ship yours in a single git push.

Run your AI side-project on zahid.host

EU-based hosting, git-push deploys, automatic HTTPS, no cold starts. Free tier with a custom domain — perfect for shipping the agent you just read about.

$git push zahid main
Live at https://your-agent.zahid.host
Get free account → Pricing
from €0/mo · no card required
LIVE [news/django-deploy-probes…] indexed:0 read:1min 2026-05-24 ·