
xlrl/radicaledocker-radicale 是 Radicale CalDAV/CardDAV 服务器的 Docker 容器化实现,用于提供自托管的日历(CalDAV)和联系人(CardDAV)同步服务。
创建本地数据目录(示例:/srv/radicale/data),并在该目录下创建最小化配置文件 config.ini:
ini[auth] type = htpasswd # 容器内用户文件路径 htpasswd_filename = /var/radicale/users # htpasswd 文件加密方式 htpasswd_encryption = bcrypt [server] hosts = 0.0.0.0:8000 [storage] filesystem_folder = /var/radicale/collections
通过 docker run 命令启动容器,映射数据卷和端口:
shelldocker run -v /srv/radicale/data:/var/radicale -p 80:8000 -n radicale xlrl/radicale
使用 htpasswd 命令在容器内创建用户(需通过 docker exec 执行):
shell# 创建首个用户(-c 表示创建新文件,仅首次使用) docker exec -ti radicale htpasswd -B -c /var/radicale/users user1 # 新增其他用户(无需 -c 参数) docker exec -ti radicale htpasswd -B /var/radicale/users user2
浏览器访问 Docker 主机地址(映射端口 80),即可看到 Radicale 登录界面。
通过 docker-compose.yml 部署容器,示例配置如下:
yamlversion: '3.8' services: radicale: image: xlrl/radicale container_name: radicale environment: - GIT_REPOSITORY=[***] # Git 仓库地址(私有仓库需包含认证信息) - GIT_USERNAME=username # Git 提交用户名 - GIT_EMAIL=*** # Git 提交*** - RADICALE_USER=username # Radicale 用户名 - RADICALE_PASS=userpassword # Radicale 用户密码 ports: - "8000:8000" # 端口映射(主机:容器) volumes: - /tmp/radicale:/var/radicale # 数据卷挂载(主机目录:容器目录)
| 变量名 | 描述 |
|---|---|
| GIT_REPOSITORY | Git 仓库地址,私有仓库需包含用户名和密码(如 [***]) |
| GIT_USERNAME | Git 提交时的用户名签名 |
| GIT_EMAIL | Git 提交时的***签名 |
| RADICALE_USER | Radicale 服务的登录用户名 |
| RADICALE_PASS | Radicale 服务的登录密码 |
通过 Git 跟踪 Radicale 数据变更,步骤如下:
在数据目录(/srv/radicale/data)下创建 .gitignore,排除临时文件:
.Radicale.cache .Radicale.lock .Radicale.tmp-*
修改 config.ini,添加存储钩子(自动提交变更):
ini[storage] filesystem_folder = /var/radicale/collections hook = git add -A && (git diff --cached --quiet || git commit -m "Changes by %(user)s")
在数据目录初始化仓库并提交初始文件:
shellcd /srv/radicale/data git init git add . git commit -m "Initial commit"





manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务