Some checks failed
Build and Deploy / build-and-deploy (push) Has been cancelled
Extract blog-specific code from the coop monolith into a standalone repository. Includes auth, blog, post, admin, menu_items, snippets blueprints, associated templates, Dockerfile (APP_MODULE=app:app), entrypoint, and Gitea CI workflow. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
1.7 KiB
1.7 KiB
Blog App
Blog and content management application for the Rose Ash cooperative platform.
Overview
This is the blog service extracted from the Rose Ash (Suma Browser) monolith. It handles:
- Blog: Ghost CMS integration for browsing, creating, and editing posts
- Auth: Magic link authentication and user account management
- Admin/Settings: Administrative interface and settings management
- Menu Items: Navigation menu item management
- Snippets: Reusable content snippet management
- Internal API: Server-to-server endpoints for cross-app data sharing
Tech Stack
- Quart (async Flask) with HTMX
- SQLAlchemy 2.0 (async) with PostgreSQL
- Redis for page caching
- Ghost CMS for blog content
Running
# Set environment variables (see .env.example)
export APP_MODULE=app:app
# Run migrations
alembic upgrade head
# Start the server
hypercorn app:app --bind 0.0.0.0:8000
Docker
docker build -t blog .
docker run -p 8000:8000 --env-file .env blog
Directory Structure
app.py # Application factory and entry point
bp/ # Blueprints
auth/ # Authentication (magic links, account)
blog/ # Blog listing, Ghost CMS integration
post/ # Individual post viewing and admin
admin/ # Settings admin interface
menu_items/ # Navigation menu management
snippets/ # Content snippet management
coop_api.py # Internal API endpoints
templates/ # Jinja2 templates
_types/ # Feature-specific templates
entrypoint.sh # Docker entrypoint (migrations + server start)
Dockerfile # Container build definition