- Web service has healthcheck on /api/health
- nginx depends on web being healthy before starting
- Added curl to Dockerfile for healthcheck
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
- nginx.conf: docker-compose version (uses 'web:8001')
- nginx-prod.conf: production version (uses '127.0.0.1:8001')
- Separate nginx service in docker-compose
- uvicorn runs on port 8001, nginx exposes 8000
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
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>
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>
- 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>
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.
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.
- 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