This repository has been archived on 2026-02-24. You can view files and clone it. You cannot open issues or pull requests or push a commit.
giles bae37d97ae
All checks were successful
Build and Deploy / build-and-deploy (push) Successful in 1m41s
CI: copy sibling app models into build context for cross-domain imports
Phases 1-3 split models by domain ownership, but cross-app imports
still exist (e.g. cart imports market.models.CartItem). In Docker
each app only has its own code. The CI step now copies sibling app
model packages into the build context before docker build.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-11 15:01:50 +00:00

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
Description
No description provided
Readme 815 KiB
Languages
Python 62.2%
HTML 37.1%
Dockerfile 0.4%
Shell 0.3%