Vaultwarden이란?

Bitwarden의 오픈소스 서버 구현체다. 공식 Bitwarden 앱, 브라우저 확장 프로그램과 100% 호환되면서, 내 서버에서 직접 운영할 수 있다.

구글 비밀번호 관리자를 쭉 써왔는데, 비밀번호를 외부 서비스에 맡기는 게 항상 마음에 걸렸다. 홈서버가 생겼으니 직접 호스팅하기로 했다.


설치

1. 디렉토리 생성

mkdir -p ~/vaultwarden && cd ~/vaultwarden

2. docker-compose.yml 작성

services:
  vaultwarden:
    image: vaultwarden/server:latest
    container_name: vaultwarden
    restart: always
    ports:
      - "11000:80"
    volumes:
      - vaultwarden_data:/data
    environment:
      - DOMAIN=https://vault.yourdomain.com
      - SIGNUPS_ALLOWED=true

volumes:
  vaultwarden_data:

DOMAIN에 실제 접근할 도메인을 설정해야 한다. Vaultwarden이 HTTPS 환경에서 동작한다고 인식해야 브라우저 확장 연동이 정상적으로 된다.

3. 실행

docker compose up -d

OCI Nginx 리버스 프록시 설정

sudo vi /etc/nginx/sites-available/vault.yourdomain.com
server {
    listen 80;
    server_name vault.yourdomain.com;
    return 301 https://$host$request_uri;
}

server {
    listen 443 ssl;
    server_name vault.yourdomain.com;

    ssl_certificate     /ssl/live/yourdomain.com/fullchain.pem;
    ssl_certificate_key /ssl/live/yourdomain.com/privkey.pem;
    ssl_protocols TLSv1.2 TLSv1.3;
    ssl_prefer_server_ciphers on;

    location / {
        proxy_pass http://100.109.108.36:11000;
        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;
    }
}
sudo ln -s /etc/nginx/sites-available/vault.yourdomain.com /etc/nginx/sites-enabled/
sudo nginx -t && sudo systemctl reload nginx

초기 계정 생성

https://vault.yourdomain.com 접속 후 계정을 생성한다.

Vaultwarden 초기 화면

⚠️ 마스터 비밀번호는 절대 잊으면 안 된다. 서버 관리자도 복구가 불가능하고, 분실하면 저장된 비밀번호 전부 날아간다.

계정 생성 완료 후 신규 가입을 막는다. 혼자 쓰는 서버라 추가 가입이 필요 없다.

docker-compose.yml 수정:

environment:
  - SIGNUPS_ALLOWED=false
docker compose up -d

구글 비밀번호 가져오기

1. 구글 비밀번호 내보내기

passwords.google.com 접속 → 우측 상단 설정(⚙️) → 비밀번호 내보내기 → CSV 다운로드

2. Vaultwarden으로 가져오기

vault.yourdomain.com 로그인 → ToolsImport data

  • 형식: Google Chrome (csv) 선택
  • 다운로드한 CSV 파일 업로드
  • Import 클릭

⚠️ CSV 파일에 비밀번호가 평문으로 들어있다. 가져오기 완료 후 즉시 삭제할 것.


브라우저 확장 연동

크롬 웹스토어에서 Bitwarden 확장 프로그램을 설치한다.

확장 아이콘 클릭 → 로그인 화면 좌측 상단 지구본 아이콘 클릭 → Self-hosted 선택

Server URL에 https://vault.yourdomain.com 입력 후 Save.

이후 Vaultwarden 계정으로 로그인하면 기존 구글 자동완성과 동일하게 사이트마다 비밀번호를 자동완성해준다.


정리

  • Vaultwarden은 Bitwarden과 완전 호환이라 앱, 확장 프로그램 그대로 쓸 수 있다
  • DOMAIN 환경변수를 HTTPS 도메인으로 설정해야 브라우저 확장이 정상 동작한다
  • 계정 생성 후 SIGNUPS_ALLOWED=false로 꼭 닫아두자
  • 마스터 비밀번호 분실 시 복구 방법이 없으므로 안전하게 보관할 것

다음 편에서는 Portainer CE를 설치해서 Docker 컨테이너를 GUI로 관리하는 환경을 구성한다.