📖 部署与使用指南

个人 云基础设施 · 保姆级操作手册

🏗️ 概述

这套基础设施运行在 Windows WSL2(Ubuntu)上,通过 Docker Compose 管理,Cloudflare Tunnel 提供安全的外部访问。所有站点不暴露任何公网端口——用户只能通过 Cloudflare 边缘节点访问,源站完全在内网。

💡 核心理念: 先有内容的 obsidian 知识库 → 手动映射到 nginx html 目录 → Hermes Agent 辅助分析/写作 → CF Tunnel 发布

🚀 快速上手

1️⃣ 连接 & 重启

# WSL 终端(Windows Terminal 或 VSCode)
wsl

# 检查 Docker 状态
docker ps

# 重启 nginx(改配置后)
docker exec nginx-proxy nginx -s reload

2️⃣ 新增子站

三步走:

# ① 建目录放HTML
mkdir -p /mnt/c/AI-Workspace/docker-stack/nginx/html/新站名/
echo '<h1>Hello</h1>' > /mnt/c/AI-Workspace/docker-stack/nginx/html/新站名/index.html

# ② nginx加server block
# 编辑 /mnt/c/AI-Workspace/docker-stack/nginx/conf/default.conf
# 添加:
# server { listen 80; server_name 新站名.bearqh.fun; root /usr/share/nginx/html/新站名; index index.html; ... }

# ③ 加DNS(两种方式选一)
# A) CF Tunnel 自动:cloudflared tunnel route dns 隧道名 新站名.bearqh.fun
# B) CF Dashboard 手动:加 CNAME 记录 → 隧道域名

# ④ 重载
docker exec nginx-proxy nginx -s reload

3️⃣ Tunnel 重启流程

当 Tunnel 连接不稳定时(502、504 频繁出现):

# 停止旧 tunnel
docker stop cloudflared-tj

# 清除 stale connector(等 30 秒)
sleep 30

# 重启
docker start cloudflared-tj

# 等 60 秒让新 connector 注册
sleep 60

# 验证
docker logs cloudflared-tj --tail 20

🌐 域名体系

熊.online个人门户、知识、聊天、股票看板、装修站
bearqh.fun技术站、AI 孵化基地、Dify/n8n/MinIO/Portainer
保康.top保康统计局、政府信息公开、AI孵化基地(双域名)

所有域名由 Cloudflare 管理 DNS,A/AAAA 记录指到 192.0.2.0/24 占位(实际由 Tunnel 代理),CNAME 指向各隧道。

🐳 Docker 运维

常用命令

# 查看所有容器
docker ps -a

# 查看日志
docker logs -f nginx-proxy --tail 50

# 重启某个服务
docker restart n8n dify

# 拉取镜像(WSL网络不稳时)
# 方案1:镜像加速器
docker pull dockerproxy.com/库名/镜像名

# 方案2:本地构建
cd /mnt/c/AI-Workspace/docker-stack/
docker compose build 服务名
⚠️ WSL 网络说明: Tailscale + 企业网络环境下,Docker Hub / GHCR 拉取可能被 reset(大包下载不稳)。解决方案:(1)MTU=1280;(2)镜像加速器;(3)本地构建;(4)GitHub API 中转。

容器别名

nginx 容器名 nginx-proxy,Docker 网络别名叫 nginx-tj。Cloudflare Tunnel 的 origin service 配置为 http://nginx-tj:80。如果重建容器改了名,记得加别名或更新 cloudflared 配置。

🤖 Hermes Agent 使用

基础用法

# 企业微信端直接发消息即可
# AI会自动回复、调度任务、操作文件

# 常用命令
/faq     — 保康县统计FAQ
/tools   — 办公工具集
/data    — 统计数据查询
/report  — 报表API
/quick   — 快捷模板

数据分析工作流

  1. 上传 Excel/CSV 文件到企微对话
  2. Hermes 自动分析数据
  3. 分析结果写入 Obsidian 统计数据库(已报数据/分析数据/月报/其他)
  4. 或通过 ai.保康.top 在线工具处理

📊 统计数据管理

本地数据库

路径:C:\Users\36108\Desktop\统计数据\(Windows 桌面)

四类结构:

数据来源

主要从 tj.保康.top 获取 → Hermes 自动分析 → 写入 Obsidian 数据库对应分类。也可手动上传 Excel/CSV 替代。

🎓 AI 孵化基地(公益项目)

保康县 AI 编程人才孵化基地,全部课程和工具免费开放:ai.保康.top

🔧 常见问题

502 Bad Gateway

大概率 Tunnel connector 过期。重启 cloudflared 容器 → 等 60 秒即可恢复。

403 / 404

检查 nginx root 路径是否正确。注意 Docker 容器内路径是 /usr/share/nginx/html/,不是 WSL 的绝对路径。

WSL 无法访问外网

四层兜底脚本已配置:

  1. 代理(http_proxy/https_proxy)
  2. dpull(Docker pull 替代)
  3. 本地构建(docker compose build)
  4. Docker 镜像加速器

GitHub push/pull 超时

GIT_SSH_COMMAND="ssh -o ConnectTimeout=10 -o ServerAliveInterval=30" git push 或改 SSH 连接。