Files
server-ops/docs/服务清单.md

358 lines
11 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 栖云个人服务全景清单
> 最后更新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
**下次更新**:新增服务时立即更新
**维护者**:冯先生 + 小布主任