6c82958c79
- Implement React frontend with TypeScript and Tailwind CSS - Add scrappbook.de-inspired UI design with photo galleries - Implement authentication, photo viewing, and download features - Add Docker Swarm configuration with Traefik reverse proxy - Set up Drone CI/CD pipeline for automated deployments - Add monitoring stack with Prometheus and Grafana - Create comprehensive deployment documentation - Add simple local development setup with docker-compose.local.yml Features: - Password-protected galleries with expiration warnings - Responsive photo grid with lightbox viewer - Bulk download functionality - Hot reload development environment - Email testing with Mailhog - Production-ready deployment scripts 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
60 lines
1.6 KiB
Bash
60 lines
1.6 KiB
Bash
# Application URLs
|
|
FRONTEND_HOST=photos.yourdomain.com
|
|
BACKEND_HOST=api.photos.yourdomain.com
|
|
ADMIN_URL=https://admin.photos.yourdomain.com
|
|
FRONTEND_URL=https://photos.yourdomain.com
|
|
|
|
# Database Configuration
|
|
DB_NAME=photo_sharing
|
|
DB_USER=photoapp
|
|
DB_PASSWORD=your-secure-password-here
|
|
|
|
# JWT Configuration
|
|
JWT_SECRET=your-jwt-secret-here
|
|
|
|
# Email Configuration
|
|
SMTP_HOST=smtp.gmail.com
|
|
SMTP_PORT=587
|
|
SMTP_SECURE=false
|
|
SMTP_USER=your-email@gmail.com
|
|
SMTP_PASS=your-app-password
|
|
EMAIL_FROM=noreply@yourdomain.com
|
|
|
|
# Umami Analytics
|
|
UMAMI_URL=https://analytics.yourdomain.com
|
|
UMAMI_HOST=analytics.yourdomain.com
|
|
UMAMI_WEBSITE_ID=your-website-id
|
|
UMAMI_HASH_SALT=your-random-salt
|
|
UMAMI_DB_PASSWORD=umami-db-password
|
|
|
|
# Traefik Configuration
|
|
TRAEFIK_HOST=traefik.yourdomain.com
|
|
ACME_EMAIL=admin@yourdomain.com
|
|
TRAEFIK_DASHBOARD_AUTH=admin:$2y$10$... # Use htpasswd to generate
|
|
|
|
# Docker Registry (optional)
|
|
REGISTRY_URL=registry.yourdomain.com
|
|
VERSION=latest
|
|
|
|
# Monitoring
|
|
DOMAIN=yourdomain.com
|
|
GRAFANA_USER=admin
|
|
GRAFANA_PASSWORD=your-grafana-password
|
|
|
|
# OAuth Configuration (optional)
|
|
OAUTH_AUTH_URL=https://auth.yourdomain.com/oauth2/auth
|
|
OAUTH_TOKEN_URL=https://auth.yourdomain.com/oauth2/token
|
|
OAUTH_USER_URL=https://auth.yourdomain.com/oauth2/userinfo
|
|
OAUTH_CLIENT_ID=photo-sharing
|
|
OAUTH_CLIENT_SECRET=your-oauth-secret
|
|
OAUTH_SECRET=your-random-secret
|
|
COOKIE_DOMAIN=.yourdomain.com
|
|
OAUTH_WHITELIST=admin@yourdomain.com
|
|
|
|
# Backup Configuration (optional)
|
|
S3_BACKUP_BUCKET=your-backup-bucket
|
|
|
|
# Drone CI Configuration
|
|
DRONE_RPC_SECRET=your-drone-secret
|
|
DRONE_GITHUB_CLIENT_ID=your-github-client-id
|
|
DRONE_GITHUB_CLIENT_SECRET=your-github-client-secret |