pounce/backend/env.example
yves.gugger 6b6ec01484 feat: Add missing features - Stripe payments, password reset, rate limiting, contact form, newsletter
Backend:
- Add Stripe API endpoints (checkout, portal, webhook) in subscription.py
- Add password reset (forgot-password, reset-password) in auth.py
- Add email verification endpoints
- Add rate limiting with slowapi
- Add contact form and newsletter API (contact.py)
- Add webhook endpoint for Stripe (webhooks.py)
- Add NewsletterSubscriber model
- Extend User model with password reset and email verification tokens
- Extend email_service with new templates (password reset, verification, contact, newsletter)
- Update env.example with all new environment variables

Frontend:
- Add /forgot-password page
- Add /reset-password page with token handling
- Add /verify-email page with auto-verification
- Add forgot password link to login page
- Connect contact form to API
- Add API methods for all new endpoints

Documentation:
- Update README with new API endpoints
- Update environment variables documentation
- Update pages overview
2025-12-08 14:37:42 +01:00

107 lines
3.1 KiB
Plaintext

# =================================
# pounce Backend Configuration
# =================================
# Copy this file to .env and update values
# =================================
# Database
# =================================
# SQLite (Development)
DATABASE_URL=sqlite+aiosqlite:///./domainwatch.db
# PostgreSQL (Production)
# DATABASE_URL=postgresql+asyncpg://user:password@localhost:5432/pounce
# =================================
# Security
# =================================
# IMPORTANT: Generate a secure random key for production!
# Use: python -c "import secrets; print(secrets.token_hex(32))"
SECRET_KEY=your-super-secret-key-change-this-in-production-min-32-characters
# JWT Settings
ACCESS_TOKEN_EXPIRE_MINUTES=10080
# CORS Origins (comma-separated)
ALLOWED_ORIGINS=http://localhost:3000,http://127.0.0.1:3000
# Email Verification (set to "true" to require email verification before login)
REQUIRE_EMAIL_VERIFICATION=false
# =================================
# Stripe Payments
# =================================
# Get these from https://dashboard.stripe.com/apikeys
STRIPE_SECRET_KEY=sk_test_your_stripe_secret_key
STRIPE_WEBHOOK_SECRET=whsec_your_webhook_secret
# Price IDs from Stripe Dashboard (Products > Prices)
# Create products "Trader" and "Tycoon" in Stripe, then get their Price IDs
STRIPE_PRICE_TRADER=price_xxxxxxxxxxxxxx
STRIPE_PRICE_TYCOON=price_xxxxxxxxxxxxxx
# =================================
# SMTP Email Configuration
# =================================
# Gmail Example:
# SMTP_HOST=smtp.gmail.com
# SMTP_PORT=587
# SMTP_USER=your-email@gmail.com
# SMTP_PASSWORD=your-app-password (not your Gmail password!)
#
# Mailgun Example:
# SMTP_HOST=smtp.mailgun.org
# SMTP_PORT=587
# SMTP_USER=postmaster@your-domain.com
# SMTP_PASSWORD=your-mailgun-smtp-password
#
# AWS SES Example:
# SMTP_HOST=email-smtp.eu-central-1.amazonaws.com
# SMTP_PORT=587
# SMTP_USER=your-ses-smtp-user
# SMTP_PASSWORD=your-ses-smtp-password
SMTP_HOST=smtp.gmail.com
SMTP_PORT=587
SMTP_USER=your-email@gmail.com
SMTP_PASSWORD=your-app-password
SMTP_FROM_EMAIL=noreply@pounce.ch
SMTP_FROM_NAME=pounce
SMTP_USE_TLS=true
# Email for contact form submissions
CONTACT_EMAIL=support@pounce.ch
# =================================
# Scheduler Settings
# =================================
# Domain availability check interval (hours)
SCHEDULER_CHECK_INTERVAL_HOURS=24
# TLD price scraping interval (hours)
SCHEDULER_TLD_SCRAPE_INTERVAL_HOURS=24
# Auction scraping interval (hours)
SCHEDULER_AUCTION_SCRAPE_INTERVAL_HOURS=1
# =================================
# Application Settings
# =================================
# Environment: development, staging, production
ENVIRONMENT=development
# Debug mode (disable in production!)
DEBUG=true
# Site URL (for email links, password reset, etc.)
SITE_URL=http://localhost:3000
# =================================
# Rate Limiting
# =================================
# Default rate limit (requests per minute per IP)
# Rate limits are enforced in API endpoints
# Contact form: 5/hour
# Auth (login/register): 10/minute
# General API: 200/minute