环境:Linux Mint 21.x | Podman 4.9 | rootless 模式
目标:开机自启、崩溃自恢复、全浏览器通用、零翻墙。
1. 最终效果
- Chrome / Edge / Firefox 通过 Floccus 插件把书签实时同步到 本地 WebDAV。
- 数据落盘
~/webdav/data/bookmarks.xbel
,完全私有。
- 使用 Podman Pod + 用户级 systemd 托管,重启后无需登录即可自动拉起。
2. 一键脚本(用户级 systemd)
把下面保存为 ~/bin/webdav-pod.sh
并给执行权限:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
| #!/usr/bin/env bash set -e POD_NAME=webdav-pod PORT=18080 USER=floccus PASS=$(openssl rand -hex 8) DATA_DIR="$HOME/webdav/data"
mkdir -p "$DATA_DIR" echo "PASSWORD=$PASS"
podman pod create --name "$POD_NAME" -p "$PORT":80
podman run -d --restart=no --pod "$POD_NAME" \ --name webdav \ -e USERNAME="$USER" \ -e PASSWORD="$PASS" \ -v "$DATA_DIR":/var/lib/dav:Z \ docker.io/bytemark/webdav
mkdir -p ~/.config/systemd/user cd ~/.config/systemd/user podman generate systemd --name "$POD_NAME" --files --new systemctl --user daemon-reload systemctl --user enable --now "pod-${POD_NAME}.service"
|
执行:
1 2
| chmod +x ~/bin/webdav-pod.sh ~/bin/webdav-pod.sh
|
3. 浏览器配置(Floccus)
项 |
值 |
服务器地址 |
http://<电脑IP>:18080/ |
用户名 |
floccus |
密码 |
脚本输出的 16 位随机串 |
书签路径 |
bookmarks.xbel |
同步策略 |
双向同步,15 min |
4. 日常运维(用户级)
1 2 3 4 5 6 7 8
| journalctl --user -u pod-webdav-pod -f
systemctl --user restart pod-webdav-pod
cp ~/webdav/data/bookmarks.xbel{,.$(date +%F)}
|
5. 卸载清理(用户级)
1 2 3 4 5
| systemctl --user stop pod-webdav-pod systemctl --user disable pod-webdav-pod rm -f ~/.config/systemd/user/{pod,pod-webdav-pod,container-webdav}.service systemctl --user daemon-reload podman pod rm -f webdav-pod
|
6. 同步插件下载地址
整个方案 零依赖云厂商,换电脑/重装系统只需把 ~/webdav/data
备份带走,再跑一遍脚本即可恢复同步。Happy syncing!