当前位置: 首页 > article >正文

Docker 部署 Vaultwarden:轻量级自托管密码管理解决方案

1. 为什么选择Vaultwarden作为自托管密码管理方案在这个数字时代我们每个人平均要管理超过100个在线账户的密码。传统的密码管理方式——用同一个简单密码注册所有网站或者把密码写在记事本上——已经远远不能满足安全需求。这就是为什么像Bitwarden这样的密码管理器变得越来越流行。但官方Bitwarden服务器对个人用户来说有个致命缺点它实在太重了。基于.NET框架开发依赖MSSQL数据库官方建议至少2GB内存才能流畅运行。对于想在树莓派或者老旧笔记本上自建密码服务器的用户来说这个门槛实在太高了。Vaultwarden原名bitwarden_rs完美解决了这个问题。这个用Rust语言重写的Bitwarden兼容服务器运行时内存占用仅10MB左右支持SQLite轻量级数据库也兼容MySQL/PostgreSQL对硬件几乎没有任何要求。我在一台2008年的老笔记本上实测运行Vaultwarden完全无压力。更棒的是Vaultwarden保留了Bitwarden 95%的核心功能密码、信用卡、安全笔记的加密存储跨设备同步浏览器插件自动填充两步验证TOTP密码共享家庭/团队版唯一缺失的主要是企业版功能对个人和小团队来说完全没影响。而且由于是开源项目Vaultwarden的更新非常及时基本与官方版本保持同步。2. 部署前的准备工作2.1 硬件需求Vaultwarden对硬件的要求低到令人发指CPU单核即可树莓派都能轻松胜任内存官方建议128MB实测64MB都能跑存储初始安装约50MB后续根据密码数量增长我自己的生产环境数据存储了2000密码使用一年后数据库才30MB左右。即使你有上万条密码记录也完全不用担心存储压力。2.2 软件环境推荐使用Linux系统作为宿主系统特别是Debian/Ubuntu系列。Windows和macOS虽然也能跑Docker但长期运行的稳定性不如Linux。必须安装的组件Docker Engine版本20.10.0Docker Compose版本2.0.0在Ubuntu 22.04上安装Docker的完整命令sudo apt update sudo apt install -y ca-certificates curl gnupg sudo install -m 0755 -d /etc/apt/keyrings curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg sudo chmod ar /etc/apt/keyrings/docker.gpg echo deb [arch$(dpkg --print-architecture) signed-by/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu $(. /etc/os-release echo $VERSION_CODENAME) stable | sudo tee /etc/apt/sources.list.d/docker.list /dev/null sudo apt update sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin2.3 网络规划虽然Vaultwarden可以在本地网络使用但为了跨设备同步建议配置域名和HTTPS。你需要一个域名哪怕是最便宜的.xyz域名也行开放服务器的80/443端口如果使用非标准端口需要额外配置如果只是内网使用可以跳过域名申请但需要在内网DNS或每台设备的hosts文件中添加解析记录。3. 使用Docker Compose部署Vaultwarden3.1 创建项目目录首先建立一个专用目录存放所有配置mkdir -p ~/vaultwarden/{data,nginx} cd ~/vaultwarden这个目录结构很重要data/存放密码数据库等持久化数据nginx/存放反向代理配置3.2 编写docker-compose.yml使用以下配置作为起点version: 3 services: vaultwarden: image: vaultwarden/server:latest container_name: vaultwarden restart: unless-stopped environment: - DOMAINhttps://yourdomain.com - ADMIN_TOKENyour_strong_admin_token_here - SMTP_HOSTsmtp.yourmail.com - SMTP_FROMyournameyourmail.com - SMTP_PORT587 - SMTP_SSLtrue - SMTP_USERNAMEyournameyourmail.com - SMTP_PASSWORDyour_mail_password volumes: - ./data:/data nginx: image: nginx:alpine container_name: vw_nginx restart: unless-stopped ports: - 80:80 - 443:443 volumes: - ./nginx:/etc/nginx/conf.d - ./certs:/etc/nginx/certs depends_on: - vaultwarden关键配置说明ADMIN_TOKEN用于访问管理后台建议用openssl rand -base64 48生成SMTP相关配置用于注册验证和密码重置必须配置才能使用完整功能数据卷映射确保数据持久化即使容器重建也不会丢失密码3.3 配置Nginx反向代理在nginx目录下创建default.confserver { listen 80; server_name yourdomain.com; return 301 https://$host$request_uri; } server { listen 443 ssl; server_name yourdomain.com; ssl_certificate /etc/nginx/certs/fullchain.pem; ssl_certificate_key /etc/nginx/certs/privkey.pem; ssl_protocols TLSv1.2 TLSv1.3; ssl_ciphers ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384; ssl_prefer_server_ciphers on; client_max_body_size 128M; location / { proxy_pass http://vaultwarden:80; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; } location /notifications/hub { proxy_pass http://vaultwarden:3012; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection upgrade; } location /notifications/hub/negotiate { proxy_pass http://vaultwarden:80; } }3.4 获取SSL证书推荐使用Lets Encrypt免费证书sudo apt install certbot sudo certbot certonly --standalone -d yourdomain.com然后将证书复制到项目目录mkdir -p ~/vaultwarden/certs sudo cp /etc/letsencrypt/live/yourdomain.com/fullchain.pem ~/vaultwarden/certs/ sudo cp /etc/letsencrypt/live/yourdomain.com/privkey.pem ~/vaultwarden/certs/ sudo chown -R $USER:$USER ~/vaultwarden/certs3.5 启动服务一切就绪后启动容器docker compose up -d检查服务状态docker compose ps docker compose logs -f如果一切正常现在可以通过https://yourdomain.com访问你的私有密码库了4. 高级配置与优化4.1 邮件服务配置正确的SMTP配置至关重要它影响以下功能新用户注册验证密码重置两步验证安全警报以腾讯企业邮箱为例的完整配置environment: - SMTP_HOSTsmtp.exmail.qq.com - SMTP_FROMadminyourdomain.com - SMTP_PORT465 - SMTP_SSLtrue - SMTP_EXPLICIT_TLStrue - SMTP_USERNAMEadminyourdomain.com - SMTP_PASSWORDyour_password - SMTP_AUTH_MECHANISMLogin常见问题排查端口465和587的区别465是SMTPS专用端口587是提交端口STARTTLS如果连接失败尝试将SMTP_SSL和SMTP_EXPLICIT_TLS组合调整企业邮箱可能需要单独开启SMTP功能4.2 安全加固建议禁用新用户注册生产环境必做environment: - SIGNUPS_ALLOWEDfalse启用管理后台并设置复杂TOKENopenssl rand -base64 48配置登录失败限制environment: - LOGIN_RATELIMIT_MAX_BURST10 - LOGIN_RATELIMIT_SECONDS60定期备份data目录tar -czvf vaultwarden-backup-$(date %Y%m%d).tar.gz ~/vaultwarden/data4.3 性能调优对于高并发场景家庭/小团队使用通常不需要environment: - ROCKET_WORKERS10 - DATABASE_MAX_CONNS10监控资源使用情况docker stats vaultwarden5. 日常维护与故障排除5.1 版本升级安全升级步骤cd ~/vaultwarden docker compose pull docker compose down docker compose up -d验证升级docker logs vaultwarden | grep Starting Vaultwarden5.2 数据备份策略推荐备份方案本地备份每日tar -czvf /backups/vaultwarden-$(date %Y%m%d).tar.gz ~/vaultwarden/data远程备份每周rclone copy /backups/vaultwarden-*.tar.gz remote:backups/vaultwarden/数据库检查每月sqlite3 ~/vaultwarden/data/db.sqlite3 PRAGMA integrity_check;5.3 常见问题解决网页无法打开检查容器状态docker compose ps查看日志docker compose logs -f nginx vaultwarden验证端口ss -tulnp | grep 443客户端无法同步检查域名解析验证证书有效性测试网络连接curl -v https://yourdomain.com邮件发送失败测试SMTP连接docker exec -it vaultwarden bash openssl s_client -connect smtp.yourmail.com:465 -crlf6. 客户端配置与使用技巧6.1 各平台客户端配置浏览器扩展Chrome/Firefox安装官方Bitwarden扩展设置 → 自托管环境 → 输入你的服务器地址手机APPiOS/Android下载官方Bitwarden应用登录界面点击自托管环境输入https://yourdomain.com桌面客户端Windows/macOS/Linux下载对应版本设置 → 服务器 → 自定义服务器URL6.2 实用功能挖掘紧急访问设置信任的联系人在紧急情况下可申请访问你的密码库密码生成器创建高强度随机密码支持自定义规则安全报告检查密码强度、重复使用情况和数据泄露状态Send功能安全分享临时密码或笔记可设置访问次数和有效期6.3 最佳实践建议主密码选择足够复杂但容易记忆的密码建议使用密码短语方式两步验证务必启用推荐使用Authenticator应用而非短信验证生物识别在移动设备上启用指纹/面部识别平衡安全与便利定期检查每月查看安全报告更新弱密码和已泄露密码7. 为什么这是最好的自托管密码方案经过三个月的实际使用我可以负责任地说VaultwardenDocker的组合是目前个人密码自托管的最佳选择。相比其他方案比KeepassXC更方便的跨设备同步比LastPass更透明的开源代码比1Password更低的成本完全免费比Bitwarden官方版更低的资源占用特别是在家庭场景下你可以为每位家庭成员创建子账户共享家庭WiFi、流媒体等常用密码设置紧急访问权限所有数据完全掌握在自己手中我甚至用它来管理服务器的SSH密钥、数据库密码等敏感信息通过精细的权限控制既安全又方便团队协作。

相关文章:

Docker 部署 Vaultwarden:轻量级自托管密码管理解决方案

1. 为什么选择Vaultwarden作为自托管密码管理方案 在这个数字时代,我们每个人平均要管理超过100个在线账户的密码。传统的密码管理方式——用同一个简单密码注册所有网站,或者把密码写在记事本上——已经远远不能满足安全需求。这就是为什么像Bitwarden这…...

vLLM-v0.17.1实操手册:vLLM服务升级策略与滚动更新最佳实践

vLLM-v0.17.1实操手册:vLLM服务升级策略与滚动更新最佳实践 1. vLLM框架概述 vLLM是一个专为大型语言模型(LLM)设计的高性能推理和服务库,最新发布的v0.17.1版本带来了多项性能优化和功能增强。这个开源项目最初由加州大学伯克利分校的研究团队开发&am…...

百川2-13B量化模型+OpenClaw:3种低成本个人AI助手应用方案

百川2-13B量化模型OpenClaw:3种低成本个人AI助手应用方案 1. 为什么选择量化模型OpenClaw组合 去年冬天,当我第一次尝试在本地部署大模型时,被显存不足的报错狠狠教育了一顿——我的RTX 3060显卡根本无法承载常规13B参数的模型。直到发现百…...

42-西门子1200伺服控制5轴程序 程序采用1200系列PLC,项目实现以下功能: (1)

42-西门子1200伺服控制5轴程序 程序采用1200系列PLC,项目实现以下功能: (1).三轴机械手联动取放料PTO脉冲定位控制台达B2伺服 (2).台达伺服速度模式应用扭矩模式应用实现收放卷 (3).…...

个人开发者如何高效率APP上架安卓应用市场?软著、备案、资质、审核详解大全,一篇文章讲透流程规则!

一、上架前的资质准备 1. 软件著作权登记证书(软著) 软著是证明APP拥有自主知识产权的重要文件,多数应用商店要求上架时提供。申请周期通常为1-2个月,建议提前规划。 2. APP备案 根据工信部要求,APP主办者需要在接…...

Python将Parquet文件转换为JSONL格式文件

prompt:如何使用 Python 将 Parquet 文件转换为 JSONL 格式文件? 请提供完整的代码示例,包括使用 pandas 或 pyarrow 读取 Parquet 文件, 并将每行数据以 JSON 格式逐行写入 JSONL 文件的实现方式。 假设 Parquet 文件包含结构化数据&#xf…...

Gemini提示词反推教程!“图生图”来了

看到一张心仪的室内设计图,却不知道如何描述它的高级美? 其实,每一张令人惊艳的图片背后,都有一套隐藏的代码。今天,我们要分享一套“保姆级”教程:利用 MetaChat 平台上的 Gemini 3.1 Pro 充当你的私人审美…...

基于springboot的旅游景点门票信息系统设计与实现-vue

目录 技术栈选择系统模块划分数据库设计接口设计规范前端实现要点安全措施部署方案开发流程测试计划扩展功能预留 项目技术支持源码获取详细视频演示 :文章底部获取博主联系方式!同行可合作 技术栈选择 后端采用Spring Boot框架,提供RESTful…...

Quartus中生成与烧录FPGA板载Flash的jic文件全流程解析

1. 为什么需要jic文件? 刚接触FPGA开发的朋友可能会疑惑:为什么编译生成的sof文件不能直接烧录到Flash?这个问题要从FPGA的特性说起。FPGA芯片内部是基于SRAM结构的,这意味着每次断电后配置数据都会丢失。想象一下你正在用电脑写文…...

致开发者:别再重复造轮子,这个开源商城系统让你把时间花在刀刃上

作为开发者,你是否厌倦了每次新项目都要从零搭建电商后台?商品、订单、会员、营销……这些基础模块耗费了你多少宝贵的创造力?今天,我们想和你聊聊一个能让你“拿来即用,改也不难”的解决方案——CRMEB开源商城系统。它…...

容盛兴达丨 32 寸医院自助查询终端机嵌入式触摸查询服务一体机

在数字化浪潮席卷各行各业的今天,医疗机构正经历着从传统服务模式向智慧化、人性化转型的关键时期。医院大厅里,患者及家属常常面临信息获取不便、排队时间长、流程不清晰等困扰。如何利用科技手段优化服务流程、提升患者就医体验,成为医院管…...

Qwen3-VL:30B多模态大模型在飞书智能办公中的实战应用

Qwen3-VL:30B多模态大模型在飞书智能办公中的实战应用 飞书作为现代企业智能办公平台,如何通过多模态大模型实现真正的智能化升级?本文将带你从零搭建企业级AI助手,让图文交互能力真正落地业务场景。 1. 为什么企业需要多模态AI助手&#xff…...

别再滥用Tick了!UE5里Cast To的正确打开方式与性能实测

UE5性能优化实战:Tick事件中Cast To的高效替代方案 在虚幻引擎5的项目开发中,性能优化往往隐藏在那些看似无害的日常操作里。Tick事件中的Cast To操作就像房间里的大象——人人都知道它存在,却常常低估它的影响。当项目规模扩大、逻辑复杂度提…...

当NB-IoT遇上同步轨道卫星:GEO场景下的定时关系增强全指南(基于3GPP Release 17最新规范)

GEO卫星场景下NB-IoT定时关系增强技术解析 1. GEO卫星通信与NB-IoT的技术融合挑战 地球静止轨道(GEO)卫星通信与窄带物联网(NB-IoT)技术的结合,为全球物联网覆盖提供了革命性解决方案。GEO卫星位于地球赤道上空35,786公…...

A-59F 多功能语音处理模组:覆盖全场景人群,让每一次语音都清晰无噪

在门禁对讲、会议扩音、车载通话、导游喊话、监护设备、智能工牌等各类语音设备中,啸叫刺耳、环境嘈杂、回音不断、拾音模糊、通话断续是所有人共同的痛点。一款真正解决问题的核心硬件 ——A-59F 多功能语音处理模组,它集成扩音防啸叫、AI ENC 降噪、AE…...

打工人必看!电脑突然罢工?阳光电脑维修上门服务救我于水火[特殊字符]

作为每天靠电脑办公的打工人,最崩溃的事情莫过于——电脑突然罢工,而手里还有紧急工作要赶!前几天晚上加班,台式机突然黑屏,按开机键没反应,键盘鼠标也没亮,急得我差点哭出来,第二天…...

Wan2.2-I2V-A14B性能调优:基于算法原理的模型推理加速策略

Wan2.2-I2V-A14B性能调优:基于算法原理的模型推理加速策略 1. 效果亮点预览 在RTX4090D显卡上,经过系统调优的Wan2.2-I2V-A14B模型展现出惊人的性能提升:单次推理耗时从原始的38ms降低至22ms,吞吐量提升近72%。更令人惊喜的是&a…...

Xcode打包上传App Store Connect失败?可能是这些配置没做好(含解决方案)

Xcode打包上传App Store Connect失败排查指南:从配置到解决方案 每次提交应用上架都是iOS开发者必经的考验,而Xcode打包上传过程中遇到的"无效二进制文件"错误堪称拦路虎。这种错误往往不会给出明确提示,而是通过邮件通知或在App S…...

探索电池2RC等效电路模型:从参数辨识到SOC估计

电池2RC等效电路模型,最小二乘法参数辩识,电池端电压误差小,扩展卡尔曼估计SOC精度高。 有文档,数据,视频,仿真图。在电池研究领域,准确建模和参数估计对于理解电池行为至关重要。今天咱就唠唠电…...

Matlab 实现 DES 与 RSA 双重加密及可视化界面搭建

基于matlab上的DES和RSA两种算法的双重加密,附带显示界面,可更改DES密钥,明文消息(在显示界面中),可在代码中更改RSA对应的p,q,e等数据,代码可附加注释和对应要求修改。在…...

OpenCore Legacy Patcher终极指南:让你的老Mac焕发新生,体验最新macOS

OpenCore Legacy Patcher终极指南:让你的老Mac焕发新生,体验最新macOS 【免费下载链接】OpenCore-Legacy-Patcher 体验与之前一样的macOS 项目地址: https://gitcode.com/GitHub_Trending/op/OpenCore-Legacy-Patcher 你是否还在为老旧的Mac无法升…...

CosyVoice语音克隆应用案例:为短视频配音、制作个性化语音问候消息

CosyVoice语音克隆应用案例:为短视频配音、制作个性化语音问候消息 最近帮朋友做短视频账号,发现一个挺头疼的问题:每次拍完视频,找配音特别麻烦。要么自己录,口音重还费时间;要么用AI配音,声音…...

TMS320F28P550SJ9实战解析:Sysconfig高效配置SCI多处理器通信模式

1. TMS320F28P550SJ9的SCI通信基础认知 第一次接触TMS320F28P550SJ9的SCI模块时,我花了整整三天才搞明白它的全双工特性。这个看似简单的串行通信接口,实际上藏着不少工程师容易忽略的细节。SCI(Serial Communication Interface)作…...

旧Mac重生指南:用OpenCore Legacy Patcher解锁macOS新版本

旧Mac重生指南:用OpenCore Legacy Patcher解锁macOS新版本 【免费下载链接】OpenCore-Legacy-Patcher 体验与之前一样的macOS 项目地址: https://gitcode.com/GitHub_Trending/op/OpenCore-Legacy-Patcher 你是否有一台性能依然强劲却被苹果官方抛弃的旧Mac&…...

【信号处理】基于预设性能的无模型自适应分数阶快速终端滑模控制在MIMO非线性系统中的研究附matlab代码

✅作者简介:热爱科研的Matlab仿真开发者,擅长毕业设计辅导、数学建模、数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真。🍎 往期回顾关注个人主页:Matlab科研工作室👇 关注我领取海量matlab电子书和…...

vLLM-v0.17.1惊艳效果:束搜索+并行采样在长文本生成中的稳定性展示

vLLM-v0.17.1惊艳效果:束搜索并行采样在长文本生成中的稳定性展示 1. vLLM框架核心能力概览 vLLM是一个专为大型语言模型(LLM)设计的高性能推理和服务库,其最新版本v0.17.1在长文本生成稳定性方面取得了显著突破。这个开源项目最初由加州大学伯克利分校…...

深入TC397与TLF35584的SPI通信:从寄存器操作到汽车ECU低功耗状态管理实战

深入TC397与TLF35584的SPI通信:从寄存器操作到汽车ECU低功耗状态管理实战 在汽车电子领域,电源管理芯片的选择与配置直接关系到整车电子控制单元(ECU)的可靠性与能耗表现。英飞凌的TLF35584作为一款高集成度电源管理IC&#xff0c…...

【开源鸿蒙Flutter跨平台开发实战复盘】从零到一:GitCode口袋工具项目构建全记录

1. 环境搭建:从零开始的跨平台开发之旅 作为一个有Android开发背景但完全没接触过Flutter的开发者,我最初面对开源鸿蒙和Flutter跨平台开发时也是一头雾水。环境搭建这个看似简单的第一步,就让我深刻体会到"万事开头难"的含义。 在…...

Llama-3.2V-11B-cot效果实测:同一张图不同提问下的CoT推理路径对比分析

Llama-3.2V-11B-cot效果实测:同一张图不同提问下的CoT推理路径对比分析 1. 工具概览与测试目标 Llama-3.2V-11B-cot是基于Meta多模态大模型开发的专业视觉推理工具,特别针对双卡4090环境进行了深度优化。本次测试将聚焦其核心功能——Chain of Thought…...

【FreeRTOS实战入门】一、从CubeMX到第一个任务:手把手搭建FreeRTOS工程

1. 为什么选择FreeRTOS与CubeMX组合 第一次接触嵌入式实时操作系统时,很多人会纠结选择哪种RTOS。我当年在uC/OS-II和FreeRTOS之间犹豫了很久,最终选择了后者。原因很简单:FreeRTOS不仅完全免费开源,还有STM32CubeMX这个神器加持。…...