2026-06-27 新增:完整服务清单文档

This commit is contained in:
fxy
2026-06-27 14:11:56 +08:00
parent 025825596a
commit d61297d90e

357
docs/服务清单.md Normal file
View File

@ -0,0 +1,357 @@
# 栖云个人服务全景清单
> 最后更新2026-06-27
> 作者:冯先生
> 目的:防止遗忘,快速查阅所有服务的部署位置、访问方式、凭证
---
## 一、架构总览
```
┌─────────────────────────────────────────────────────────────┐
│ 外网访问 │
│ nav.xybkwd.top / podcast.xybkwd.top / vault.xybkwd.top ... │
└────────────────────────┬────────────────────────────────────┘
┌──────────────┴──────────────┐
│ 东京服务器 (43.163.225.30) │
│ Caddy 反代 + Docker 容器 │
│ 2C/4G跑全部核心服务 │
└──────────────┬──────────────┘
│ Tailscale 隧道
┌──────────────┴──────────────┐
│ 北京服务器 (81.70.93.78) │
│ Caddy 反代(独立端口) │
│ 国内流量加速 │
└──────────────┬──────────────┘
│ Tailscale 隧道
┌──────────────┴──────────────┐
│ 笔记本家庭100.99.151.78
│ Docker Desktop │
│ 音乐/相册/电子书 │
└─────────────────────────────────┘
```
---
## 二、东京服务器43.163.225.30
### 2.1 Docker 容器
| 服务名 | 镜像 | 端口 | 域名 | 功能 |
|:---|:---|:---:|:---|:---|
| **homepage** | ghcr.io/gethomepage/homepage | 3001→80 | nav.xybkwd.top | 导航页 |
| **authelia** | authelia/authelia | 9091 | auth.xybkwd.top | 统一认证 |
| **audiobookshelf** | ghcr.io/advplyr/audiobookshelf | 13378→80 | podcast.xybkwd.top | 有声书 |
| **freqtrade** | freqtradeorg/freqtrade | 8081→8080 | 内部使用 | 量化交易 |
| **webdav** | bytemark/webdav | 8766→80 | dav.xybkwd.top | WebDAV 服务器 |
| **vaultwarden** | vaultwarden/server | 8088→80 | vault.xybkwd.top | 密码管理 |
| **memos** | neosmemo/memos | 5230→5230 | memo.xybkwd.top | 碎片笔记 |
| **halo** | halohub/halo | 8090→8090 | halo.xybkwd.top | 博客 |
### 2.2 Systemd 服务
| 服务名 | 端口 | 域名 | 功能 |
|:---|:---:|:---|:---|
| **gitea** | 3000 | gitea.xybkwd.top | Git 仓库 |
| **caddy** | 80/443 | 所有域名 | HTTPS 反代 |
| **dashboard-api** | 9000 | dashboard.xybkwd.top | 市场结构 API |
| **dashboard** | 9001 | nav.xybkwd.top/api/todos | 待办系统 |
| **kb-qa** | - | ask.xybkwd.top | 知识库 Q&A |
| **auth_proxy** | - | - | Caddy 会话认证 |
| **shadowsocks** | - | - | 代理服务 |
| **tailscaled** | - | - | Tailscale 隧道 |
### 2.3 Caddy 反代规则
```
nav.xybkwd.top → localhost:3001 (Homepage)
auth.xybkwd.top → localhost:9091 (Authelia)
gitea.xybkwd.top → localhost:3000 (Gitea需认证)
memo.xybkwd.top → localhost:5230 (Memos)
podcast.xybkwd.top → localhost:13378 (Audiobookshelf无认证)
vault.xybkwd.top → localhost:8088 (Vaultwarden需认证)
dav.xybkwd.top → localhost:8766 (WebDAV需认证)
photo.xybkwd.top → 100.99.151.78:2283 (Immich无认证)
books.xybkwd.top → 100.99.151.78:8083 (Calibre-Web无认证)
halo.xybkwd.top → localhost:8090 (Halo)
dashboard.xybkwd.top → localhost:9000 (Dashboard需认证)
ask.xybkwd.top → localhost:8100 (知识库 Q&A)
brief.xybkwd.top → /var/www/nav (静态页面)
```
---
## 三、北京服务器81.70.93.78
### 3.1 Caddy 反代配置
| 端口 | 反代目标 | 用途 |
|:---:|:---|:---|
| **:8080** | 100.104.225.62:8080 | Gitea 原始文件访问 |
| **:4533** | 100.99.151.78:4533 | Navidrome 音乐服务 |
### 3.2 iptables 规则
```bash
# NAT 转发
sudo iptables -t nat -A PREROUTING -p tcp --dport 4533 -j DNAT --to-destination 100.99.151.78:4533
# 允许 FORWARD
sudo iptables -A FORWARD -p tcp -d 100.99.151.78 --dport 4533 -j ACCEPT
# 持久化
sudo iptables-save | sudo tee /etc/iptables/rules.v4 > /dev/null
```
---
## 四、笔记本家庭100.99.151.78
### 4.1 Docker 容器
| 服务名 | 镜像 | 端口 | 功能 |
|:---|:---|:---:|:---|
| **navidrome** | deluan/navidrome | 4533 | 音乐流媒体 |
| **calibre-web** | lscr.io/linuxserver/calibre-web | 8083 | 电子书管理 |
| **immich_server** | ghcr.io/immich-app/immich-server | 2283 | 相册备份 |
| **immich_redis** | valkey/valkey | 6379 | Immich 缓存 |
| **immich_postgres** | ghcr.io/immich-app/postgres | 5432 | Immich 数据库 |
| **immich_machine_learning** | ghcr.io/immich-app/immich-machine-learning | - | Immich AI 识别 |
### 4.2 数据目录
| 服务 | 数据目录 | 说明 |
|:---|:---|:---|
| Navidrome | D:\navidrome\data | 数据库 + 配置 |
| Navidrome | D:\我的音乐库 | 音乐文件(只读)|
| Calibre-Web | D:\calibre-web\config | 配置 + 书库 |
| Immich | D:\immich\upload | 原始照片 |
| Immich | D:\immich\thumbs | 缩略图 |
---
## 五、访问地址汇总
### 5.1 外网访问(推荐)
| 服务 | 地址 | 说明 |
|:---|:---|:---|
| 导航页 | https://nav.xybkwd.top | 所有服务的入口 |
| Gitea | https://gitea.xybkwd.top | Git 仓库 |
| 有声书 | https://podcast.xybkwd.top | Audiobookshelf |
| 密码库 | https://vault.xybkwd.top | Vaultwarden |
| 日记 | https://memo.xybkwd.top | Memos |
| 相册 | https://photo.xybkwd.top | Immich |
| 电子书 | https://books.xybkwd.top | Calibre-Web |
| 音乐 | http://81.70.93.78:4533 | Navidrome北京 IP|
| 博客 | https://halo.xybkwd.top | Halo |
| 仪表盘 | https://dashboard.xybkwd.top | Dashboard |
| 知识库 | https://ask.xybkwd.top | 知识库 Q&A |
### 5.2 内网访问Tailscale
| 服务 | 地址 | 说明 |
|:---|:---|:---|
| 音乐 | http://100.99.151.78:4533 | Navidrome直连|
| 相册 | http://100.99.151.78:2283 | Immich直连|
| 电子书 | http://100.99.151.78:8083 | Calibre-Web直连|
---
## 六、凭证与 Token
### 6.1 Gitea
| 字段 | 值 |
|:---|:---|
| Git Push URL | `http://fxy:7aea3932996ad4cbacfa8aa01fa9a314599df353@localhost:3000/fxy/<repo名>.git` |
| API Token | `7aea3932996ad4cbacfa8aa01fa9a314599df353` |
| 用户名 | fxy |
| 权限 | admin |
### 6.2 WebDAV一本日记
| 字段 | 值 |
|:---|:---|
| 服务器地址 | `https://dav.xybkwd.top` |
| 用户名 | `fxy` |
| 密码 | 见 Gitea `fxy/server-ops/credentials/diary-webdav.md` |
| 证书验证 | 关闭(自签证书)|
### 6.3 微信读书 API
| 字段 | 值 |
|:---|:---|
| API Key | `wrk-MM9aAoEnTiG51JaSK7Ix5wAA` |
| API 地址 | `https://i.weread.qq.com/api/agent/gateway` |
| 认证方式 | `Authorization: Bearer {API Key}` |
### 6.4 Server酱微信推送
| 字段 | 值 |
|:---|:---|
| SendKey | 见 `~/.bashrc` 或记忆文件 |
| API 地址 | `https://sctapi.ftqq.com/{SendKey}.send` |
### 6.5 Navidrome
| 字段 | 值 |
|:---|:---|
| 管理员账号 | 首次访问时注册 |
| 音乐目录 | `D:\我的音乐库` |
| 配置文件 | `D:\navidrome\docker-compose.yml` |
### 6.6 Immich
| 字段 | 值 |
|:---|:---|
| 访问地址 | `https://photo.xybkwd.top` |
| 管理员账号 | 首次访问时注册 |
| 上传目录 | `D:\immich\upload` |
---
## 七、SSH 访问
### 7.1 东京服务器
```bash
ssh -i "C:/Users/32779/Desktop/保险箱/ssh_new.pem" ubuntu@43.163.225.30
```
### 7.2 北京服务器
```bash
ssh -i "C:/Users/32779/Desktop/保险箱/BJ.pem" ubuntu@81.70.93.78
```
### 7.3 笔记本Tailscale
```bash
ssh -i "C:/Users/32779/Desktop/保险箱/TS.pem" ubuntu@100.99.151.78
```
---
## 八、日常运维命令
### 8.1 东京服务器
```bash
# 查看所有容器
docker ps
# 查看 Caddy 日志
sudo journalctl -u caddy -n 50
# 重启 Caddy
sudo systemctl restart caddy
# 查看 Gitea 日志
sudo journalctl -u gitea -n 50
```
### 8.2 北京服务器
```bash
# 查看 Caddy 配置
cat /etc/caddy/Caddyfile
# 重启 Caddy
sudo systemctl restart caddy
# 查看 iptables 规则
sudo iptables -t nat -L -n -v
```
### 8.3 笔记本
```bash
# 查看所有容器
docker ps
# 重启 Navidrome
cd D:\navidrome && docker compose restart
# 查看 Navidrome 日志
docker logs navidrome --tail 50
```
---
## 九、备份与恢复
### 9.1 重要目录
| 目录 | 备份频率 | 备份位置 |
|:---|:---:|:---|
| Gitea 数据 | 每日 | `fxy/server-ops` |
| Inspired 收集器 | 每 30 分钟 | `fxy/inspiration-collector` |
| 微信读书笔记 | 每小时 | `fxy/weread-notes` |
| 电子书库 | 每周 | `D:\服务器备份\calibre-web\` |
| 有声书 | 每周 | `D:\服务器备份\有声书\` |
| 照片库 | 每周 | `D:\服务器备份\immich\` |
### 9.2 恢复流程
1. **Gitea 仓库**:从 `fxy/server-ops` 克隆
2. **音乐库**:从 `D:\我的音乐库` 恢复
3. **照片库**:从 `D:\服务器备份\immich\` 恢复
---
## 十、常见问题
### 10.1 音乐服务加载不出来艺术家
**原因**Navidrome 首次扫描需要下载艺术家图片和信息,耗时较长。
**解决**:等待 10-30 分钟或禁用在线元数据Settings → Library → 取消勾选 Last.fm/Spotify
### 10.2 北京服务器端口不通
**原因**iptables 规则未持久化,服务器重启后丢失。
**解决**
```bash
sudo iptables-save | sudo tee /etc/iptables/rules.v4 > /dev/null
```
### 10.3 Immich 上传失败
**原因**Tailscale 隧道断开,或笔记本休眠。
**解决**:检查 Tailscale 状态(`tailscale status`),确保笔记本不休眠。
---
## 附录:服务依赖关系
```
用户访问
Caddy (东京/北京)
├─ 静态服务(直接返回)
│ ├─ Homepage (3001)
│ ├─ Brief (静态文件)
│ └─ Ask (8100)
├─ Docker 服务(反代到容器)
│ ├─ Audiobookshelf (13378)
│ ├─ Vaultwarden (8088)
│ ├─ Memos (5230)
│ ├─ Halo (8090)
│ └─ WebDAV (8766)
└─ Tailscale 服务(反代到笔记本)
├─ Immich (2283)
├─ Calibre-Web (8083)
└─ Navidrome (4533经北京反代)
```
---
**文档版本**v1.0
**下次更新**:新增服务时立即更新
**维护者**:冯先生 + 小布主任