Ports the Go QR campaign overlay service to a self-contained Rust crate nested at /v1/qr/... in the gateway. Features: - Auth: register, login, Google OAuth, JWT refresh (bcrypt compat with Go DB) - Users: profile management + admin CRUD (list/role/delete) - Campaigns: create (auto-generates QR PNG via qrcode crate), list, activate, delete; process-image endpoint overlays active campaign QR onto uploaded images (bottom-right corner, image crate) - QR pool connects to imphnen_qr database via QR_DATABASE_URL Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
60 lines
2.1 KiB
Bash
60 lines
2.1 KiB
Bash
RUST_ENV=development
|
|
RUST_LOG=debug
|
|
PORT=4099
|
|
SURREALDB_URL=ws://localhost:8000/rpc
|
|
SURREALDB_USERNAME=root
|
|
SURREALDB_PASSWORD=root
|
|
SURREALDB_NAMESPACE=test
|
|
SURREALDB_DBNAME=test
|
|
ACCESS_TOKEN_SECRET=your-access-token-secret-key-here
|
|
REFRESH_TOKEN_SECRET=your-refresh-token-secret-key-here
|
|
SMTP_EMAIL=your-email@example.com
|
|
SMTP_PASSWORD=your-smtp-password
|
|
SMTP_NAME="Your App Name"
|
|
SMTP_HOST=smtp.gmail.com
|
|
REDISDB_URL=localhost
|
|
FE_URL=http://localhost
|
|
MINIO_ENDPOINT=http://localhost:9000
|
|
MINIO_BUCKET_NAME=default_bucket
|
|
MINIO_ACCESS_KEY=minioadmin
|
|
MINIO_SECRET_KEY=minioadmin
|
|
MINIO_SECURE=false
|
|
|
|
GOOGLE_CLIENT_ID="your_google_client_id"
|
|
GOOGLE_CLIENT_SECRET="your_google_client_secret"
|
|
POOL_SIZE=10
|
|
CONNECT_TIMEOUT=30
|
|
IDLE_TIMEOUT=60
|
|
MAX_LIFETIME=1800
|
|
STATEMENT_TIMEOUT=30000
|
|
IDLE_IN_TRANSACTION_SESSION_TIMEOUT=60000
|
|
SSLMODE=require
|
|
RETRY_ATTEMPTS=3
|
|
RETRY_DELAY=1
|
|
GOOGLE_REDIRECT_URL=http://localhost:8000/api/v1/auth/google/callback
|
|
|
|
# QR campaign service
|
|
QR_DATABASE_URL=postgres://imphnen_qr@127.0.0.1:5432/imphnen_qr?sslmode=disable
|
|
QR_JWT_SECRET=your-qr-jwt-secret-at-least-32-chars
|
|
QR_JWT_EXPIRY_MINUTES=15
|
|
QR_JWT_REFRESH_EXPIRY_DAYS=7
|
|
QR_GOOGLE_CLIENT_ID=your-google-client-id
|
|
QR_GOOGLE_CLIENT_SECRET=your-google-client-secret
|
|
QR_GOOGLE_REDIRECT_URL=http://localhost:8080/v1/qr/auth/google/callback
|
|
|
|
# Hackathon feature
|
|
HACKATHON_JWT_SECRET=your-hackathon-jwt-secret-at-least-32-chars
|
|
HACKATHON_JWT_EXPIRY_HOURS=168
|
|
HACKATHON_SUPABASE_URL=https://your-project.supabase.co
|
|
HACKATHON_SUPABASE_ANON_KEY=your-supabase-anon-key
|
|
HACKATHON_SUPABASE_SERVICE_ROLE_KEY=your-supabase-service-role-key
|
|
HACKATHON_STORAGE_BUCKET=hackathon-uploads
|
|
HACKATHON_GITHUB_CLIENT_ID=your-github-client-id
|
|
HACKATHON_GITHUB_CLIENT_SECRET=your-github-client-secret
|
|
HACKATHON_GITHUB_REDIRECT_URL=http://localhost:8080/v1/hackathon/auth/github/callback
|
|
HACKATHON_SMTP_HOST=smtp.gmail.com
|
|
HACKATHON_SMTP_USER=your-email@gmail.com
|
|
HACKATHON_SMTP_PASSWORD=your-smtp-password
|
|
HACKATHON_FROM_EMAIL=noreply@yourdomain.com
|
|
HACKATHON_FRONTEND_URL=https://hackathon.imphnen.dev
|