- Fork elmeg-demo codebase for multi-band support - Add data importer infrastructure with base class - Create band-specific importers: - phish.py: Phish.net API v5 - grateful_dead.py: Grateful Stats API - setlistfm.py: Dead & Company, Billy Strings (Setlist.fm) - Add spec-kit configuration for Gemini - Update README with supported bands and architecture
77 lines
1.8 KiB
YAML
77 lines
1.8 KiB
YAML
http:
|
|
# Rate Limiting Middlewares
|
|
middlewares:
|
|
api-ratelimit:
|
|
rateLimit:
|
|
average: 100 # Average requests per second
|
|
burst: 200 # Maximum burst
|
|
period: 1m # Sliding window period
|
|
sourceCriterion:
|
|
ipStrategy:
|
|
depth: 1 # Use X-Forwarded-For header
|
|
api-ratelimit-strict:
|
|
rateLimit:
|
|
average: 10 # Strict limit for sensitive endpoints
|
|
burst: 20
|
|
period: 1m
|
|
sourceCriterion:
|
|
ipStrategy:
|
|
depth: 1
|
|
elmeg-strip:
|
|
stripPrefix:
|
|
prefixes:
|
|
- "/api"
|
|
|
|
routers:
|
|
ersen-web:
|
|
rule: "Host(`ersen.xyz`) || Host(`www.ersen.xyz`)"
|
|
service: ersen-frontend
|
|
entryPoints:
|
|
- websecure
|
|
tls:
|
|
certResolver: letsencrypt
|
|
ersen-api:
|
|
rule: "Host(`api.ersen.xyz`)"
|
|
service: ersen-backend
|
|
entryPoints:
|
|
- websecure
|
|
middlewares:
|
|
- api-ratelimit
|
|
tls:
|
|
certResolver: letsencrypt
|
|
|
|
elmeg-web:
|
|
rule: "Host(`elmeg.xyz`)"
|
|
service: elmeg-frontend
|
|
entryPoints:
|
|
- websecure
|
|
tls:
|
|
certResolver: letsencrypt
|
|
elmeg-api:
|
|
rule: "Host(`elmeg.xyz`) && PathPrefix(`/api`)"
|
|
service: elmeg-backend
|
|
priority: 100
|
|
entryPoints:
|
|
- websecure
|
|
middlewares:
|
|
- elmeg-strip
|
|
tls:
|
|
certResolver: letsencrypt
|
|
|
|
services:
|
|
ersen-frontend:
|
|
loadBalancer:
|
|
servers:
|
|
- url: "http://ersen-frontend-1:80"
|
|
ersen-backend:
|
|
loadBalancer:
|
|
servers:
|
|
- url: "http://ersen-backend-1:3000"
|
|
elmeg-frontend:
|
|
loadBalancer:
|
|
servers:
|
|
- url: "http://elmeg-demo-frontend-1:3000"
|
|
elmeg-backend:
|
|
loadBalancer:
|
|
servers:
|
|
- url: "http://elmeg-demo-backend-1:8000"
|