自定义域名与 HTTPS
需要用自己的域名访问账本时,配置 HTTPS,并更新日历、MCP 和登录设置。
- 确定新域名,并按部署方式配置下方的路由或反向代理。
- 将
SITE_URL设为https://calends.example.com,重新部署或重建容器。 - 用新域名登录,检查 HTTPS、Passkey、日历和 MCP 接入。
Cloudflare
Section titled “Cloudflare”在 wrangler.jsonc 里加上 routes,把域名以 custom_domain 绑定到 Worker。域名需要已经托管在你的 Cloudflare 账号里:
"routes": [{ "pattern": "calends.example.com", "custom_domain": true }],然后重新部署:
npm run deployCloudflare 会自动创建 DNS 记录和证书。也可以在控制台的 Worker 设置里添加自定义域名,效果相同。
建议同时把 vars 里的 SITE_URL 设成新域名,见配置项。
Docker
Section titled “Docker”Calends 本身只提供 HTTP。在公网使用时,把它放在反向代理后面,由代理负责 HTTPS,并给容器设置 TRUST_PROXY=1。
Caddy(自动申请证书):
calends.example.com { reverse_proxy 127.0.0.1:8787}Nginx:
server { listen 443 ssl; server_name calends.example.com; # ssl_certificate / ssl_certificate_key ...
location / { proxy_pass http://127.0.0.1:8787; proxy_set_header Host $host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; }}内置助手的流式回复带有 X-Accel-Buffering: no 响应头,Nginx 不会缓冲它,回复能实时显示。
只在本机或内网用的话,可以直接访问 http://<IP>:8787/admin。浏览器只允许在 HTTPS 或 localhost 下使用 Passkey,用 IP 访问时只能用密码登录。
- Passkey 绑定在域名上,换到新域名后无法使用。先用密码登录,再在「设置 → 安全」里重新添加。
- 日历订阅链接、提醒里的链接使用站点地址。设置了
SITE_URL的,改成新域名;没设的,用新域名打开一次后台即可。已经订阅的日历需要换成新链接。 - MCP 客户端里的地址改成新域名,令牌不用换。
- 换域名不会影响数据。