Commit Graph

9 Commits

Author SHA1 Message Date
kennethreitz 24c11f5f3a Optimize search performance with FTS5 index
Add SQLite FTS5 search index initialization to dramatically improve
search performance from ~2.8s to <100ms.

Changes:
- Build search index at Docker image build time
- Initialize search index on app startup as fallback
- Index enables fast full-text search across all 31,102 verses

Performance impact:
- Before: ~2.8s (O(n) iteration through all verses)
- After: <100ms (FTS5 indexed search)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-27 11:20:15 -05:00
kennethreitz 0a5c06bbf4 Fix WeasyPrint system dependencies in Dockerfile
Use correct package names for Debian Trixie:
- libpango-1.0-0 instead of libpango1.0-0
- Add libharfbuzz0b and libpangoft2-1.0-0

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-26 00:27:10 -05:00
kennethreitz ffd9e8c187 Add PDF export for stories using WeasyPrint
- Add WeasyPrint dependency and system libs to Docker image
- Create PDF templates for adult and kids stories
- Add /stories/{slug}/pdf and /stories/{slug}/kids/pdf routes
- Add Download PDF button to story pages
- Add stories API endpoints: /api/stories and /api/stories/{slug}
- Gracefully handle missing WeasyPrint system libraries

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-26 00:26:25 -05:00
kennethreitz c753830b8c Revert to Python 3.13
🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-14 19:24:08 -05:00
kennethreitz dfcb2640bb Update to Python 3.14
Update .python-version, pyproject.toml, and Dockerfile to use Python 3.14.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-14 17:00:39 -05:00
kennethreitz 10583fc472 Replace FastAPI CLI with uvicorn and improve SEO metadata
Updates Dockerfile to use uvicorn directly instead of FastAPI CLI.
Enhances HTML templates with comprehensive SEO metadata including
structured data, Open Graph tags, and KJV-specific keywords throughout
all page titles and descriptions.
2025-05-26 13:25:35 -04:00
kennethreitz d61c0fc5a5 Update Docker container to use FastAPI CLI directly
Remove package installation step and use FastAPI CLI with PYTHONPATH
for simpler container execution. Disable reload in main.py and include
static/templates as package data for proper distribution.
2025-05-26 13:12:08 -04:00
kennethreitz 4db70b5113 Replace pip with uv package manager in Docker build 2025-05-26 13:05:23 -04:00
kennethreitz 8c79f732f8 Add Fly.io deployment configuration
- Add Dockerfile with multi-stage Python build
- Add GitHub Actions workflow for automatic deployment on main branch
- Add fly.toml with app configuration and auto-scaling settings
- Add .dockerignore to exclude development files from build context
2025-05-26 12:56:20 -04:00