Files

54 lines
1.9 KiB
Caddyfile

# Caddy in front of figcraft-server; setup in docs/server.md ("Deploy on a Linux server").
# Replace the host name with yours (its DNS must point at this machine). Caddy obtains and renews
# the certificate and passes WebSocket upgrades through by itself. Put this in /etc/caddy/Caddyfile
# and run `sudo systemctl reload caddy` (install.sh does all this for you).
# Caddy tells the server who each client is (X-Forwarded-For): set trusted_proxy = "127.0.0.1" in
# server.toml so per-address limits and blocks count clients, not Caddy.
figcraft.example.com {
reverse_proxy 127.0.0.1:47900
}
# Under a path of an existing site instead (then public_url = "wss://example.com/figcraft/"):
#
# example.com {
# handle /figcraft/* {
# reverse_proxy 127.0.0.1:47900
# }
# }
# Browser editor and server on the same hostname instead. Use this block IN PLACE OF the
# active block above. Copy the complete browser release into /srv/figcraft-web, with index.html
# directly inside it and subdirectories such as snippets/ kept. See packaging/web/README.md for
# the browser's figcraft-server meta tag; never put a publishing key in public HTML.
# Open the editor at /app/. The hostname root remains the WSS endpoint, not an editor homepage.
#
# figcraft.example.com {
# encode gzip
#
# redir /app /app/?{query} 308
#
# @entry path /app/ /app/index.html
# header @entry Cache-Control "no-cache"
#
# @release_assets path /app/figcraft-web-*.js /app/figcraft-web-*_bg.wasm
# # Defer so a missing asset does not receive the one-year cache header.
# header @release_assets Cache-Control "public, max-age=31536000, immutable" {
# defer
# }
#
# # No root favicon is configured: do not forward its implicit request to the WS server.
# handle /favicon.ico {
# respond 204
# }
#
# handle_path /app/* {
# root * /srv/figcraft-web
# file_server
# }
#
# handle {
# reverse_proxy 127.0.0.1:47900
# }
# }