Files
company-deploy-skills/dokploy-gitea-deploy/references/domain.md

4.0 KiB
Raw Blame History

域名与 HTTPS

默认路径company-deploy-mcp优先

业务部署 不要 手写 Dokploy domain.create
控制面在 apply_deployment_plan 内自动绑定域名并启用 HTTPS。

主机名规则

格式 {prefix}{random}.{DOMAIN_ROOT}
默认 prefix buxi
默认 random 5 位 [a-z0-9]
默认根域 loncode.site(以控制面 DOMAIN_ROOT 为准)
示例 buxi3k9xa.loncode.site
  • 首次 applyexposeWeb !== false 时分配
  • 分配后写入项目 mapping同 repo+environment 永久复用
  • 可用 spec.domainHost 指定固定 host需 DNS 已解析到 Dokploy一般业务勿用
  • exposeWeb: false不绑公网域Worker / 长连接机器人)

HTTPS / 证书

说明
默认 DOMAIN_HTTPS=truecertificateType=letsencrypt
实现 Dokploy Traefik 按具体子域申请 Lets Encrypt
不需要 通配符证书(*.loncode.site 的 cert
需要 DNS 把子域指到 Dokploy80/443 公网可达HTTP-01

推荐 DNS一次配好所有项目共用

*.loncode.site  →  A/AAAA  →  Dokploy 服务器 IP

这是通配 解析,不是通配证书。每个 buxi*****.loncode.site 各自签 LE。

交付链接

来源 字段
apply_deployment_plan urldomain.hostdomain.url
list_projects 每项 url / domainHost
get_deployment_status 结合应用状态与 mapping

格式:https://<host>/(控制面 DOMAIN_HTTPS=false 时才是 http://)。

Agent 探活:

curl -skI "https://buxiXXXXX.loncode.site/"
# 或健康路径
curl -skI "https://buxiXXXXX.loncode.site/healthz"

首次可能短暂 404 / TLS 握手失败:等 13 分钟 LE仍失败查 DNS 与 80/443。

Agent 红线MCP 路径)

  1. 不要再调 Dokploy domain.create(双绑/冲突)
  2. 不要要求业务用户填 DOKPLOY_DOMAIN
  3. 不要把错误的宿主机端口(如别人的 :8080)当成产品链接
  4. 证书失败:查基础设施,不要改业务代码「硬编码域名」进 Git

细节与 plan 参数见 mcp-deploy.md


Legacy 路径:直连 Dokploy运维例外

仅当用户明确要求不走 MCP且存在项目 .env.deploy 时使用。

配置写在哪?

位置 用途
项目根 .env.deploy Agent 读取;必须 gitignore
env-deploy.example 模板
Dokploy 面板 Domains 人工补绑
域名注册商 DNS 用户/运维配置

方式 A写死完整域名

DOKPLOY_EXPOSE_WEB=true
DOKPLOY_DOMAIN=crm.loncode.site
DOKPLOY_DOMAIN_HTTPS=true
DOKPLOY_DNS_READY=true
DOKPLOY_PORT=3000

方式 B根域 + slug

DOKPLOY_EXPOSE_WEB=true
DOKPLOY_DOMAIN_ROOT=loncode.site
DOKPLOY_DOMAIN_PREFIX=
# DOKPLOY_DOMAIN 留空 → {PREFIX}{slug}.{ROOT}

与控制面 buxi+5 规则不同legacy 多为 app 名 slug
企业统一对外仍推荐 MCP 的 buxi+5,避免与连接中心体验分裂。

方式 C非 Web

DOKPLOY_EXPOSE_WEB=false

Legacy API 示例

curl -sS -X POST \
  -H "x-api-key: $DOKPLOY_API_KEY" \
  -H "Content-Type: application/json" \
  -d "{
    \"host\": \"${DOKPLOY_DOMAIN}\",
    \"applicationId\": \"${DOKPLOY_APPLICATION_ID}\",
    \"https\": true,
    \"certificateType\": \"letsencrypt\",
    \"port\": ${DOKPLOY_PORT},
    \"path\": \"/\",
    \"domainType\": \"application\"
  }" \
  "${DOKPLOY_URL}/api/domain.create"

host 不要带协议。证书同样依赖 DNS + 80/443。


故障速查

现象 处理
有 host 无 HTTPS 等 LE查 80 是否被占用/防火墙
DNS NXDOMAIN *.DOMAIN_ROOT 或单条 A 记录
证书反复失败 确认公网能访问该 host 的 80
打开了错误站点 是否绑到了别的 applicationId
MCP 与 legacy 双绑 停掉一侧;优先只走 MCP