SayMeeveTime
AI 置顶

三件事:博客迁移、Caddy 部署、ChatGPT 账号池搭建

author
·
3
0

写在前面

今天干了三件事。第一件,把博客从阿里云迁移到海外服务器。第二件,用 Docker + Caddy 重新部署博客。第三件,搭了一套 ChatGPT 多账号反代系统,让多个 GPT 账号通过 CLIProxyAPI + Antigravity 统一出口,接入 ChatWise 和 Hermes 使用。

整个过程用了 Codex + Computer Use 来辅助操作,算是一次比较完整的 AI 辅助运维体验。记录一下。
Computer Use


一、博客迁移:从阿里云到海外服务器

为什么搬

原因很简单:SSL 证书要钱

阿里云的免费 SSL 证书政策收紧之后,续期和新申请都需要付费。一个技术博客,一年花几百块买证书,不值得。海外服务器配合 Caddy 或者 Cloudflare,HTTPS 证书自动签发、自动续期,零成本。

迁移的动机就这一个,没有更复杂的理由。

迁移做了什么

核心三步:

  1. 数据导出 —— 博客数据、配置文件、静态资源从阿里云打包拉下来。如果用的是 Hugo / Hexo 这类静态博客,源文件本身就在 Git 仓库里,这一步几乎零成本。
  2. 域名切换 —— 域名托管在 Cloudflare 上,直接改 DNS 记录,把 A 记录指向新服务器 IP。Cloudflare 的 DNS 生效速度很快,改完几分钟内就能解析到新机器。同时 Cloudflare 自带的 CDN 和 DDoS 防护也一并生效,不需要额外配置。
  3. 环境重建 —— 在新服务器上用 Docker 部署博客,Caddy 做反代。下面展开讲。

二、Docker + Caddy 部署博客

Docker 部署:数据映射到宿主机

博客跑在 Docker 容器里,但所有持久化数据——文章内容、配置文件、数据库(如果有的话)——全部通过 volume 映射到宿主机目录。

version: "3.8"
services:
  blog:
    image: your-blog-image
    container_name: blog
    restart: unless-stopped
    ports:
      - "8080:80"
    volumes:
      - ./data:/app/data
      - ./config:/app/config

这样做的好处是:容器随时可以删掉重建,数据不丢。备份也方便,直接打包宿主机上的目录就行,不需要进容器里操作。

Caddy:本机安装,不走 Docker

Caddy 没有放进 Docker,而是直接装在宿主机上

原因是 Caddy 作为最外层的反向代理,需要监听 80 和 443 端口。如果也放进容器,端口映射、容器间网络通信、证书存储都要额外处理,反而增加复杂度。本机装一个 Caddy,管理起来最直接。

安装:

sudo apt install -y caddy

为什么选 Caddy 不选 Nginx

就一个原因:配置文件简单

同样是把 blog.example.com 反代到本地 8080 端口,Caddy 的配置:

blog.example.com {
    reverse_proxy localhost:8080
}

三行,写完了。Caddy 会自动向 Let's Encrypt 申请 SSL 证书,自动续期,自动把 HTTP 重定向到 HTTPS。不需要你操心任何证书相关的事情。

Nginx 做同样的事,需要写 server 块、配 ssl_certificate 路径、配 location 代理、配 HTTP 到 HTTPS 的 301 重定向——十几二十行配置,还得单独跑 certbot 管理证书。

对于个人博客这种场景,Caddy 的简洁是碾压性的优势。

域名:托管在 Cloudflare

域名的 DNS 托管在 Cloudflare 上。Cloudflare 和 Caddy 配合使用时有一个细节需要注意:如果 Cloudflare 开启了代理模式(橙色云朵),Caddy 自动申请证书时可能会遇到验证失败的问题,因为 Cloudflare 的代理会拦截 ACME 的 HTTP-01 验证请求。

两种解法:一是把 Cloudflare 的代理模式关掉,改成仅 DNS(灰色云朵),让 Caddy 自己管证书;二是保持 Cloudflare 代理开启,用 Cloudflare 提供的 Origin Certificate,Caddy 端配置这张证书。

我选的第一种,简单直接。


三、CLIProxyAPI:多 ChatGPT 账号反代

这是今天最折腾但也最有价值的一件事。

问题背景

手上有多个 ChatGPT 和Antigravity 账号。直接用的话,每个账号需要单独管理、单独配置到不同的客户端里。账号多了之后,管理成本很高,而且负载不均衡——一个号用到限速了,另一个还闲着。

解决方案

CLI Proxy API

CLIProxyAPI 做的事情是:把多个 ChatGPT 账号汇聚成一个统一的 API 入口。它在本地起一个代理服务,对外暴露标准的 OpenAI API 格式,对内管理多个账号的 token 轮换和负载均衡。

再配合 Antigravity 做反代,整个链路:

ChatWise / Hermes(客户端)
        ↓
   Antigravity(反代层)
        ↓
   CLIProxyAPI(账号池管理)
        ↓
   多个 ChatGPT 账号

部署过程

git clone https://github.com/router-for-me/CLIProxyAPI.git
cd CLIProxyAPI

按照项目文档配置好账号信息后启动服务,然后在 Antigravity 中配置反代规则,将请求转发到 CLIProxyAPI 的监听端口。

最后在 ChatWiseHermes 的 API 设置中,把 Base URL 指向 Antigravity 的地址,API Key 填 CLIProxyAPI 分配的统一 key。

配置完成后,客户端发出的每一个请求,都会被 CLIProxyAPI 自动分发到不同的 ChatGPT 账号上。单个账号触发限速时,自动切换到下一个。对客户端完全透明。

为什么接入 ChatWise 和 Hermes

ChatWise 的优势在于多模型管理和 MCP 工具生态,适合日常对话和工具调用。Hermes 更轻量,适合快速提问和移动端使用。两个客户端接入同一个反代入口,共享同一个账号池,使用体验统一且稳定,但也只是做备用。


回顾

今天这三件事串起来看,做的其实是同一件事:用尽量低的成本,把自己的工具链搭稳

阿里云 SSL 要收费,那就换个不收费的方案。Nginx 配置太啰嗦,那就换 Caddy。多个 ChatGPT 账号管理太分散,那就建一个统一入口。

没有什么高深的技术,都是现成的工具拼在一起。但拼的过程本身,就是对自己工作流的一次梳理。


本文部署过程中使用 Codex + Computer Use 辅助完成服务器操作。

上一篇 没有更多文章了
下一篇 "AI" 吞噬一切,

评论 (0)

请先 登录 后发表评论