https://github.com/jeanslw/MicroBlog
3.6K
Built with Flask 3.1, it features article publishing and management, Markdown uploads, code highlighting, image uploads, comments and likes, article categories, a banner carousel, and bilingual support (Chinese/English). The UI rocks a glassmorphism transparent style with awesome dynamic backgrounds (aurora / starry sky / flowing light / bubbles / classic). There's a floating color palette button at the bottom right to switch styles with one click, and your choice is saved in localStorage. All static resources are loaded locally, it supports SQLite and MySQL, and comes with 301 automated tests built in.
| Module | Features |
|---|---|
| Article Management | Markdown editor / Markdown article upload, code highlighting (Prism), draft/publish status management |
| Comment Interaction | Article comments, replies, IP spam-like prevention |
| Category Navigation | Article category classification, sidebar category filtering |
| RSS Subscription | RSS 2.0 / Atom subscription |
| Search Function | Full-site article search functionality |
| Banner Carousel | Backend banner management, image upload & sorting |
| Internationalization | Chinese/English auto-switching, follows browser language, dropdown manual switch |
| UI Theme | Glassmorphism transparent UI, 12 built-in 1920x1080 HD background images, one-click switch via floating palette; custom background can be uploaded or set by URL in the admin panel; choice remembered in localStorage |
| Security | CSRF protection, HTML sanitization against XSS (nh3), login brute-force protection, email-based password recovery, secure sessions, image decompression bomb protection |
| Database | SQLAlchemy ORM, seamless SQLite/MySQL switching |
| Testing | pytest 301 tests covering auth/blog/comments/security/i18n |
| Component | Version | Description |
|---|---|---|
| Python | 3.9+ (3.11 recommended) | Runtime |
| MySQL | 5.7+ / 8.0+ (optional) | Production database; SQLite can be used for dev/test instead |
| pip | latest | Python package manager |
| Docker | 20.10+ (optional) | Containerized deployment, no env setup needed |
| Docker Compose | v2+ (optional) | Multi-container orchestration |
SQLite mode: No database installation required, works out of the box. Docker mode: Copy the config template, fill in the database passwords, and one command brings up web + db + nginx — see [Section
Content type
Image
Digest
sha256:a705be1c9…
Size
192.1 MB
Last updated
9 days ago
docker pull jeanslw/microblog