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
107 lines
3.1 KiB
Plaintext
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
|