20 字
1 分钟
分享docker部署vaultwarden并配置caddy反代的过程
分享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/ 部分信息可能已经过时
随机文章 随机推荐
暂无数据






