initial vault sync

This commit is contained in:
冯先生
2026-06-23 00:24:32 +08:00
commit 8e7723c17a
795 changed files with 157458 additions and 0 deletions

View File

@ -0,0 +1,311 @@
# 栖云个人服务部署方案 v2
> 2026-06-15 | 基于当前服务器状态2C/4G/59G SSD已用 13G可用 45G制定
---
## 一、当前状态
### 已部署服务11 个)
| 服务 | 域名 | 端口 | 部署方式 | 状态 |
|:---|:---|:---|:---|:---|
| Halo 博客 | www.xybkwd.top | 8090 | Docker | 运行中 |
| Gitea | gitea.xybkwd.top | 3000 | Docker | 运行中 |
| Beast Dashboard | dashboard.xybkwd.top | 9000 | Docker | 运行中 |
| Memos | memo.xybkwd.top | 5230 | Docker | 运行中 |
| 栖云导航 | nav.xybkwd.top | 80/443 | Caddy 静态 | 运行中 |
| 要闻 | brief.xybkwd.top | 80/443 | Caddy 静态 | 运行中 |
| Vaultwarden | vault.xybkwd.top | 8088 | Docker | 运行中 |
| Calibre-Web | books.xybkwd.top | 8083 | Docker | 运行中 |
| Freqtrade | — | — | Docker | 运行中 |
| 灵感收集器 | — | — | cron+Python | 运行中 |
| AI Chat | chat.xybkwd.top | — | Caddy 反代 | 运行中 |
### 基础设施
- **反向代理**Caddy自动 HTTPS
- **认证**Caddy basicauthfxy / Qiyun2025!),覆盖除博客和 Vaultwarden 外的所有服务
- **防火墙**ufw默认 deny incoming
- **代理**Shadowsocks-libev31567
- **DNS**:腾讯云泛解析 `*.xybkwd.top` → 43.163.225.30
### 资源余量
- **内存**3.6G 总量,已用 2.1G,可用 ~1.5G
- **磁盘**59G 总量,已用 13G可用 45G
- **CPU**2 核,负载较低
---
## 二、8 个部署方向方案
### 1. 全文搜索 — Meilisearch
**定位**:给 Gitea 仓库、Memos 灵感、博客文章、Calibre 书库提供统一搜索入口。
**选型**MeilisearchRust 编写,内存友好,自带 Web UI中文分词支持好
**部署方案**
- Docker`getmeili/meilisearch:latest`
- 端口7700
- 域名:`search.xybkwd.top`
- 内存占用:~200MB
- 磁盘:索引数据 ~500MB按当前内容量估算
**数据源接入**
- Gitea通过 API 拉取仓库 README 和文档
- Memos通过 API 拉取所有 memo
- Halo 博客:通过 API 拉取文章
- Calibre-Web通过 API 拉取书目元数据
**实现路径**
1. 部署 Meilisearch Docker 容器
2. 写一个 Python 脚本,定时从各数据源拉取内容推入 Meilisearch
3. 做一个简单的搜索页面(纯 HTML放在 `/var/www/nav/search.html`
4. Caddy 反代 `search.xybkwd.top` → localhost:7700
**资源评估**:内存 +200MB磁盘 +500MB完全可行。
---
### 2. 书影音管理 — 已有 Calibre-Web + 扩展
**当前状态**Calibre-Web 已部署books.xybkwd.top仅覆盖电子书。
**扩展方向**
- **电影/剧集**:不推荐在 2C/4G 服务器上跑 Jellyfin/Plex太重。建议用 **Ryot**Rust 编写的轻量级媒体追踪器),追踪已看/想看的电影剧集,不托管媒体文件
- **音乐**Navidrome 太吃内存。建议用 Ryot 统一管理书影音"已读/已看/已听"记录
**部署方案**
- Docker`ghcr.io/ignisda/ryot:latest`
- 端口8555
- 域名:`media.xybkwd.top`
- 内存占用:~150MB
- 数据库SQLite无需额外容器
**与 Calibre-Web 的关系**Calibre-Web 管"书库本身"Ryot 管"阅读/观看记录和评分"。两者互补。
**资源评估**:内存 +150MB磁盘 +200MB可行。
---
### 3. n8n — 自动化工作流引擎
**定位**:可视化的自动化编排工具,替代零散的 cron 脚本。
**选型**n8n开源自部署节点丰富支持 AI 节点)
**部署方案**
- Docker`n8nio/n8n:latest`
- 端口5678
- 域名:`n8n.xybkwd.top`
- 内存占用:~300-500MB 较重)
- 磁盘:~1GB含数据库和工作流
**可替代的 cron 任务**
- 灵感收集器每日分析
- 交易日报生成
- 新闻抓取和摘要
- DeepSeek 余额检查
- 备份脚本
**⚠️ 资源警告**n8n 是 8 个方向中最吃资源的。当前可用内存 ~1.5G,部署 n8n 后剩余 ~1G。如果后续还要加其他服务可能需要取舍。
**替代方案**:如果资源紧张,可以用 **Activepieces**(更轻量)或保持 cron 脚本不变。
**资源评估**:内存 +400MB磁盘 +1GB勉强可行但需关注。
---
### 4. RSS Hub — 信息聚合
**定位**:把微信公众号、网站、社交媒体等没有 RSS 的信息源转成 RSS 订阅。
**选型**RSSHubNode.js社区庞大路由覆盖广
**部署方案**
- Docker`diygod/rsshub:latest`
- 端口1200
- 域名:`rss.xybkwd.top`
- 内存占用:~200-300MB
- 磁盘:缓存 ~200MB
**推荐路由**
- 微信公众号(需 cookie
- 知乎专栏/用户
- GitHub Trending/Release
- 加密货币相关CoinDesk、The Block
- 政策文件(中国政府网、发改委)
**配套阅读器**:推荐 **Miniflux**Go 编写,极简,~50MB 内存)
- Docker`miniflux/miniflux:latest`
- 端口8080
- 域名:`reader.xybkwd.top`
**资源评估**RSSHub + Miniflux 合计内存 +300MB磁盘 +300MB可行。
---
### 5. 图床 — 私有图片托管
**定位**:替代腾讯云 COS 的私有图片存储Markdown 写作时直接引用。
**选型**Lsky Pro兰空图床PHP功能完整
**部署方案**
- Docker`halcyonazure/lsky-pro:latest`
- 端口8089
- 域名:`img.xybkwd.top`
- 内存占用:~100MB
- 磁盘:取决于图片量(初始 ~100MB
**功能**
- Web 上传 / API 上传 / 剪贴板粘贴
- 自动生成 Markdown/HTML/URL 链接
- 相册管理、角色权限
- 支持 S3/COS 等外部存储(可后续对接腾讯云 COS 做备份)
**⚠️ 注意**:图片存储在服务器本地磁盘上。如果图片量大,建议定期备份到 COS 或本地。
**资源评估**:内存 +100MB磁盘按需增长可行。
---
### 6. 自动化抓取 — 定向信息采集
**定位**:定时抓取特定网站的信息,结构化存储,供 AI 分析。
**选型****changedetection.io**(监控网页变化)+ 自定义 Python 爬虫
**部署方案 A — 网页变化监控**
- Docker`ghcr.io/dgtlmoon/changedetection.io:latest`
- 端口5000
- 域名:`watch.xybkwd.top`
- 内存占用:~200MB
- 功能:监控任意网页变化,支持 CSS 选择器定位,变化时发通知
**部署方案 B — 定向爬虫**
- 用 PythonBeautifulSoup/httpx写轻量爬虫
- 目标:政策文件、行业报告、竞品动态
- 输出:结构化 JSON → Gitea 仓库 → AI 分析
- 调度cron或 n8n如果部署了的话
**推荐组合**changedetection.io 做"监控"Python 脚本做"采集",灵感收集器做"分析"。
**资源评估**:内存 +200MB磁盘 +200MB可行。
---
### 7. 语音助手 — 个人 AI 语音交互
**定位**:通过语音与 AI 对话,适合开车、做家务等场景。
**选型****Open WebUI + Piper TTS**(本地语音合成)
**部署方案**
- Open WebUI`ghcr.io/open-webui/open-webui:main`(端口 3001
- Piper TTS本地语音合成引擎~100MB 模型)
- 域名:`voice.xybkwd.top`
**⚠️ 现实约束**
- 2C/4G 服务器跑不了本地 LLM语音识别和生成仍需调用 DeepSeek API
- Open WebUI 本身内存占用 ~500MB+,较重
- 手机端已有 DeepSeek App 支持语音输入,体验更好
**替代方案**
- **不部署服务端**,直接用 DeepSeek App 的语音功能
- 或者部署一个极简的 **Web 语音对话页面**(浏览器 SpeechRecognition API + DeepSeek API无需额外 Docker 容器,内存占用接近零
**推荐**:极简 Web 页面方案。写一个单页 HTML用浏览器原生语音 API后端只做 API 转发。部署在 `/var/www/nav/voice.html`
**资源评估**极简方案几乎零资源占用Open WebUI 方案内存 +500MB不推荐。
---
### 8. 微信读书同步 — 阅读数据归集
**定位**:把微信读书的划线、笔记、书评同步到 Gitea与 Calibre-Web 书库打通。
**选型****weread-exporter**Python社区维护
**部署方案**
- 不部署服务,用 Python 脚本 + cron 定时同步
- 脚本:`~/scripts/weread_sync.py`
- 输出Markdown 格式的划线/笔记 → Gitea 仓库 `fxy/weread-notes`
- 频率:每日一次
**实现路径**
1. 获取微信读书 Cookie浏览器登录后导出
2. 部署 weread-exporter 脚本
3. 配置 cron 每日同步
4. 输出到 Gitea 仓库,可在 nav 页面加一个"读书笔记"入口
**与 Calibre-Web 的关系**
- Calibre-Web 管"自有电子书"(文石阅读器上的书)
- 微信读书同步管"微信读书 App 上的书"
- 两者互补,覆盖全部阅读场景
**资源评估**:几乎零资源占用(一个 Python 脚本 + cron
---
## 三、部署优先级建议
按资源消耗、实用价值、实现难度综合排序:
| 优先级 | 方向 | 理由 |
|:---:|:---|:---|
| **P0** | 微信读书同步 | 零资源占用,高实用价值,快速落地 |
| **P0** | 图床 | 轻量,解决 Markdown 写作刚需 |
| **P1** | 全文搜索 | 打通已有数据孤岛,提升信息检索效率 |
| **P1** | 自动化抓取 | 信息采集是 AI 分析的原料 |
| **P2** | RSS Hub | 信息聚合,但需配合阅读器使用 |
| **P2** | 书影音管理 | Calibre-Web 已覆盖书,扩展影音记录 |
| **P3** | 语音助手 | 极简方案可行,但手机 App 已够用 |
| **P3** | n8n | 功能强大但吃资源,当前 cron 够用 |
---
## 四、资源预算
如果全部部署(不含 n8n 的完整方案):
| 项目 | 内存增量 | 磁盘增量 |
|:---|:---|:---|
| 微信读书同步 | ~0 | ~50MB |
| 图床 (Lsky Pro) | +100MB | +100MB |
| 全文搜索 (Meilisearch) | +200MB | +500MB |
| 自动化抓取 (changedetection.io) | +200MB | +200MB |
| RSS Hub + Miniflux | +300MB | +300MB |
| 书影音管理 (Ryot) | +150MB | +200MB |
| 语音助手 (极简 Web) | ~0 | ~0 |
| **合计** | **+950MB** | **+1.35GB** |
**当前可用**:内存 ~1.5G,磁盘 45G。全部部署后内存剩余 ~550MB磁盘剩余 ~43.6GB。**可行,但内存偏紧。**
---
## 五、建议分批推进
**第一批(本周)**:微信读书同步 + 图床 + 全文搜索
- 内存增量:+300MB
- 解决三个高频刚需
**第二批(下周)**:自动化抓取 + RSS Hub
- 内存增量:+500MB
- 信息采集基础设施
**第三批(后续)**:书影音管理 + 语音助手
- 内存增量:+150MB
- 锦上添花
**n8n**:单独评估,如果部署则需停掉部分 cron 任务释放资源,或者等服务器升级后再上。
---
## 六、后续可考虑
- **服务器升级**:当前 2C/4G 跑 11 个服务已用 2.1G 内存,再加 7-8 个服务会到 3G+。如果后续要上 n8n 或本地 LLM建议升级到 4C/8G
- **监控告警**:目前没有服务健康监控(除 freqtrade 有 health_check.sh建议加一个 Uptime Kuma轻量~100MB
- **备份策略**:当前有每日备份脚本,建议定期验证备份可恢复性