feat(monitoring): add Redis exporter + Sentry docs to deployment guide
Some checks failed
Some checks failed
- Add redis-exporter container to docker-compose (oliver006/redis_exporter, 32MB) - Add Redis scrape target to Prometheus config - Add 4 Redis alert rules: RedisDown, HighMemory, HighConnections, RejectedConnections - Document Step 19b (Sentry Error Tracking) in Hetzner deployment guide - Document Step 19c (Redis Monitoring) in Hetzner deployment guide - Update resource budget and port reference tables Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -100,28 +100,28 @@ def apply_theme_preset(
|
||||
db: Session = Depends(get_db),
|
||||
):
|
||||
"""Apply a theme preset to store."""
|
||||
|
||||
|
||||
# Validate preset name
|
||||
if preset_name not in get_available_presets():
|
||||
raise HTTPException(
|
||||
status_code=400,
|
||||
detail=f"Invalid preset. Available: {get_available_presets()}"
|
||||
)
|
||||
|
||||
|
||||
# Get or create store theme
|
||||
theme = db.query(StoreTheme).filter(
|
||||
StoreTheme.store_id == store.id
|
||||
).first()
|
||||
|
||||
|
||||
if not theme:
|
||||
theme = StoreTheme(store_id=store.id)
|
||||
db.add(theme)
|
||||
|
||||
|
||||
# Apply preset
|
||||
apply_preset(theme, preset_name)
|
||||
db.commit()
|
||||
db.refresh(theme)
|
||||
|
||||
|
||||
return {
|
||||
"message": f"Theme preset '{preset_name}' applied successfully",
|
||||
"theme": theme.to_dict()
|
||||
@@ -135,12 +135,12 @@ def apply_theme_preset(
|
||||
def get_theme_presets():
|
||||
"""Get all available theme presets with previews."""
|
||||
from app.core.theme_presets import get_available_presets, get_preset_preview
|
||||
|
||||
|
||||
presets = []
|
||||
for preset_name in get_available_presets():
|
||||
preview = get_preset_preview(preset_name)
|
||||
presets.append(preview)
|
||||
|
||||
|
||||
return {"presets": presets}
|
||||
|
||||
# Returns:
|
||||
@@ -302,16 +302,16 @@ from models.database.store_theme import StoreTheme
|
||||
def test_all_presets():
|
||||
"""Test applying all presets"""
|
||||
presets = get_available_presets()
|
||||
|
||||
|
||||
for preset_name in presets:
|
||||
theme = StoreTheme(store_id=999) # Test store
|
||||
apply_preset(theme, preset_name)
|
||||
|
||||
|
||||
assert theme.theme_name == preset_name
|
||||
assert theme.colors is not None
|
||||
assert theme.font_family_heading is not None
|
||||
assert theme.is_active == True
|
||||
|
||||
|
||||
print(f"✅ {preset_name} preset OK")
|
||||
|
||||
test_all_presets()
|
||||
|
||||
Reference in New Issue
Block a user