intent/intent/core/middleware.py
Alec Perkins 950a4030ee Scaffold Phase 0: Django project, deploy config, base layout
Django 5.2 with dev/test/prod settings, SQLite tuned for Litestream
(WAL, IMMEDIATE transactions), ULID primary keys via a shared base
model, and a custom User model ahead of the first migration.

Minimal accessible base template with dark mode via color-scheme and
an optional theme picker. /healthz answers before host validation so
Fly checks pass.

Dockerfile (dev and prod targets), compose for local dev, fly.toml
with placeholder app/region, Litestream backups to B2, and a Forgejo
Actions workflow. Migrations run in bin/start because Fly release
machines don't mount volumes.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-27 06:59:34 -04:00

16 lines
548 B
Python

from django.db import connection
from django.http import HttpResponse
class HealthCheckMiddleware:
"""Answer /healthz before host validation, so Fly's checks pass whatever Host they send."""
def __init__(self, get_response):
self.get_response = get_response
def __call__(self, request):
if request.path == "/healthz":
with connection.cursor() as cursor:
cursor.execute("SELECT 1")
return HttpResponse("ok", content_type="text/plain")
return self.get_response(request)