managarten/docker/caddy/Caddyfile.production
Till JS 420926aef1 fix(infra): add no-cache headers for PWA files in Caddyfile
Ensure sw.js, manifest.webmanifest, and registerSW.js are never cached
by the browser or CDN so service worker updates are picked up immediately
after deploys. Uses a reusable Caddy snippet imported by all web app blocks.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-22 19:10:49 +01:00

169 lines
3.6 KiB
Text

# ManaCore Production Reverse Proxy
# Domain: mana.how
# Server: 46.224.108.214
#
# Deploy to: ~/Caddyfile on production server
# Reload with: docker exec caddy caddy reload --config /etc/caddy/Caddyfile
# PWA files must never be cached by the browser/CDN so that
# service worker updates are picked up immediately after deploys.
(pwa-no-cache) {
@pwa-files path /sw.js /manifest.webmanifest /registerSW.js
header @pwa-files Cache-Control "no-cache, no-store, must-revalidate"
}
# ============================================
# Auth Service
# ============================================
auth.mana.how {
reverse_proxy localhost:3001
}
# ============================================
# ManaCore Dashboard (Main)
# ============================================
mana.how {
import pwa-no-cache
reverse_proxy localhost:5000
}
www.mana.how {
redir https://mana.how{uri} permanent
}
# ============================================
# Chat App
# ============================================
chat.mana.how {
import pwa-no-cache
reverse_proxy localhost:5010
}
chat-api.mana.how {
reverse_proxy localhost:3030
}
# ============================================
# Todo App
# ============================================
todo.mana.how {
import pwa-no-cache
reverse_proxy localhost:5011
}
todo-api.mana.how {
reverse_proxy localhost:3031
}
# ============================================
# Calendar App
# ============================================
calendar.mana.how {
import pwa-no-cache
reverse_proxy localhost:5012
}
calendar-api.mana.how {
reverse_proxy localhost:3032
}
# ============================================
# Clock App
# ============================================
clock.mana.how {
import pwa-no-cache
reverse_proxy localhost:5013
}
clock-api.mana.how {
reverse_proxy localhost:3033
}
clock-bot.mana.how {
reverse_proxy localhost:4018
}
# ============================================
# Contacts App
# ============================================
contacts.mana.how {
import pwa-no-cache
reverse_proxy localhost:5014
}
contacts-api.mana.how {
reverse_proxy localhost:3034
}
# ============================================
# Storage App
# ============================================
storage.mana.how {
import pwa-no-cache
reverse_proxy localhost:5015
}
storage-api.mana.how {
reverse_proxy localhost:3035
}
# ============================================
# Skilltree App
# ============================================
skilltree.mana.how {
import pwa-no-cache
reverse_proxy localhost:5020
}
skilltree-api.mana.how {
reverse_proxy localhost:3038
}
# ============================================
# LightWrite App
# ============================================
lightwrite.mana.how {
import pwa-no-cache
reverse_proxy localhost:5180
}
lightwrite-api.mana.how {
reverse_proxy localhost:3010
}
# ============================================
# Picture App
# ============================================
picture.mana.how {
import pwa-no-cache
reverse_proxy localhost:5021
}
picture-api.mana.how {
reverse_proxy localhost:3040
}
# ============================================
# LLM Playground
# ============================================
playground.mana.how {
reverse_proxy localhost:5090
}
# ============================================
# Games
# ============================================
whopxl.mana.how {
reverse_proxy localhost:5100
}
# ============================================
# Monitoring & Analytics
# ============================================
grafana.mana.how {
reverse_proxy localhost:8000
}
stats.mana.how {
reverse_proxy localhost:8010
}