Deploy: exdev sync 2026-08-13 13:38:36
This commit is contained in:
Regular → Executable
+154
-154
@@ -1,154 +1,154 @@
|
||||
# exdev 통합 HTTPS (443) — stock / chatbot(Agent) / bizcare / nationcompany / github / apex
|
||||
# Agent 배포 시 chatbot-only Caddyfile 로 덮어써 다른 서브도메인이 깨진 것을 복구
|
||||
{
|
||||
email {$CADDY_ACME_EMAIL:admin@exdev.co.kr}
|
||||
auto_https disable_redirects
|
||||
}
|
||||
|
||||
(tls_certs) {
|
||||
tls /etc/caddy/certs/fullchain.pem /etc/caddy/certs/privkey.pem
|
||||
}
|
||||
|
||||
(proxy_std) {
|
||||
flush_interval -1
|
||||
transport http {
|
||||
read_timeout 120s
|
||||
write_timeout 120s
|
||||
versions 1.1 2
|
||||
}
|
||||
header_up Host {host}
|
||||
header_up X-Real-IP {remote_host}
|
||||
header_up X-Forwarded-For {remote_host}
|
||||
header_up X-Forwarded-Proto {scheme}
|
||||
}
|
||||
|
||||
# ── GoldenChart ───────────────────────────────────────────────────────────────
|
||||
https://{$STOCK_DOMAIN:stock.exdev.co.kr} {
|
||||
import tls_certs
|
||||
handle {
|
||||
reverse_proxy host.docker.internal:{$GOLDENCHART_HOST_PORT:80} {
|
||||
import proxy_std
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
# ── Chatbot Agent 2.0 ─────────────────────────────────────────────────────────
|
||||
https://{$CHATBOT_DOMAIN:chatbot.exdev.co.kr} {
|
||||
import tls_certs
|
||||
|
||||
# 업스트림 nginx 가 HTTP 로 absolute redirect 해서 http:// 로 떨어지지 않게 Caddy 에서 처리
|
||||
redir / /chatbot/ai/ 302
|
||||
|
||||
handle /agent/* {
|
||||
reverse_proxy host.docker.internal:{$RAG_API_PORT:28012} {
|
||||
transport http {
|
||||
read_timeout 120s
|
||||
write_timeout 120s
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
handle /chatbot/admin* {
|
||||
uri strip_prefix /chatbot/admin
|
||||
reverse_proxy host.docker.internal:{$ADMIN_PORT:28013} {
|
||||
transport http {
|
||||
read_timeout 120s
|
||||
write_timeout 120s
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
handle /web/* {
|
||||
reverse_proxy host.docker.internal:{$SKILL_PORT:8083} {
|
||||
transport http {
|
||||
read_timeout 120s
|
||||
write_timeout 120s
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
# 카카오 오픈빌더 Skill 웹훅 (/kakao/skill, /oakak/skill)
|
||||
handle /kakao/* {
|
||||
reverse_proxy host.docker.internal:{$SKILL_PORT:8083} {
|
||||
transport http {
|
||||
read_timeout 120s
|
||||
write_timeout 120s
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
handle /oakak/* {
|
||||
reverse_proxy host.docker.internal:{$SKILL_PORT:8083} {
|
||||
transport http {
|
||||
read_timeout 120s
|
||||
write_timeout 120s
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
# iOS 홈화면 Web Clip — MIME 를 Caddy에서 강제 (인앱/프록시에서 text 로 깨지는 것 방지)
|
||||
handle /chatbot/ai/downloads/*.mobileconfig {
|
||||
header Content-Type application/x-apple-aspen-config
|
||||
header Content-Disposition inline
|
||||
header Cache-Control "no-cache, no-store, must-revalidate"
|
||||
reverse_proxy host.docker.internal:{$CHATBOT_APP_PORT:8092} {
|
||||
import proxy_std
|
||||
}
|
||||
}
|
||||
|
||||
handle {
|
||||
reverse_proxy host.docker.internal:{$CHATBOT_APP_PORT:8092} {
|
||||
import proxy_std
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
# ── BizCare ───────────────────────────────────────────────────────────────────
|
||||
https://{$BIZCARE_DOMAIN:bizcare.exdev.co.kr} {
|
||||
tls /etc/caddy/certs/bizcare/fullchain.pem /etc/caddy/certs/bizcare/privkey.pem
|
||||
handle {
|
||||
reverse_proxy host.docker.internal:{$BIZCARE_HOST_PORT:83} {
|
||||
import proxy_std
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
# ── ChannelONE (nationcompany) — TLS-ALPN ACME ────────────────────────────────
|
||||
https://{$NATIONCOMPANY_DOMAIN:nationcompany.exdev.co.kr} {
|
||||
handle {
|
||||
reverse_proxy host.docker.internal:{$NATIONCOMPANY_HOST_PORT:84} {
|
||||
import proxy_std
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
# ── Gitea (github.exdev.co.kr) ────────────────────────────────────────────────
|
||||
https://{$GITHUB_DOMAIN:github.exdev.co.kr} {
|
||||
tls /etc/caddy/certs/github/fullchain.pem /etc/caddy/certs/github/privkey.pem
|
||||
handle {
|
||||
reverse_proxy host.docker.internal:{$GITEA_HOST_PORT:3000} {
|
||||
flush_interval -1
|
||||
transport http {
|
||||
read_timeout 3600s
|
||||
write_timeout 3600s
|
||||
versions 1.1 2
|
||||
}
|
||||
header_up Host {host}
|
||||
header_up X-Real-IP {remote_host}
|
||||
header_up X-Forwarded-For {remote_host}
|
||||
header_up X-Forwarded-Proto {scheme}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
# ── Legacy apex ───────────────────────────────────────────────────────────────
|
||||
https://{$HTTPS_DOMAIN:exdev.co.kr} {
|
||||
import tls_certs
|
||||
@legacy_chatbot path /chatbot /chatbot/*
|
||||
handle @legacy_chatbot {
|
||||
redir https://{$CHATBOT_DOMAIN:chatbot.exdev.co.kr}{uri} permanent
|
||||
}
|
||||
handle {
|
||||
redir https://{$STOCK_DOMAIN:stock.exdev.co.kr}{uri} permanent
|
||||
}
|
||||
}
|
||||
# exdev 통합 HTTPS (443) — stock / chatbot(Agent) / bizcare / nationcompany / github / apex
|
||||
# Agent 배포 시 chatbot-only Caddyfile 로 덮어써 다른 서브도메인이 깨진 것을 복구
|
||||
{
|
||||
email {$CADDY_ACME_EMAIL:admin@exdev.co.kr}
|
||||
auto_https disable_redirects
|
||||
}
|
||||
|
||||
(tls_certs) {
|
||||
tls /etc/caddy/certs/fullchain.pem /etc/caddy/certs/privkey.pem
|
||||
}
|
||||
|
||||
(proxy_std) {
|
||||
flush_interval -1
|
||||
transport http {
|
||||
read_timeout 120s
|
||||
write_timeout 120s
|
||||
versions 1.1 2
|
||||
}
|
||||
header_up Host {host}
|
||||
header_up X-Real-IP {remote_host}
|
||||
header_up X-Forwarded-For {remote_host}
|
||||
header_up X-Forwarded-Proto {scheme}
|
||||
}
|
||||
|
||||
# ── GoldenChart ───────────────────────────────────────────────────────────────
|
||||
https://{$STOCK_DOMAIN:stock.exdev.co.kr} {
|
||||
import tls_certs
|
||||
handle {
|
||||
reverse_proxy host.docker.internal:{$GOLDENCHART_HOST_PORT:80} {
|
||||
import proxy_std
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
# ── Chatbot Agent 2.0 ─────────────────────────────────────────────────────────
|
||||
https://{$CHATBOT_DOMAIN:chatbot.exdev.co.kr} {
|
||||
import tls_certs
|
||||
|
||||
# 업스트림 nginx 가 HTTP 로 absolute redirect 해서 http:// 로 떨어지지 않게 Caddy 에서 처리
|
||||
redir / /chatbot/ai/ 302
|
||||
|
||||
handle /agent/* {
|
||||
reverse_proxy host.docker.internal:{$RAG_API_PORT:28012} {
|
||||
transport http {
|
||||
read_timeout 120s
|
||||
write_timeout 120s
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
handle /chatbot/admin* {
|
||||
uri strip_prefix /chatbot/admin
|
||||
reverse_proxy host.docker.internal:{$ADMIN_PORT:28013} {
|
||||
transport http {
|
||||
read_timeout 120s
|
||||
write_timeout 120s
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
handle /web/* {
|
||||
reverse_proxy host.docker.internal:{$SKILL_PORT:8083} {
|
||||
transport http {
|
||||
read_timeout 120s
|
||||
write_timeout 120s
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
# 카카오 오픈빌더 Skill 웹훅 (/kakao/skill, /oakak/skill)
|
||||
handle /kakao/* {
|
||||
reverse_proxy host.docker.internal:{$SKILL_PORT:8083} {
|
||||
transport http {
|
||||
read_timeout 120s
|
||||
write_timeout 120s
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
handle /oakak/* {
|
||||
reverse_proxy host.docker.internal:{$SKILL_PORT:8083} {
|
||||
transport http {
|
||||
read_timeout 120s
|
||||
write_timeout 120s
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
# iOS 홈화면 Web Clip — MIME 를 Caddy에서 강제 (인앱/프록시에서 text 로 깨지는 것 방지)
|
||||
handle /chatbot/ai/downloads/*.mobileconfig {
|
||||
header Content-Type application/x-apple-aspen-config
|
||||
header Content-Disposition inline
|
||||
header Cache-Control "no-cache, no-store, must-revalidate"
|
||||
reverse_proxy host.docker.internal:{$CHATBOT_APP_PORT:8092} {
|
||||
import proxy_std
|
||||
}
|
||||
}
|
||||
|
||||
handle {
|
||||
reverse_proxy host.docker.internal:{$CHATBOT_APP_PORT:8092} {
|
||||
import proxy_std
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
# ── BizCare ───────────────────────────────────────────────────────────────────
|
||||
https://{$BIZCARE_DOMAIN:bizcare.exdev.co.kr} {
|
||||
tls /etc/caddy/certs/bizcare/fullchain.pem /etc/caddy/certs/bizcare/privkey.pem
|
||||
handle {
|
||||
reverse_proxy host.docker.internal:{$BIZCARE_HOST_PORT:83} {
|
||||
import proxy_std
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
# ── ChannelONE (nationcompany) — TLS-ALPN ACME ────────────────────────────────
|
||||
https://{$NATIONCOMPANY_DOMAIN:nationcompany.exdev.co.kr} {
|
||||
handle {
|
||||
reverse_proxy host.docker.internal:{$NATIONCOMPANY_HOST_PORT:84} {
|
||||
import proxy_std
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
# ── Gitea (github.exdev.co.kr) ────────────────────────────────────────────────
|
||||
https://{$GITHUB_DOMAIN:github.exdev.co.kr} {
|
||||
tls /etc/caddy/certs/github/fullchain.pem /etc/caddy/certs/github/privkey.pem
|
||||
handle {
|
||||
reverse_proxy host.docker.internal:{$GITEA_HOST_PORT:3000} {
|
||||
flush_interval -1
|
||||
transport http {
|
||||
read_timeout 3600s
|
||||
write_timeout 3600s
|
||||
versions 1.1 2
|
||||
}
|
||||
header_up Host {host}
|
||||
header_up X-Real-IP {remote_host}
|
||||
header_up X-Forwarded-For {remote_host}
|
||||
header_up X-Forwarded-Proto {scheme}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
# ── Legacy apex ───────────────────────────────────────────────────────────────
|
||||
https://{$HTTPS_DOMAIN:exdev.co.kr} {
|
||||
import tls_certs
|
||||
@legacy_chatbot path /chatbot /chatbot/*
|
||||
handle @legacy_chatbot {
|
||||
redir https://{$CHATBOT_DOMAIN:chatbot.exdev.co.kr}{uri} permanent
|
||||
}
|
||||
handle {
|
||||
redir https://{$STOCK_DOMAIN:stock.exdev.co.kr}{uri} permanent
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user