11 KiB
11 KiB
栖云个人服务全景清单
最后更新: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 规则
# 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 东京服务器
ssh -i "C:/Users/32779/Desktop/保险箱/ssh_new.pem" ubuntu@43.163.225.30
7.2 北京服务器
ssh -i "C:/Users/32779/Desktop/保险箱/BJ.pem" ubuntu@81.70.93.78
7.3 笔记本(Tailscale)
ssh -i "C:/Users/32779/Desktop/保险箱/TS.pem" ubuntu@100.99.151.78
八、日常运维命令
8.1 东京服务器
# 查看所有容器
docker ps
# 查看 Caddy 日志
sudo journalctl -u caddy -n 50
# 重启 Caddy
sudo systemctl restart caddy
# 查看 Gitea 日志
sudo journalctl -u gitea -n 50
8.2 北京服务器
# 查看 Caddy 配置
cat /etc/caddy/Caddyfile
# 重启 Caddy
sudo systemctl restart caddy
# 查看 iptables 规则
sudo iptables -t nat -L -n -v
8.3 笔记本
# 查看所有容器
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 恢复流程
- Gitea 仓库:从
fxy/server-ops克隆 - 音乐库:从
D:\我的音乐库恢复 - 照片库:从
D:\服务器备份\immich\恢复
十、常见问题
10.1 音乐服务加载不出来艺术家
原因:Navidrome 首次扫描需要下载艺术家图片和信息,耗时较长。
解决:等待 10-30 分钟,或禁用在线元数据(Settings → Library → 取消勾选 Last.fm/Spotify)。
10.2 北京服务器端口不通
原因:iptables 规则未持久化,服务器重启后丢失。
解决:
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
下次更新:新增服务时立即更新
维护者:冯先生 + 小布主任