Files
homelab/README.md
xiteng c824e22b53 refactor: Cloudflare Tunnel + frp SSH 中转变更
- 新增 cloudflared Docker 服务替代原 Bandwagon frp 方案
- 新增 frpc 转发 Git SSH 到阿里云 VPS
- 为所有服务添加 web entrypoint 路由(兼容 cloudflared HTTP)
- HedgeDoc 添加 X-Forwarded-Proto 中间件修复 CSP 登录问题
- Homepage 添加 xiteng.site 根域名路由
- Gitea 配置 SSH_DOMAIN=git.xiteng.site
- 更新 README 反映当前架构
- .gitignore: frpc.toml / credentials / letsencrypt
2026-05-25 16:13:02 +08:00

3.1 KiB
Raw Permalink Blame History

Homelab

部署在 CachyOS 上的全套家庭服务,通过 Cloudflare Tunnel + 阿里云 VPS SSH 中转向公网开放。

架构

公网用户
  │
  ├─ Web (443) ──→ Cloudflare Tunnel ──→ cloudflared (Docker) ──→ Traefik (反向代理)
  │                                                                 │
  └─ SSH (22)  ──→ 阿里云 VPS (frps) ──→ frpc (Docker) ──→ Gitea  │
                                                                    │
                                                    ┌───────────────┤
                                                    ▼               ▼
                                                 各 Web 服务      Gitea SSH
入口 域名 传输 延迟
Web *.xiteng.site Cloudflare Tunnel → Traefik ~50ms
Git SSH git.xiteng.site 阿里云 VPS → frp → Gitea ~5ms

服务一览

服务 地址 说明
Homepage xiteng.site 导航面板
Gitea gitea.xiteng.site 代码托管, git clone git@git.xiteng.site:…
HedgeDoc notes.xiteng.site Markdown 协作
Uptime Kuma uptime.xiteng.site 服务监控
MinIO 内网 对象存储(不暴露公网)
Traefik 内网 反向代理

目录结构

homelab/
├── compose.yml            # 共享网络定义 (homelab_net)
├── .env                   # 统一环境变量敏感gitignore
├── cloudflared/
│   ├── compose.yml
│   └── config.yml
├── frpc/
│   ├── compose.yml
│   └── frpc.toml          # 敏感gitignore
├── gitea/
│   ├── compose.yml
│   └── data/
├── hedgedoc/
│   ├── compose.yml
│   └── data/
├── homepage/
│   ├── compose.yml
│   └── config/
├── minio/
│   ├── compose.yml
│   └── data/
├── traefik/
│   ├── compose.yml
│   └── letsencrypt/       # gitignore
└── uptime-kuma/
    ├── compose.yml
    └── data/

网络

所有服务加入 homelab_net 自定义 bridge 网络,通过容器名互访,不暴露端口到宿主机。

快速启动

# 按依赖顺序启动
docker compose -f compose.yml up -d          # 创建网络
docker compose -f traefik/compose.yml up -d
docker compose -f gitea/compose.yml up -d
docker compose -f hedgedoc/compose.yml up -d
docker compose -f uptime-kuma/compose.yml up -d
docker compose -f homepage/compose.yml up -d
docker compose -f cloudflared/compose.yml up -d
docker compose -f frpc/compose.yml up -d

所需外部资源

资源 用途
Cloudflare DNS 域名托管 + Tunnel
阿里云 ECS (上海) Git SSH 中转 (frps)
Cloudflare Tunnel Web 流量入口

备案说明

所有 Web 流量走 Cloudflare Tunnel境外边缘终止 TLS域名未备案。SSH 通过阿里云 IP 直连,不受备案约束。