Update documentation for hybrid config and Gmail API vs SMTP delivery

- README.md: document hybrid config model, Gmail API vs SMTP comparison,
  update architecture diagram, replace Postmarkapp with Apprise
- ARCHITECTURE.md: add Gmail API vs SMTP comparison table, document
  ConfigService and AppSetting, add settings/gmail API endpoints
- CHANGELOG.md: add entries for database-backed config and documentation
- TODO.md: update progress (59% coverage, production readiness 30%)
- .env.example: document bootstrap vs database-managed settings

Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com>
Agent-Logs-Url: https://github.com/christianlouis/pop_puller_to_gmail/sessions/ce88d4a8-d8c2-49b3-95a1-30592105a769
This commit is contained in:
copilot-swe-agent[bot]
2026-03-23 13:39:52 +00:00
parent 702650376e
commit 71a97379a1
5 changed files with 209 additions and 41 deletions
+14 -8
View File
@@ -13,20 +13,26 @@ POP3_ACCOUNT_1_USE_SSL=true
# POP3_ACCOUNT_2_PASSWORD=another_password
# POP3_ACCOUNT_2_USE_SSL=true
# Gmail/SMTP Configuration
# ── Bootstrap Settings (always from env, never from database) ──────
# DATABASE_URL=postgresql+asyncpg://user:password@localhost:5432/pop3_forwarder
# SECRET_KEY=<generate with: python -c 'import secrets; print(secrets.token_urlsafe(32))'>
# ENCRYPTION_KEY=<generate with: python -c 'import secrets; print(secrets.token_urlsafe(32))'>
# ── Settings below can also be managed via the database ────────────
# Use the admin API (PUT /api/v1/settings/{key}) to store them in
# PostgreSQL. Database values take precedence over env vars.
# Gmail/SMTP Configuration (fallback delivery method)
SMTP_HOST=smtp.gmail.com
SMTP_PORT=587
SMTP_USER=your-email@gmail.com
SMTP_PASSWORD=your-app-password
SMTP_USE_TLS=true
# Gmail destination
GMAIL_DESTINATION=your-email@gmail.com
# Postmarkapp for Error Notifications
POSTMARK_API_TOKEN=your-postmark-api-token
POSTMARK_FROM_EMAIL=errors@yourdomain.com
POSTMARK_TO_EMAIL=admin@yourdomain.com
# Gmail API Configuration (preferred delivery method)
# GOOGLE_CLIENT_ID=your-google-client-id
# GOOGLE_CLIENT_SECRET=your-google-client-secret
# GMAIL_API_ENABLED=true
# Scheduling
CHECK_INTERVAL_MINUTES=5