Hi everyone,
I released `django-deploy-probes` v0.1.0, a small Django package for runtime deployment probe endpoints.
It adds:
- `/healthz` for lightweight liveness checks
- `/readyz` for dependency readiness checks
- `/startupz` for startup/bootstrap checks, such as pending migrations
- `/version` for deployed service metadata
The package is focused on deployment validation workflows rather than full monitoring. Typical use cases are Docker health checks, Kubernetes probes, blue/green deployments, rolling deployments, and CI/CD deployment gates.
PyPI:
GitHub:
Basic Usage:
INSTALLED_APPS = [
"django_deploy_probes",
]
from django.urls import include, path
urlpatterns = [
path("", include("django_deploy_probes.urls")),
]
Example settings:
DEPLOY_PROBES = {
"SERVICE_NAME": "my-django-app",
"ENVIRONMENT": "prod",
"VERSION": "1.2.0",
"READY_CHECKS": ["database", "redis", "celery"],
"STARTUP_CHECKS": ["migrations"],
"DETAIL_LEVEL": "none",
"EXPOSE_CHECK_MESSAGES": False,
}
A few design choices:
/healthzintentionally does not touch the database, Redis, Celery, cache, or external services./readyzonly checks dependencies that are explicitly enabled.- Custom check messages are hidden by default to avoid leaking sensitive details.
X-Forwarded-Foris not trusted by default; security checks useREMOTE_ADDR.
I would appreciate feedback from people running Django in production, especially on:
- whether the default settings are practical
- whether the endpoint behavior matches common deployment expectations
- whether the security options are enough for real internal/public probe setups
- what checks would be useful in a future
0.2.x
Thanks.