- Full directory structure with all __init__.py stubs - requirements.txt with all pinned dependencies - app/config/settings.py (BaseSettings, env-based) - app/main.py (CORS, lifespan, /api/v1/health) - Dockerfile (multi-stage, Python 3.12-slim, non-root user) - docker-compose.yml (app + postgres:16 with healthcheck) - .env.example - BACKEND_PLAN.md: mark step 1 done, add one-step-at-a-time rule Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
29 lines
2.0 KiB
Plaintext
29 lines
2.0 KiB
Plaintext
# ── Application ──────────────────────────────────────────────────────────────
|
|
ENV=dev
|
|
|
|
# ── Database ──────────────────────────────────────────────────────────────────
|
|
DATABASE_URL=postgresql+asyncpg://postgres:postgres@localhost:5432/adiuva
|
|
|
|
# ── Auth ──────────────────────────────────────────────────────────────────────
|
|
JWT_SECRET=replace-with-a-long-random-secret
|
|
JWT_ALGORITHM=HS256
|
|
JWT_ACCESS_TOKEN_EXPIRE_MINUTES=30
|
|
JWT_REFRESH_TOKEN_EXPIRE_DAYS=30
|
|
|
|
# ── OpenAI ────────────────────────────────────────────────────────────────────
|
|
OPENAI_API_KEY=sk-...
|
|
|
|
# ── Stripe ────────────────────────────────────────────────────────────────────
|
|
STRIPE_SECRET_KEY=sk_test_...
|
|
STRIPE_WEBHOOK_SECRET=whsec_...
|
|
|
|
# ── AWS / S3 ──────────────────────────────────────────────────────────────────
|
|
S3_BUCKET=adiuva-backups
|
|
S3_REGION=us-east-1
|
|
AWS_ACCESS_KEY_ID=AKIA...
|
|
AWS_SECRET_ACCESS_KEY=...
|
|
|
|
# ── CORS ──────────────────────────────────────────────────────────────────────
|
|
# Comma-separated list parsed by Settings (override default if needed)
|
|
# CORS_ORIGINS=["app://.","http://localhost:3000"]
|