Getting Started
Getting started with Django Hurricane takes less than two minutes.
1. Installation
Install Hurricane using Astral uv (recommended) or standard pip:
uv
uv add django-hurricane
pip
pip install django-hurricane
2. Configure Django settings.py
Add "hurricane" to your INSTALLED_APPS:
settings.py
INSTALLED_APPS = [
# Standard Django apps...
"django.contrib.admin",
"django.contrib.auth",
"django.contrib.contenttypes",
"django.contrib.sessions",
"django.contrib.messages",
"django.contrib.staticfiles",
# Add Hurricane:
"hurricane",
]
3. Launching the Server
Run the serve management command:
python manage.py serve
Hurricane will initialize:
2026-10-21 12:00:00 INFO hurricane.server.general Granian-powered Django web server. Version: 2.0.0rc1
2026-10-21 12:00:00 INFO hurricane.server.fast_404 Fast-404 active in prefix mode (9 prefixes, 31 signatures)
2026-10-21 12:00:00 INFO hurricane.server.limiter Rate limiter active: 10.0 req/s (burst: 30) [IP Header: X-Forwarded-For]
2026-10-21 12:00:00 INFO hurricane.server.general Starting probe application running on port 8001 with route liveness-probe: /alive, readiness-probe: /ready, startup-probe: /startup
2026-10-21 12:00:00 INFO hurricane.server.general Starting Prometheus metrics exporter on port 8001 with route /metrics
2026-10-21 12:00:00 INFO hurricane.server.general Starting HTTP Server on port 8000
2026-10-21 12:00:00 INFO hurricane.server.general Startup time is 0.114 seconds
4. Verifying Endpoints
Open a new terminal window to test your endpoints:
Application Traffic (Port 8000):
curl http://localhost:8000/
# Returns your Django application's root view
Kubernetes Health Probes (Port 8001):
curl http://localhost:8001/alive
# Returns: alive (HTTP 200 OK)
curl http://localhost:8001/ready
# Returns: OK (HTTP 200 OK)
curl http://localhost:8001/startup
# Returns: Startup was finished ... (HTTP 200 OK)
Prometheus Metrics (Port 8001):
curl http://localhost:8001/metrics
# Returns Prometheus metric exposition:
# request_counter 1.0
# response_time_average 2.15
# request_queue_length 0
