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>
93 lines
1.6 KiB
YAML
93 lines
1.6 KiB
YAML
# Static configuration
|
|
global:
|
|
checkNewVersion: true
|
|
sendAnonymousUsage: false
|
|
|
|
api:
|
|
dashboard: true
|
|
debug: false
|
|
|
|
# Entry Points
|
|
entryPoints:
|
|
http:
|
|
address: ":80"
|
|
http:
|
|
redirections:
|
|
entryPoint:
|
|
to: https
|
|
scheme: https
|
|
priority: 1000
|
|
https:
|
|
address: ":443"
|
|
http:
|
|
tls:
|
|
certResolver: letsencrypt
|
|
domains:
|
|
- main: "${FRONTEND_HOST}"
|
|
- main: "${BACKEND_HOST}"
|
|
- main: "${UMAMI_HOST}"
|
|
forwardedHeaders:
|
|
trustedIPs:
|
|
- "127.0.0.1/32"
|
|
- "10.0.0.0/8"
|
|
- "172.16.0.0/12"
|
|
- "192.168.0.0/16"
|
|
metrics:
|
|
address: ":8082"
|
|
|
|
# Providers
|
|
providers:
|
|
docker:
|
|
swarmMode: true
|
|
exposedByDefault: false
|
|
network: traefik-public
|
|
watch: true
|
|
file:
|
|
directory: /etc/traefik/dynamic
|
|
watch: true
|
|
|
|
# Certificate Resolvers
|
|
certificatesResolvers:
|
|
letsencrypt:
|
|
acme:
|
|
email: ${ACME_EMAIL}
|
|
storage: /letsencrypt/acme.json
|
|
httpChallenge:
|
|
entryPoint: http
|
|
# Staging server for testing
|
|
# caServer: https://acme-staging-v02.api.letsencrypt.org/directory
|
|
|
|
# Logs
|
|
log:
|
|
level: INFO
|
|
format: json
|
|
|
|
accessLog:
|
|
format: json
|
|
filters:
|
|
statusCodes:
|
|
- "200-299"
|
|
- "400-499"
|
|
- "500-599"
|
|
retryAttempts: true
|
|
minDuration: "10ms"
|
|
|
|
# Metrics
|
|
metrics:
|
|
prometheus:
|
|
entryPoint: metrics
|
|
addEntryPointsLabels: true
|
|
addServicesLabels: true
|
|
buckets:
|
|
- 0.1
|
|
- 0.3
|
|
- 1.2
|
|
- 5.0
|
|
|
|
# Ping
|
|
ping:
|
|
entryPoint: traefik
|
|
|
|
# Pilot
|
|
pilot:
|
|
enabled: false |