# 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 ```bash # 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 ```bash 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 ```