feat(config,caddy): single gateway port and site.caddy per the komodo convention
This commit is contained in:
@@ -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
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user