
## 1. 架构

```text
Obsidian / Remotely Save
        │
        │ HTTPS
        ▼
sync.cltech.xin
        │
        ▼
Nginx :443
        │
        ▼
127.0.0.1:8080
        │
        ▼
rclone WebDAV
        │
        ▼
/mnt/nas/obsidian
        │
        ▼
Alibaba Cloud NAS
```

---

## 2. ECS

|项目|配置|
|---|---|
|云厂商|Alibaba Cloud|
|地域|乌兰察布 / Inner Mongolia|
|CPU|2 vCPU|
|RAM|2 GB|
|系统盘|40 GB|
|OS|Ubuntu 24.04|
|Kernel|6.8.x|
|架构|amd64|
|公网 IPv4|8.130.215.143|
|域名|cltech.xin|
|WebDAV 域名|sync.cltech.xin|

---

## 3. DNS

DNS 服务商：

```text
Alibaba Cloud DNS
```

Nameserver：

```text
dns29.hichina.com
dns30.hichina.com
```

A Record：

```text
sync.cltech.xin
        ↓
8.130.215.143
```

---

## 4. NAS

NAS 挂载点：

```text
/mnt/nas
```

NAS WebDAV 数据目录：

```text
/mnt/nas/obsidian
```

NAS 地址：

```text
cn-wulanchabu.nas.aliyuncs.com
```

协议：

```text
NFS v3
```

rclone 服务用户：

```text
obsidian
```

目录权限：

```text
obsidian:obsidian
```

---

## 5. Swap

Swap 文件：

```text
/swapfile
```

大小：

```text
4 GB
```

永久挂载：

```text
/swapfile none swap sw 0 0
```

Swappiness：

```text
10
```

检查：

```bash
free -h
swapon --show
cat /proc/sys/vm/swappiness
```

---

## 6. 安装的软件

主要软件：

```text
Ubuntu 24.04
rclone
Nginx
Certbot
python3-certbot-nginx
dnsutils
```

其中：

### rclone

用途：

```text
提供 WebDAV 服务
```

### Nginx

用途：

```text
HTTPS
反向代理
```

### Certbot

用途：

```text
Let's Encrypt HTTPS 证书
自动续期
```

---

## 7. rclone

服务：

```text
rclone-obsidian.service
```

配置文件：

```text
/etc/rclone/obsidian.env
```

权限：

```text
600
```

WebDAV：

```text
127.0.0.1:8080
```

用户名：

```text
obsidian
```

密码：

```text
不要记录在这里
```

密码已经单独保存于服务器：

```text
/etc/rclone/obsidian.env
```

启动：

```bash
sudo systemctl start rclone-obsidian
```

停止：

```bash
sudo systemctl stop rclone-obsidian
```

重启：

```bash
sudo systemctl restart rclone-obsidian
```

状态：

```bash
sudo systemctl status rclone-obsidian
```

开机启动：

```bash
sudo systemctl enable rclone-obsidian
```

---

## 8. Nginx

配置：

```text
/etc/nginx/sites-available/obsidian
```

启用：

```text
/etc/nginx/sites-enabled/obsidian
```

作用：

```text
sync.cltech.xin
        ↓
Nginx :443
        ↓
127.0.0.1:8080
```

检查：

```bash
sudo nginx -t
```

重载：

```bash
sudo systemctl reload nginx
```

状态：

```bash
sudo systemctl status nginx
```

---

## 9. HTTPS

域名：

```text
sync.cltech.xin
```

证书：

```text
Let's Encrypt
```

Certbot：

```bash
sudo certbot --nginx -d sync.cltech.xin
```

测试续期：

```bash
sudo certbot renew --dry-run
```

---

## 10. 公网端口

开放：

```text
22/TCP
80/TCP
443/TCP
```

不开放：

```text
8080/TCP
```

rclone 只监听：

```text
127.0.0.1:8080
```

---

## 11. Obsidian Remotely Save

Remote Service：

```text
WebDAV
```

URL：

```text
https://sync.cltech.xin
```

Username：

```text
obsidian
```

Password：

```text
服务器上的 rclone WebDAV 密码
```

建议：

```text
开启 Password-based End-to-End Encryption
```

所有设备：

```text
使用相同 Vault 名称
```

---

## 12. 服务检查

### DNS

```bash
dig sync.cltech.xin
```

应该返回：

```text
8.130.215.143
```

### rclone

```bash
sudo systemctl status rclone-obsidian --no-pager
```

### Nginx

```bash
sudo systemctl status nginx --no-pager
```

### Swap

```bash
free -h
```

### Swappiness

```bash
cat /proc/sys/vm/swappiness
```

### NAS

```bash
mount | grep /mnt/nas
```

### WebDAV

```bash
curl -u 'obsidian:密码' \
  -X PROPFIND \
  -H 'Depth: 1' \
  https://sync.cltech.xin/
```

正常：

```text
HTTP/1.1 207 Multi-Status
```

---

## 13. 数据位置

最终数据实际存储在：

```text
Alibaba Cloud NAS
        ↓
/mnt/nas
        ↓
/mnt/nas/obsidian
        ↓
/mnt/nas/obsidian/<VaultName>/
```

ECS 的 40GB 系统盘：

```text
不用于存储 Obsidian Vault
```

主要用于：

```text
Ubuntu
rclone
Nginx
Certbot
系统日志
Swap
```

---

## 14. 恢复服务器的核心顺序

如果以后 ECS 重装：

```text
1. 安装 Ubuntu
2. 安装 NFS 客户端
3. 挂载 NAS 到 /mnt/nas
4. 创建 obsidian 用户
5. 安装 rclone
6. 创建 /etc/rclone/obsidian.env
7. 创建 rclone-obsidian.service
8. 启动 WebDAV
9. 安装 Nginx
10. 配置 sync.cltech.xin
11. 配置 HTTPS
12. 测试 WebDAV
13. 重新连接 Obsidian Remotely Save
```

核心数据仍然在：

```text
Alibaba Cloud NAS
```

因此 ECS 本身损坏不会直接导致 Vault 数据丢失。

---

## 15. 最重要的安全事项

### 不要公开 8080

正确：

```text
127.0.0.1:8080
```

错误：

```text
0.0.0.0:8080
```

### 不要公开 rclone 密码

密码只保存：

```text
/etc/rclone/obsidian.env
```

权限：

```text
600
```

### SSH

建议安全组只允许自己的 IP 使用 SSH。

### Obsidian

建议启用：

```text
Password-based End-to-End Encryption
```

### NAS

NAS 不直接暴露公网。

---

## 16. 当前服务关系

```text
Nginx
  │
  └── HTTPS
        │
        ▼
rclone WebDAV
  │
  └── Authentication
        │
        ▼
/mnt/nas/obsidian
        │
        ▼
Alibaba Cloud NAS
```

这是一个非常轻量的部署：

```text
没有 Docker
没有 Nextcloud
没有数据库
没有 Redis
没有 MinIO
没有额外 Web 应用
```

适合 2C2G ECS。