💥 究极保姆喂饭级!GCP 永久免费小鸡零基础搭建 Vaultwarden

2025-05-04 15:21:35 10点赞 105收藏 12评论

嘿,各位小伙伴们!你是否还在为那堆积如山的网站密码抓狂?🤯 每次登录都要“找回密码”?或者,你是不是还在用那些“云端”密码管理器,心里总嘀咕着“我的密码真的安全吗?” “会不会被XX偷窥?”

告别焦虑!今天,这篇堪称“把饭喂到嘴里”的教程,将手把手带你起飞!🚀 我们将利用 Google Cloud Platform (GCP) 那 香喷喷的永久免费 小鸡 ☁️,从零开始,搭建一个 完全私有、绝对安全、功能炸裂 的个人密码保险库——Vaultwarden!

Vaultwarden 是何方神圣?

简单粗暴地说,它是大名鼎鼎的 Bitwarden 的 轻量级开源“战神”版!拥有 Bitwarden 服务器的核心功能,但资源占用小到令人发指,简直是为我们这些在免费小鸡上“极限白嫖”的玩家量身定做!最最最关键的是:开源!免费!数据 100% 牢牢攥在你自己手里! 💪

💥 究极保姆喂饭级!GCP 永久免费小鸡零基础搭建 Vaultwarden

为啥要自建?值友们,听我细数这其中的“真香”定律:

  • 🔒 安全感爆棚 你的密码,只存在于你的专属服务器!从此告别对第三方平台的依赖和潜在的数据泄露焦虑!妈妈再也不用担心我的密码啦!

  • 🤫 绝对隐私 除了你自己,没有人(包括谷歌、开发者,甚至未来的你穿越回来)能偷窥你的密码库。你的小秘密,自己守护!

  • 💰 真正零成本 GCP 的“始终免费”套餐不是吹的!虚拟机、硬盘、流量,只要你不浪出天际,真的可以 一直免费用到地老天荒!每月省下的咖啡钱都能加个鸡腿了!🍗

  • 📱 全平台制霸 浏览器扩展 (Chrome/Edge/Firefox…)、手机 App (iOS/Android)、电脑客户端 (Win/Mac/Linux),一个不少!随时随地,无缝同步,体验丝滑~

  • 🚀 功能不打折 自动填充、强密码生成、安全笔记、文件附件、两步验证 (TOTP) 存储... 主流密码管理器该有的骚操作,它全都有!甚至更强!

  • 🛠️ 折腾的乐趣 + 技能 Get√: 搭建过程不仅酷,还能让你顺便点亮 Linux、Docker 等新技能树!成就感满满!

GCP 免费大餐深度解析 (咱到底能薅多少羊毛?) 🐑

Google Cloud 为了“诱拐”我们(bushi),提供了相当慷慨的“始终免费” (Always Free) 套餐,跟我们这次搭建相关的核心福利有:

  1. 1 台 e2-micro 虚拟机 (VM):

    • 配置: 0.25 vCPU + 1GB 内存。别看它“弱小”,跑个 Vaultwarden 绰绰有余,稳如老狗!

    • 区域限制 (敲黑板!): 免费 VM 仅限 美国的少数几个区域,如 us-west1​ (俄勒冈), us-central1​ (爱荷华), us-east1​ (南卡罗来纳)。选错区域,钱包流泪!务必盯紧! 💧

    • 时长: 每月免费 = 当月总小时数,意味着你可以 7x24 小时开机,全年无休!

  2. 30GB 标准永久性磁盘:

    • 装个 Debian 系统 (约 10GB),剩下的空间放你的密码数据(通常很小,几 MB 到几十 MB),甚至再跑点小东西都够用。注意!注意!注意! 免费的只有 标准 (Standard) 磁盘!选了“平衡”或“SSD”,你的信用卡就要开始燃烧了!🔥

  3. 静态 IP 地址 (有条件免费): 标准层级的虚拟机可以免费附加一个静态 IP,避免 IP 变动导致域名解析失效。只要虚拟机在运行,这个静态 IP 就是免费的。(本教程假设你使用动态 IP,但配置静态 IP 更佳)

  4. ⚠️ 定心丸时间 - 关于那个吓人的“每月估算费用”:

    • 在你选好 e2-micro​ 和标准磁盘后,GCP 右侧那个“每月估算费用” 可能还会显示几美元

    • 别慌!稳住!这只是“预估”,还没算上免费折扣! 就像超市打折,标价还在,结账才减!

    • 只要你 严格遵守 免费规则(选对区域、e2-micro​、标准磁盘、用量不超),最终账单里这部分费用会被 免费层级折扣 (Free Tier Discount) 完美抵消掉!

    • 结论:按教程操作,放心大胆地点“创建”,你的钱包很安全! 👍

一句话总结: 跟着教程走,精准操作,你的 Vaultwarden 服务器就能稳稳地实现 零成本 运行,比共享单车月卡还便宜!

开干前的准备 (新手宝宝也能看懂)

  1. Google 账号: 这个应该都有吧?没有就注册一个。

  2. 信用卡: Visa 或 Mastercard,用来验证身份,只要不作死用付费服务,一分钱都不会扣!

  3. GCP 控制台: 注册登录好 https://console.cloud.google.com/,准备就绪。

  4. 一台 Debian 12 虚拟机 (已创建):

    • 路径: GCP 控制台 -> Compute Engine -> VM 实例 -> 创建实例。

    • 名称: 随意,比如 my-vaultwarden​。

    • 区域: 务必选免费区 (如 us-west1​)!

    • 机器类型: E2​ 系列 -> e2-micro​ (关键!)。

    • 启动磁盘:

      • 点击“更改”。

      • 操作系统: Debian​,版本: Debian GNU/Linux 12 (bookworm)​ (或更新稳定版)。

      • 磁盘类型: 🚨 极其重要!选 标准永久性磁盘(Standard persistent disk)!选错立刻变付费!

      • 大小: 默认 10GB 够用 (免费上限 30GB)。

      • 点“选择”。

    • 防火墙: 暂时 别勾选 HTTP/HTTPS,后面手动精控。(想偷懒也可以勾选,后续就不用配置防火墙了)

    • 创建! 等待几分钟,小绿灯亮起 ✅。

  5. 你自己的域名: 任意后缀 (.com, .net, .xyz...),后面要用它来访问。强烈建议搞一个! 用 IP 访问不安全、不方便,还可能没法自动搞定 HTTPS。

  6. SSH 连接工具: 💻

    • 最无脑(推荐): GCP VM 实例列表,点实例后面的 "SSH" 按钮,浏览器里弹窗直接用。

    • 更专业 用 PuTTY (Win), Termius (跨平台), FinalShell (Win/Mac), 或系统自带终端/PowerShell。需要配置 SSH 密钥或密码(不推荐密码)。假设你已经连上了。

  7. 亿点点耐心 遇到问题别砸键盘,仔细看教程,深呼吸~

起飞!🚀 (全程图文级指引,手把手教学)


步骤 1: 给小鸡“大保健” (更新系统 & 装必备小工具) 🛀

新出厂的小鸡系统有点“糙”,咱们先给它搓搓澡,打扫干净。

  1. SSH 连上你的小鸡 看到命令行提示符 your_username@my-vaultwarden:~$​ 就对了。

  2. 执行神圣的更新&升级二连 复制下面命令,粘贴到 SSH 窗口,回车!

    sudo apt update && sudo apt upgrade -y

    • sudo​: 获取临时管理员权限。

    • apt update​: 刷新软件库列表,看看有啥新货。

    • &&​: 前面成功了,再执行后面。

    • apt upgrade -y​: 把所有能升级的软件都升到最新,-y​ 是自动确认。

    ⚠️ 新手高能预警!超级重要!⚠️
    因为我们用的是“抠门级” e2-micro​,性能有限,这一步 apt upgrade​ 可能会 非!常!慢! 🐌 可能需要下载几百 MB 的更新、解压、安装,花个十五分钟甚至半小时都完全正常! 请务必 耐心等待,屏幕会滚动很多行,直到最后重新出现命令行提示符 your_username@my-vaultwarden:~$​ 才算完事。千万不要中途 Ctrl+C中断或关掉 SSH 窗口! 否则系统可能更新不完整,后面会出幺蛾子!去泡杯茶 ☕️,刷会儿 B 站,或者思考下人生,让子弹飞一会儿!

  3. 安装必备工具箱: 等上面龟速升级完成后,继续复制粘贴执行:

    sudo apt install -y curl wget gnupg apt-transport-https ca-certificates lsb-release nano

    • curl​, wget​: 下载神器。

    • gnupg​, apt-transport-https​, ca-certificates​, lsb-release​: 装 Docker 的“准生证”和依赖。

    • nano​: 一个对新手友好的命令行编辑器,后面改配置就靠它了!(Vim 大佬请无视)
      这次安装通常很快。


步骤 2: 召唤“搬家神器” Docker & Compose 🐳

Docker 能把应用和它的运行环境打包成一个“集装箱”,在哪都能跑,部署超方便!

  1. 添加 Docker 官方“介绍信” (GPG 密钥): 保证我们下的 Docker 是正版,没被动手脚。

    sudo install -m 0755 -d /etc/apt/keyrings curl -fsSL [https://download.docker.com/linux/debian/gpg](https://download.docker.com/linux/debian/gpg) | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg sudo chmod a+r /etc/apt/keyrings/docker.gpg

    这几条命令基本秒执行完。

  2. 告诉系统 Docker 的“官方仓库”在哪apt​ 知道去哪拉货。

    echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] [https://download.docker.com/linux/debian](https://download.docker.com/linux/debian) $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

    这条命令会自动适配你的系统版本,写入配置文件。

  3. 正式请 Docker 大佬和它的好基友 Compose 进场:

    sudo apt update # 先刷新下列表,让系统知道新仓库 sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

    这一步会下载安装 Docker 本体和 Compose 插件,耐心等几分钟。

  4. 测试 Docker 是否安装成功,跑个“Hello World”试试水:

    sudo docker run hello-world

    • 第一次跑,Docker 会自动去网上下载 hello-world​ 镜像。

    • 如果看到类似这样的输出,尤其是那句 "Hello from Docker!",就说明你的 Docker 活蹦乱跳,安装成功!✅

      [...] Hello from Docker! This message shows that your installation appears to be working correctly. [...]

  5. 告别 sudo​ 的小技巧 (可选但推荐):

    • 每次敲 docker​ 都得带 sudo​ 是不是很烦?执行 sudo usermod -aG docker $USER​ 把你当前用户加到 docker​ 用户组。

    • 关键: 执行完需要 退出 SSH,重新登录一次 才生效!之后就能直接 docker ps​、docker compose up​ 了。

    • 为保持教程一致性,后面我还是会带 sudo​,你加不加组跟着敲都没问题。


步骤 3: 精装修!给 Vaultwarden 和 Caddy “划分房间” 🏠

我们要给 Vaultwarden (密码库本体) 和 Caddy (门卫+HTTPS 自动化) 准备好它们各自的“小窝”(数据目录)和一份详细的“入住指南”(配置文件)。

  1. 创建项目主目录并钻进去:

    mkdir ~/vaultwarden && cd ~/vaultwarden

    • 这会在你的用户家目录下创建 vaultwarden​ 文件夹并进入。用 pwd​ 确认你在 /home/your_username/vaultwarden​。

  2. 创建核心指挥文件 docker-compose.yml​

    nano​ 编辑器新建并打开。

    nano docker-compose.yml

  3. 复制下面的“装修图纸” (YAML 配置),整个粘贴进去:
    (从 services:​ 到 caddy-config:​ 全部复制)

    # docker-compose.yml - 定义服务蓝图 services: # 这里定义我们要跑的几个服务 (容器) # --- Vaultwarden 本体服务 --- vaultwarden: image: vaultwarden/server:latest # 使用官方最新镜像,稳! container_name: vaultwarden # 给容器起个名,好认 restart: always # 挂了?Docker 会自动拉起来! environment: # 配置 Vaultwarden 的环境变量 # ------------------------------------------------------------- # !!! 🚨 超级无敌旋风霹雳重要:管理员后台令牌 🚨 !!! # 这是你访问 Vaultwarden 管理后台 (/admin) 的唯一钥匙! # 必须替换成一个【极其复杂】的【随机】字符串!否则等于裸奔! # 生成方法:在 SSH 终端里运行 `openssl rand -base64 48` # 会输出一长串天书,复制它! ADMIN_TOKEN: '在此处粘贴你生成的超强无敌管理员令牌' # 👈 删掉中文,粘贴你的令牌! # ------------------------------------------------------------- # 允许新用户注册吗? (关系到安全!) # 'true' = 谁都能来注册。(初始设置时用 true,方便自己注册) # 'false' = 禁止新用户注册。(你自己注册完,【必须】改成 false!) SIGNUPS_ALLOWED: 'true' # 👈 先保持 true,后面一定记得改! # 启用 WebSocket 通知 (让多端同步更实时) WEBSOCKET_ENABLED: 'true' # 推荐开启 volumes: # 数据持久化,密码存在外面才安全 # 把容器里的 /data 目录 (所有密码数据都在这) # 映射到宿主机当前目录下的 ./vw-data 文件夹里。 # 这样就算容器删了重建,你的密码数据也安然无恙! - ./vw-data:/data # --- Caddy - 门卫 & HTTPS 自动化大师 --- caddy: image: caddy:latest # 用最新的 Caddy 镜像 container_name: caddy # Caddy 容器名 restart: always # 同样自动重启 ports: # 端口映射 (本机端口:容器端口) # 把本机的 80 端口交给 Caddy 处理 HTTP 请求 (续签证书要用) - "80:80" # 把本机的 443 端口交给 Caddy 处理 HTTPS 请求 (主要访问端口) - "443:443" # 也把 443 UDP 端口给 Caddy (为了 HTTP/3,更快更潮) - "443:443/udp" volumes: # 挂载 Caddy 的配置文件和数据 # 把我们稍后创建的 Caddyfile 挂进去,让 Caddy 按指令工作 - ./Caddyfile:/etc/caddy/Caddyfile # 把 Caddy 的持久化数据 (如图床证书) 存到外面 - ./caddy-data:/data # 把 Caddy 的配置状态也存外面 - ./caddy-config:/config depends_on: # 依赖关系 - vaultwarden # 最好等 vaultwarden 启动后再启动 Caddy # 定义数据卷 (更规范的写法,虽然上面用相对路径已经能工作) volumes: vw-data: # Vaultwarden 数据卷 caddy-data: # Caddy 数据卷 (证书等) caddy-config: # Caddy 配置状态卷

  4. 🎯 精准修改!找到并替换两个关键点:

    • ADMIN_TOKEN:

      1. 另外开一个 SSH 窗口 (或暂时退出 nano: Ctrl+X​ 不保存,后面再 nano docker-compose.yml​ 进来),运行命令:openssl rand -base64 48

      2. 屏幕会输出一长串类似 aBcDeF1/2+G...乱七八糟...XyZ=​ 的字符。

      3. 完整复制 这串字符。

      4. 回到 nano​ 编辑器,找到 ADMIN_TOKEN:​ 那行,删掉 '在此处粘贴你生成的超强无敌管理员令牌'​ 这几个字(包括单引号),然后 粘贴 你复制的令牌,确保它被英文单引号包着。例如:ADMIN_TOKEN: 'aBcDeF1/2+G...你的令牌...XyZ='​

      5. 🚨 这个令牌是后台最高权限!自己藏好!打死也不能泄露! 🤫

    • SIGNUPS_ALLOWED:

      • 现在 保持 'true'​ 不动。这样你等下才能注册第一个账号。

      • ‼️ 再次强调:注册成功后,务必、一定、必须回来改成 'false'​ 并重启服务!否则你的服务器就成了公共厕所!

  5. 保存并退出 nano编辑器:

    1. Ctrl + X​

    2. 提示 "Save modified buffer?",按 Y​

    3. 提示 "File Name to Write: docker-compose.yml",直接按 Enter​ 确认。

    4. 搞定!用 ls​ 命令看看,当前目录下应该有 docker-compose.yml​ 了。


步骤 4: 配置“门卫大哥” Caddy 的工作守则 (创建 Caddyfile) 💂

Caddyfile​ 就是给 Caddy 看的说明书,告诉它收到不同网址请求时该怎么处理。

  1. 创建 Caddyfile: 继续用 nano​。

    nano Caddyfile

  2. 复制并粘贴下面的“门卫规则”,整个塞进去:

    # Caddyfile - Caddy 工作指令 # ------------------------------------------------------------- # !!! 🎯 把 "your.domain.com" 换成你自己的【真实域名】 !!! # 例如:vw.zhangsan.com 或者 mypass.example.net your.domain.com { # ------------------------------------------------------------- # --- 核心功能:反向代理到 Vaultwarden --- # 把所有对你域名的访问 (除了下面特殊路径),都丢给 'vaultwarden' 容器的 80 端口处理 # 'vaultwarden:80' 是 Docker 内部网络能识别的地址 reverse_proxy vaultwarden:80 { # 传个真实 IP 给 Vaultwarden,方便看日志 header_up X-Real-IP {remote_ip} } # --- 配置 WebSocket 代理 (为了实时同步更新) --- # 访问 /notifications/hub 这个特殊路径时 # 单独把它丢给 vaultwarden 容器的 3012 端口 (WebSocket 服务端口) reverse_proxy /notifications/hub vaultwarden:3012 # --- 魔法发生的地方:全自动 HTTPS! --- # 让 Caddy 自动去 Let's Encrypt 申请并续签 HTTPS 证书 # 把下面的邮箱换成你自己的真实邮箱,证书快过期时会收到邮件提醒 tls your-email@example.com # 👈 🎯 替换成你的邮箱! # --- 安全加固:推荐添加的安全 Headers --- header { # 强制浏览器一年内必须用 HTTPS 访问 (HSTS) Strict-Transport-Security "max-age=31536000; includeSubDomains; preload" # 禁止被其他网站用 iframe 嵌套 (防点击劫持) X-Frame-Options "DENY" # 防止浏览器瞎猜文件类型 (MIME-sniffing) X-Content-Type-Options "nosniff" # 开启浏览器内置 XSS 防护 X-XSS-Protection "1; mode=block" # 隐藏 Caddy 版本号,低调点好 -Server } # --- 性能优化:启用压缩 --- # 压缩传输内容,访问更快一点 encode gzip zstd # (可选) 如果你想看 Caddy 的访问日志,可以取消下面这行的注释 (#) # log { # output file /data/access.log #} }

  3. 🎯 再次精准打击!修改两个占位符:

  4. 保存退出 nano: 老规矩 Ctrl+X​, Y​, Enter​。现在 ls​ 一下,目录下应该有 docker-compose.ymlCaddyfile​ 两个好基友了。


步骤 5: 打通“任督二脉” (配置 GCP 防火墙放行) 🚪

默认小鸡是“六亲不认”的,我们要告诉 GCP 防火墙:“嘿,放行访问我 80 和 443 端口的客人!”
若之前创建虚拟机时勾选了允许http和https流量,此步骤可略去,直接看步骤6

  1. 回到浏览器里的 GCP 控制台。

  2. 找到防火墙规则页面: 左上角菜单 ☰ -> VPC 网络 (VPC network) -> 防火墙 (Firewall)。

  3. 新建防火墙规则: 点顶部的 创建防火墙规则 (CREATE FIREWALL RULE)。

    • 名称 (Name): 好记就行,比如 allow-web-traffic​。

    • 网络 (Network): 保持 default​。

    • 优先级 (Priority): 默认 1000​。

    • 流量方向 (Direction): 入站 (Ingress)。

    • 匹配操作 (Action on match): 允许 (Allow)。

    • 目标 (Targets):

      • 下拉选 指定的 GCE 实例 (Specified target tags)。

      • 目标标记 (Target tags): 输入一个自定义标签,比如 vaultwarden-node​。记住这个标签! 后面要给 VM 打上。

    • 来源过滤 (Source filter):

      • IP 地址范围 (IP ranges)。

      • 来源 IP 地址范围 (Source IP ranges):0.0.0.0/0​ (表示允许任何来源 IP 访问)。

    • 协议和端口 (Protocols and ports):

      • 指定的协议和端口 (Specified protocols and ports)。

      • 勾选 tcp,在后面框里输入 80, 443​ (英文逗号隔开)。

    • 确认无误,点页面底部的 创建 (CREATE)。

  4. 给你的 VM 实例打上刚才设置的“通行证” (目标标记):

    • 回到 GCP 控制台菜单 -> Compute Engine -> VM 实例。

    • 找到你的 my-vaultwarden​ 实例,点击它的名字进入详情页。

    • 点页面顶部的 修改 (EDIT)。

    • 往下找到 网络 (Networking) -> 网络标记 (Network tags)。

    • 在框里输入你刚才创建防火墙规则时用的 目标标记 (如 vaultwarden-node​),输完按回车,它会变成一个标签。

    • 拖到页面最下面,点 保存 (SAVE)。

    OK!现在全世界都可以通过 HTTP (80) 和 HTTPS (443) 端口访问到你的小鸡了!✅


步骤 6: 全球广播你的“新家地址” (配置 DNS 解析 - 新手看仔细!) 🗺️📍

这一步是告诉全世界的互联网:当有人想去 your.domain.com​ 时,应该去哪个 IP 地址找你的小鸡。

  1. 拿到你家小鸡的“公网门牌号” (外部 IP 地址):

    • 还在 GCP 的 "VM 实例" 页面。

    • 找到你的实例那一行,有一列叫 外部 IP (External IP),下面有一串数字 (类似 35.xxx.yyy.zzz​)。复制 这串 IP 地址。

  2. 登录你的“域名户口本管理处” (域名注册商/DNS 服务商后台):

    • 就是你买域名的地方,比如阿里云/万网、腾讯云/DNSPod、GoDaddy、Namecheap、Cloudflare 等。登录进去。

  3. 找到域名解析 (DNS Management / DNS Zone) 设置: 每个平台界面不一样,但核心功能都叫“DNS 解析”。找到你要用的那个域名,点进去管理。

  4. 添加一条 A 记录 (Address Record):

    • 点“添加记录”或类似按钮。

    • 记录类型 (Type):A​

    • 主机记录 (Host / Name):

      • 如果你想用 yourdomain.com​ 直接访问,填 @​ 或留空 (看服务商提示)。

      • 如果你想用子域名,比如 vw.yourdomain.com​,就填 vw​。强烈推荐用子域名 (如 vw​, safe​, pass​ 等),避免冲突。这里假设你用 vw​。

    • 记录值 (Value / Points to / 指向): 粘贴 你刚才复制的 GCP 小鸡的 外部 IP 地址

    • TTL (Time To Live / 缓存时间): 用默认值 (比如 600 秒/10 分钟) 就行。想快点生效可以改短,比如 60 秒。新手不管它。

    • 保存 / 确认

  5. (Cloudflare 用户专属) 是否开启代理小云朵? ☁️

    • 在 Cloudflare 添加记录后,旁边有个云朵图标。

    • 灰色 (DNS Only): 流量直连你的服务器 IP。

    • 橙色 (Proxied): 流量先经过 CF 中转 (隐藏 IP,可能加速)。对于 Caddy 自动获取证书,通常灰色或橙色都可以成功。 如果你想隐藏 IP,就点亮它变橙色。

  6. 耐心等待 DNS 全球广播 (DNS Propagation):

    • 你刚加的记录不会瞬间同步到全世界,需要点时间。短则几分钟,长则几小时。

    • 怎么检查?

    • 🚨 重要提示: 在 DNS 解析基本生效前,别急着启动服务! 否则 Caddy 可能因为找不到你的域名对应的 IP 而申请证书失败!建议添加完 A 记录后,等个 10-15 分钟,或者用 ping 确认一下再进行下一步。


步骤 7: 点火,发射!🚀 (启动 Vaultwarden & Caddy)

万事俱备,只欠东风!是时候让我们的密码库跑起来了!

  1. 确认 SSH 终端还在项目目录: 输入 pwd​ 确认在 ~/vaultwarden​。如果不在,cd ~/vaultwarden​

  2. 执行最终启动命令 (用 sudo 保险):

    sudo docker compose up -d

    • docker compose up​: 读取 docker-compose.yml​,按图纸施工。

    • -d​: 在后台运行 (detached),关掉 SSH 窗口服务也不会停。

    • 接下来会发生啥?

      • Compose 会检查 vaultwarden​ 和 caddy​ 服务。

      • 发现本地没镜像?自动从 Docker Hub 拉取 vaultwarden/server:latest​ 和 caddy:latest​ (首次运行需要点时间下载)。

      • 镜像下载完,创建并启动两个容器。

      • Caddy 容器启动,读取 Caddyfile​,发现你要搞定 your.domain.com​ 的 HTTPS,它会自动联系 Let's Encrypt,验证你的域名所有权(需要 DNS 生效 + 防火墙放行 80/443),然后 申请并配置好 SSL/TLS 证书。全程自动化,简直不要太爽!

  3. 检查“发射成果” (容器运行状态): 等上一步命令跑完,输入:

    sudo docker compose ps

    • 你应该看到类似这样的输出:

      NAME IMAGE COMMAND SERVICE CREATED STATUS PORTS caddy caddy:latest "caddy run --config …" caddy About a minute ago Up About a minute 0.0.0.0:80->80/tcp, :::80->80/tcp, 0.0.0.0:443->443/tcp, :::443->443/tcp, 443/udp vaultwarden vaultwarden/server:latest "/start.sh" vaultwarden About a minute ago Up About a minute (healthy) 80/tcp, 3012/tcp

    • 盯住 STATUS​ 列: 确保 caddy​ 和 vaultwarden​ 都是 Up​ 或 running​。(Vaultwarden 可能先 (health: starting)​,稍等几十秒再 ps​ 会变 (healthy)​)。如果有不是 Up 的,说明启动失败,得看日志找原因。

  4. 掏出“放大镜”看日志 (排错必备技能): 🕵️‍♂️

    • 强烈建议!先看 Caddy 日志,确认 HTTPS 证书搞定了没:

      sudo docker compose logs -f caddy

      • -f​: 持续输出新日志 (按 Ctrl+C​ 退出)。

      • 找成功的信号: 如果在日志里看到类似 certificate obtained successfully​serving initial configuration​ 这样的信息,恭喜!HTTPS 自动搞定!🎉

      • 看到错误 比如 Timeout during connect​, connection refused​, No route to host​, NXDOMAIN​ 等,多半是:

        • DNS 没生效或配错了 (回头看步骤 6)。

        • GCP 防火墙没开对端口或没应用到 VM (回头看步骤 5)。

        • 网络抽风 (少见)。

        • 仔细读错误信息,对症下药。改完配置后,用 sudo docker compose restart caddy​ 重启 Caddy 再看日志。

    • 看看 Vaultwarden 启动日志 (可选):

      sudo docker compose logs -f vaultwarden

      正常应该能看到类似 Rocket has launched from http://0.0.0.0:80​。

    • 混合双打看所有日志 (可选):

      sudo docker compose logs -f


步骤 8: 验收成果 & 加固你的“密码堡垒” 🔒🏰

激动人心的时刻!看看我们的成果,并完成最后一步安全加固!

  1. 打开你的电脑/手机浏览器 (推荐用电脑先试试)。

  2. 在地址栏输入你的域名,务必带 https://开头! 例如:https://vw.yourdomain.com​ (换成你自己的域名)。

  3. 见证奇迹的时刻:

    • 如果一切顺利,你应该能看到 Vaultwarden 那简洁的登录/注册页面了!

    • 同时,检查浏览器地址栏左边的小锁头 🔒 点击它,应该显示“连接是安全的”,证书是颁发给你域名的有效证书。这表示 Caddy 自动 HTTPS 魔法成功!

    • 打不开?提示不安全?

      • 确认域名拼写对吗?https://​ 加了吗?

      • 回去看 Caddy 日志,证书真的拿到了吗?

      • GCP 防火墙 443 端口开了吗?

      • 清浏览器缓存,或者换个浏览器/无痕模式试试。

  4. 创建你的第一个(也是管理员)账号

    • 在 Vaultwarden 页面点 创建账户 (Create Account)。

    • 填你的 邮箱地址 (这将是你的登录名)。

    • 设置一个 【极其复杂】的主密码 (Master Password)!这是解开你整个密码库的唯一钥匙!用生命去记住它!可以设个密码提示。

    • 创建账户!

  5. ‼️‼️‼️ 立刻!马上!关上“公共注册”的大门!‼️‼️‼️ (安全重中之重!)

    • 你已经有账号了,赶紧禁止其他人也能在你的服务器上注册!

    • 回到 SSH 终端 (还在 ~/vaultwarden​ 目录)。

    • 先优雅地让服务暂停一下:

      sudo docker compose down

      (别怕,数据和证书都在外面挂载的目录里,丢不了)

    • 再次请出 nano 编辑器:

      nano docker-compose.yml

    • 找到 environment:下面那行 SIGNUPS_ALLOWED: 'true'​

    • 'true'改成 'false'​ (引号别丢!)

    • 保存退出: Ctrl+X​, Y​, Enter​。

    • 用新配置重新启动服务:

      sudo docker compose up -d

      搞定!现在除了你,没人能在你这儿注册了。你可以刷新下网页注册页面,应该会提示已禁用。

  6. 探秘管理员后台 (可选,好奇宝宝可以看看):

    • 浏览器访问 https://你的域名.com/admin​。

    • 输入 Admin Token (就是你在步骤 3 设置的那个超级长的令牌),登录。

    • 这里可以看服务器状态、管理用户(比如删掉手滑多注册的)、配置邮件发送(高级玩法)等。

    • 不懂的设置别乱动,看看就好。


步骤 9: “传家宝”备份!备份!备份!(数据安全,重于泰山!) 💾🛡️

你的所有密码身家性命都在这台小鸡上,万一哪天 GCP 不免费了、服务器崩了、硬盘挂了…… 后果不堪设想!所以,数据备份不是选择题,是必做题!

  • 备份啥? 核心数据都在 ~/vaultwarden/vw-data​ 文件夹。最保险是把整个 ~/vaultwarden​ 目录(包括 docker-compose.yml​, Caddyfile​, vw-data​, caddy-data​, caddy-config​)都备份下来。

  • 备份到哪? 千万别只存在本机! 要异地备份!

    • GCP Cloud Storage: GCP 自家存储,有免费额度,可写脚本自动上传 (推荐)。

    • 其他网盘: OneDrive, Google Drive, Dropbox 等 (可能需要 rclone 等工具同步)。

    • 你的 NAS 或另一台 VPS:rsync​ 同步过去。

    • 你自己的电脑: 定期手动 tar​ 打包 (tar czvf vaultwarden_backup_$(date +%Y%m%d).tar.gz ~/vaultwarden​),然后用 scp​ 或 SFTP 工具 (如 FileZilla, WinSCP) 下载回来。

  • 怎么备份?

    • 手动 (懒人慎用): 定期想起来就去打包下载。容易忘!

    • 自动 (强烈推荐): 写个简单的 Shell 脚本,打包 + gcloud storage cp​ (传到 GCS) 或 rclone copy​ (传到网盘) 等,然后用 Linux 的 cron​ 定时任务,设置每天凌晨自动执行一次。一劳永逸!(具体脚本网上搜“docker volume backup script”有很多例子)

  • 备份频率? 看你密码更新多勤快。经常加新密码就 每天备份。佛系用户 每周备份 也行。

记住大佬的话:没有备份的自建服务,就是在玩火!🔥


步骤 10: 全平台客户端连接,爽歪歪! 💻📱⌚️

最后一步,让你在所有设备上都能丝滑地使用你的专属密码库!

  1. 下载 Bitwarden 官方客户端: 去官网 https://bitwarden.com/download/ 下载:

    • 浏览器扩展 (必装!): Chrome, Firefox, Edge, Safari...

    • 桌面应用: Windows, macOS, Linux

    • 手机 App: iOS (App Store), Android (Google Play 或 F-Droid)

  2. 关键一步:配置自建服务器地址!

    • 打开你下载的客户端,在登录界面,先别急着输邮箱密码!

    • 找到 设置图标 (通常是齿轮 ⚙️) 或者类似 "登录选项" / "自托管环境" (Self-hosted Environment) 的地方。

    • 点击它,找到 服务器 URL (Server URL) 或类似输入框。

    • 填入你的 Vaultwarden 访问地址,必须带 https:// 例如:https://vw.yourdomain.com​

    • 保存设置!

  3. 登录! 回到登录界面,现在输入你在 步骤 8 注册的 邮箱地址 和你的 主密码

  4. Boom!登录成功! 客户端会从你的服务器同步数据。现在你可以开始添加、管理你的密码了!所有操作都会自动同步到你的服务器,并在你所有登录的设备间保持一致!

🎉 真・大功告成!你毕业了!🎉

恭喜你!历经九九八十一难(并没有),你亲手打造了一个完全属于你的、安全免费、全平台通用的私人密码保险库!这不仅省下了一笔订阅费,更是你掌控自己数字生活主权的一大步!

现在,快去把你那些散落在浏览器、记事本、大脑里的密码都“收编”进你的 Vaultwarden 吧!享受科技带来的安全感和便捷性!

觉得这篇“喂饭级”教程让你功力大增?别忘了【点赞👍】【收藏⭐】【评论✍️】三连击!分享给更多还在密码苦海挣扎的朋友吧!让他们也一起上车! 😉👇

作者提示含AI生成内容。

展开 收起
12评论

  • 精彩
  • 最新
  • keepass比这方便多了,webdav一扔就好,扔到路由器都可以

    校验提示文案

    提交
    这个只是薅谷歌羊毛搭个vaultwarden,你愿意的话vaultwarden一样随便扔在软路由上

    校验提示文案

    提交
    收起所有回复
  • 很详细,但是,感觉稍微有点复杂。
    请假下,这玩意儿,装好了,需要科技上网,才能登录或者备份密码吗?

    校验提示文案

    提交
    是的 [跑步鸭_爱你呀]

    校验提示文案

    提交
    收起所有回复
  • 新建的DEBIAN的用户名和密码是什么?从哪里查找?

    校验提示文案

    提交
    用不上账户密码,直接网页的ssh登录进去就可以了

    校验提示文案

    提交
    收起所有回复
  • 会不会被反薅

    校验提示文案

    提交
    按照教程走是不会的,但是要注意流量问题,它这个流量到cloudflare等对等网络的话不是免费的,你如果不套cf的cdn是没事的。

    校验提示文案

    提交
    收起所有回复
  • gcp不是只免费90天吗?啥时候出的永久免费

    校验提示文案

    提交
    去看看,可以去看下官方文档 [跑步鸭_嗨]

    校验提示文案

    提交
    收起所有回复
  • 仔细看了 Google 对于免费实例的说明,没有免费 1G 流量,但中国和澳大利亚不包含在内。

    校验提示文案

    提交
  • 以下是被折叠的评论 查看
已折叠部分评论
展开
收起
提示信息

取消
确认
评论举报

相关文章推荐

更多精彩文章
更多精彩文章
最新文章 热门文章
105
扫一下,分享更方便,购买更轻松