// the find
liangliangyy/DjangoBlog
🍺基于Django的博客系统
A full-featured personal blog platform built on Django 5.2 and Python 3.10+, targeting Chinese-speaking developers who want a self-hosted blog with batteries included. It ships with OAuth logins, full-text search (Whoosh or Elasticsearch), Redis caching, and a hook-based plugin system — all configured through Django's standard settings.
The plugin system is genuinely well-designed: hooks fire at named lifecycle points (after_article_body_get, etc.) so plugins stay completely decoupled from core code. The modern frontend stack (Alpine.js + HTMX + Tailwind, built with Vite) avoids the usual Django blog trap of shipping jQuery from 2015. Database migrations are clean and indexed properly — migration 0007 adds composite indexes on type/status/published and status/views, which shows someone actually thought about query patterns. Docker and Kubernetes deployment configs are included and look production-realistic, not the usual throw-everything-in-one-container tutorial setup.
MySQL-first is an odd choice in 2026 when PostgreSQL is the obvious pick for a Django project with full-text search needs — Whoosh is slow and Elasticsearch is operationally heavy, and neither would be needed if they'd used pg_trgm or pgvector. The settings.py is the single configuration point with no environment-based override pattern shown, so new users will hardcode credentials there and commit them. English documentation exists but feels like an afterthought — the README, docs, and most comments are Chinese, so non-Chinese contributors will hit walls quickly. The owntracks module (GPS location logging) has nothing to do with blogging and ships enabled by default with no explanation of why it exists.