feat(config,caddy): single gateway port and site.caddy per the komodo convention

This commit is contained in:
hh
2026-08-29 00:49:27 +02:00
parent c6bf30b5af
commit c830ca73e6
8 changed files with 63 additions and 72 deletions
+4
View File
@@ -1 +1,5 @@
BEAVER_DOMAIN=beaver.localhost
# куда ходить за gateway; из контейнера caddy хост - host.docker.internal
BEAVER_UPSTREAM=host.docker.internal:62990
# только с acme_dns в Caddyfile
CLOUDFLARE_API_TOKEN=
+18 -34
View File
@@ -1,40 +1,24 @@
# Скелет для одиночного сервера: глобальный блок и import роутов проекта.
# Роуты - в site.caddy, домен и апстрим - в .env.
{
admin off
# acme_dns cloudflare {env.CLOUDFLARE_API_TOKEN}
admin off
# Локально - самоподписанные сертификаты. На сервере с Cloudflare
# закомментировать local_certs, раскомментировать acme_dns.
local_certs
# acme_dns cloudflare {env.CLOUDFLARE_API_TOKEN}
log {
format console
}
log {
format console
}
servers {
trusted_proxies cloudflare
client_ip_headers Cf-Connecting-Ip
}
# servers {
# trusted_proxies cloudflare
# client_ip_headers Cf-Connecting-Ip
# }
}
<DOMAIN> {
redir /anthropic /anthropic/ 308
redir /mcp /mcp/ 308
redir /admin /admin/ 308
redir /md /md/ 308
handle_path /anthropic/* {
reverse_proxy host.docker.internal:62990
}
handle_path /mcp/* {
reverse_proxy host.docker.internal:62991
}
handle /admin/* {
reverse_proxy host.docker.internal:62992
}
handle_path /md/* {
reverse_proxy host.docker.internal:62993
}
# API разговоров + SSE для панели плагина: handle, не handle_path -
# приложение само живёт под /api/…
handle /api/* {
reverse_proxy host.docker.internal:62994 {
flush_interval -1
}
}
(compress) {
encode zstd gzip
}
import /etc/caddy/projects.d/*/site.caddy
+3 -1
View File
@@ -9,7 +9,9 @@ services:
extra_hosts:
- "host.docker.internal:host-gateway"
volumes:
- ./Caddyfile:/etc/caddy/Caddyfile
- ./Caddyfile:/etc/caddy/Caddyfile:ro
# каталог, не файл: git меняет inode, одиночный bind-mount залипает
- ./:/etc/caddy/projects.d/beaver-agent:ro
- caddy_data:/data
env_file:
- .env
+11
View File
@@ -0,0 +1,11 @@
# Роуты beaver. Один апстрим, префиксы не срезаются: gateway сам живёт под
# /anthropic, /mcp, /md, /api, /admin, а / ведёт в админку.
# Домен и апстрим - из env сервера (domains.env / .env), tls - забота
# серверного Caddyfile.
{$BEAVER_DOMAIN} {
import compress
reverse_proxy {$BEAVER_UPSTREAM:localhost:62990} {
# SSE и стримы ответов - без буферизации
flush_interval -1
}
}