用 Podman 在家用电脑搭私人 WebDAV 书签同步服务
环境: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" # 1. 创建 Pod(rootless) podman pod create --name "$POD_NAME" -p "$PORT":80 # 2. 运行容器(rootless) 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 # 无法拉取镜像需要配置podman国内源 # 3. 生成用户级 systemd 单元 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 # 重启 Pod(含内部容器) 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. 同步插件下载地址 Chrome / Edge: https://chrome.google.com/webstore/detail/floccus-bookmarks-sync/fnaicdffflnofjppbagibeoednhnbjhg Firefox: https://addons.mozilla.org/firefox/addon/floccus/ 整个方案 零依赖云厂商,换电脑/重装系统只需把 ~/webdav/data 备份带走,再跑一遍脚本即可恢复同步。Happy syncing!