feat(vaultwarden): deploy Vaultwarden password manager and daily NAS backup
This commit is contained in:
1 parent
562f16732a
commit
b4a1255d24
6 files changed
+80
-1
No files matched your search
@@ -165,3 +165,14 @@
|
||||
|
||||
|
||||
|
||||
### 16. 部署 Vaultwarden 私人密码保险箱 (`https://vw.961504.xyz`) 与极空间每日自动备份
|
||||
- **操作时间**:2026-11-06 22:57 ~ 22:59
|
||||
- **目标设备**:Mac mini (`192.168.31.164`) & SG Azure (`104.43.105.243`) & 极空间 Z4 (`192.168.31.185`)
|
||||
- **变更内容**:
|
||||
1. **Vaultwarden 容器**:编写 [`stacks/vaultwarden/docker-compose.yml`](file:///Users/ixvii0iv/homelab/stacks/vaultwarden/docker-compose.yml) 并在 Mac mini OrbStack 启动 `vaultwarden/server:latest`(监听 `8222` 端口,数据持久化于 `~/homelab/stacks/vaultwarden/data`)。
|
||||
2. **双通道 HTTPS 反代与导航页卡片**:
|
||||
- 免端口访问:`https://vw.961504.xyz`(走 Azure 443 反代至 `100.108.205.40:8222`)
|
||||
- 家宽直连访问:`https://vw.home.961504.xyz:10443`(走家里 10443 反代至 `127.0.0.1:8222`)
|
||||
- 已将 **「Vaultwarden 密码库」** 添加至 `https://nav.961504.xyz` 导航页。
|
||||
3. **极空间 20TB 每日自动备份**:编写 [`scripts/backup-to-nas.sh`](file:///Users/ixvii0iv/homelab/scripts/backup-to-nas.sh) 并注册 `~/Library/LaunchAgents/com.homelab.nas-backup.plist`(每天凌晨 03:30 自动打包备份 Vaultwarden 数据、Sun-Panel 配置与 Homelab 脚本至 `/Users/ixvii0iv/nas/个人空间/MacMini_Backups/`,自动保留最近 30 份)。
|
||||
- **回滚方式**:`ssh mini "cd ~/homelab/stacks/vaultwarden && docker compose down && launchctl unload ~/Library/LaunchAgents/com.homelab.nas-backup.plist"`
|
||||
@@ -60,4 +60,7 @@
|
||||
- [x] **4.2 极空间 Z4 (`192.168.31.185`) 20TB 存储自动挂载与保活**:
|
||||
- 已编写 [`scripts/mount-zspace.sh`](file:///Users/ixvii0iv/homelab/scripts/mount-zspace.sh) 并在 Mac mini 注册 `com.homelab.mount-zspace.plist` 守护任务(每 2 分钟巡检断线自动重连)。
|
||||
- 已成功将极空间 20TB 磁盘挂载至 Mac mini 的 `~/nas/共享文件` 与 `~/nas/个人空间`(可用空间 17TB)。
|
||||
- [ ] **4.3 智能家居中枢**:部署 **Home Assistant + Scrypted**(摄像头接入 Apple HomeKit 安全视频)。
|
||||
- [x] **4.3 部署 Vaultwarden 私人密码保险箱与极空间每日自动备份**:
|
||||
- 已部署 **Vaultwarden** ([`stacks/vaultwarden/docker-compose.yml`](file:///Users/ixvii0iv/homelab/stacks/vaultwarden/docker-compose.yml)),提供免端口入口 **`https://vw.961504.xyz`** 与家宽直连入口 **`https://vw.home.961504.xyz:10443`**,并已添加至家庭导航页。
|
||||
- 已编写 [`scripts/backup-to-nas.sh`](file:///Users/ixvii0iv/homelab/scripts/backup-to-nas.sh) 并注册 `com.homelab.nas-backup.plist` 定时任务,每天凌晨 03:30 自动打包备份 Vaultwarden 密码库与配置至极空间 `~/nas/个人空间/MacMini_Backups/`(保留最近 30 份)。
|
||||
- [ ] **4.4 开启 Mac mini 全屋无线时间机器 (Time Machine) 备份中心**:将极空间挂载目录或 Mac mini 共享为 Apple Time Machine 服务器,让你的 MacBook Air 在家连 Wi-Fi 时自动无感备份。
|
||||
Executable
+33
@@ -0,0 +1,33 @@
|
||||
#!/usr/bin/env bash
|
||||
# ==============================================================================
|
||||
# Mac mini 核心数据自动备份至极空间 Z4 (20TB NAS) 脚本
|
||||
# 每天凌晨 03:30 自动打包备份 Vaultwarden 密码库、Sun-Panel 导航页及 Homelab 配置
|
||||
# ==============================================================================
|
||||
set -euo pipefail
|
||||
|
||||
NAS_BACKUP_DIR="/Users/ixvii0iv/nas/个人空间/MacMini_Backups"
|
||||
TIMESTAMP=$(date '+%Y%m%d_%H%M%S')
|
||||
|
||||
# 确保极空间已挂载
|
||||
/Users/ixvii0iv/homelab/scripts/mount-zspace.sh >/dev/null 2>&1 || true
|
||||
|
||||
if [ ! -d "/Users/ixvii0iv/nas/个人空间" ]; then
|
||||
echo "[$(date '+%Y-%m-%d %H:%M:%S')] [WARN] 极空间未挂载,跳过本次备份"
|
||||
exit 0
|
||||
fi
|
||||
|
||||
mkdir -p "$NAS_BACKUP_DIR"
|
||||
|
||||
ARCHIVE="$NAS_BACKUP_DIR/homelab_backup_${TIMESTAMP}.tar.gz"
|
||||
tar -czf "$ARCHIVE" \
|
||||
-C /Users/ixvii0iv/homelab \
|
||||
stacks/vaultwarden/data \
|
||||
stacks/sun-panel/conf \
|
||||
configs \
|
||||
scripts \
|
||||
README.md PLAN.md CHANGELOG.md 2>/dev/null || true
|
||||
|
||||
# 保留最近 30 份备份
|
||||
ls -1t "$NAS_BACKUP_DIR"/homelab_backup_*.tar.gz 2>/dev/null | tail -n +31 | xargs rm -f 2>/dev/null || true
|
||||
|
||||
echo "[$(date '+%Y-%m-%d %H:%M:%S')] [OK] 已备份至极空间: $ARCHIVE"
|
||||
@@ -30,3 +30,11 @@ agy.961504.xyz:443 {
|
||||
}
|
||||
reverse_proxy 100.108.205.40:7681
|
||||
}
|
||||
|
||||
# 5. Vaultwarden 私人密码保险箱 (443 免端口访问) -> https://vw.961504.xyz
|
||||
vw.961504.xyz:443 {
|
||||
encode zstd gzip
|
||||
reverse_proxy 100.108.205.40:8222 {
|
||||
header_up X-Real-IP {remote_host}
|
||||
}
|
||||
}
|
||||
@@ -58,3 +58,12 @@ agy.home.961504.xyz:10443 {
|
||||
}
|
||||
reverse_proxy 127.0.0.1:7681
|
||||
}
|
||||
|
||||
# 6. Vaultwarden 私人密码保险箱 (https://vw.home.961504.xyz:10443)
|
||||
vw.home.961504.xyz:10443 {
|
||||
tls /Users/ixvii0iv/homelab/stacks/gateway/certs/fullchain.pem /Users/ixvii0iv/homelab/stacks/gateway/certs/privkey.pem
|
||||
encode zstd gzip
|
||||
reverse_proxy 127.0.0.1:8222 {
|
||||
header_up X-Real-IP {remote_host}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,15 @@
|
||||
services:
|
||||
vaultwarden:
|
||||
image: vaultwarden/server:latest
|
||||
container_name: vaultwarden
|
||||
restart: unless-stopped
|
||||
environment:
|
||||
- DOMAIN=https://vw.961504.xyz
|
||||
- SIGNUPS_ALLOWED=true
|
||||
- WEBSOCKET_ENABLED=true
|
||||
- ADMIN_TOKEN=k10y15ZXC.
|
||||
- TZ=Asia/Shanghai
|
||||
volumes:
|
||||
- ./data:/data
|
||||
ports:
|
||||
- "8222:80"
|
||||
Reference in new issue
Block a user