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