mobile wallpaper 1mobile wallpaper 2mobile wallpaper 3mobile wallpaper 4
20 字
1 分钟
分享docker部署vaultwarden并配置caddy反代的过程
2026-06-13
无标签

分享docker部署vaultwarden并配置caddy反代的过程#

目录结构#

/custom/
└── custom/
├── vaultwarden/
│ └── data/ # Vaultwarden 持久化数据(数据库、附件、密钥等)
└── caddy/
├── Caddyfile # Caddy 反向代理配置文件(只读挂载)
├── data/ # Caddy 运行时数据(自动生成的证书、临时文件、日志)
├── config/ # Caddy 配置缓存目录
└── ssl/ # 自定义 SSL 证书目录(可选,需存放证书和私钥文件)

compose.yaml#

networks:
custom: # 创建自定义专用网络,隔离其他容器
driver: bridge # 单机桥接网络,容器间通过容器名通信
services:
vaultwarden:
image: vaultwarden/server:latest
container_name: vaultwarden
volumes:
- /dockerdata/custom/vaultwarden/data:/data # 持久化数据
restart: unless-stopped # 重启策略:除非手动停止,否则总是重启(含开机自启)
user: "1000:1000" # 以 UID 1000 运行
networks:
- custom # 加入专用网络
environment:
- SIGNUPS_ALLOWED=false # 禁止公开注册
- SHOW_PASSWORD_HINT=false # 禁止显示密码提示
# [性能] 调整 worker 数量(处理并发请求的线程数);默认 Docker 镜像为 10,对于 2 核服务器建议 8;可根据实际 CPU 核心数调整;公式参考:ROCKET_WORKERS = CPU核心数 × 2 ~ 4
- ROCKET_WORKERS=8
# [安全] API 请求大小限制(单位:字节);默认 10MB (10 * 1024 * 1024 = 10485760);这里设置为 20MB,与 Caddy 的 request_body 30MB 形成两层防护;注意:此限制影响导入数据、上传附件等操作
- ROCKET_LIMITS={json=20971520}
- LOG_LEVEL=info # [可选] 日志级别:info 记录常规信息,生产环境可改为 warn 减少 I/O 和日志量
- INVITATIONS_ALLOWED=false # 完全禁止邀请功能,防止账户被滥用
- LOGIN_RATELIMIT_SECONDS=60 # 时间窗口(秒)
- LOGIN_RATELIMIT_MAX_BURST=5 # 窗口内最大失败次数
- ADMIN_RATELIMIT_SECONDS=300 # 管理面板窗口(秒)[reference:5]
- ADMIN_RATELIMIT_MAX_BURST=3 # 管理面板突发允许数
- DOMAIN=https://custom:custom
mem_limit: 256m # 硬性内存限制 256MB
cpus: '0.5' # CPU 限制为 0.5 核
healthcheck: # 健康检查配置,自动检测服务可用性
test: ["CMD", "curl", "-f", "http://localhost:80/alive"] # 使用 Vaultwarden 内置的 /alive 端点进行存活检测
interval: 30s # 每 30 秒检查一次
timeout: 5s # 单次检查超时 5 秒
retries: 3 # 连续失败 3 次标记为不健康,触发容器重启
start_period: 10s # 启动后等待 10 秒才开始检查,避免启动过程中的误判
caddy:
image: caddy:latest
container_name: caddy
networks:
- custom # 加入专用网络
ports:
- "custom:443" # HTTPS 访问
volumes:
- /custom/custom/caddy/Caddyfile:/etc/caddy/Caddyfile:ro # Caddy 配置文件只读挂载(:ro),防止容器意外修改配置
- /custom/custom/caddy/data:/data # Caddy 存储临时数据、日志、自动生成的配置
- /custom/custom/caddy/config:/config # Caddy 配置缓存目录
- /custom/custom/caddy/ssl:/etc/caddy/ssl:ro # SSL 证书目录只读挂载,保护私钥不被容器内进程写入(仅需读取)
restart: unless-stopped
mem_limit: 128m # 内存限制 128MB,Caddy 通常占用很小,限制后可防止异常内存膨胀
cpus: '0.3' # CPU 限制 0.3 核
healthcheck: # 健康检查
test: ["CMD", "caddy", "version"] # 简单检查 caddy 命令是否存在,以此判断容器是否存活
interval: 30s
timeout: 3s
retries: 3
分享

如果这篇文章对你有帮助,欢迎分享给更多人!

分享docker部署vaultwarden并配置caddy反代的过程
https://mx5460.top/posts/vaultwarden--caddy/
作者
X
发布于
2026-06-13
许可协议
Unlicensed

部分信息可能已经过时

随机文章 随机推荐
暂无数据

目录