반응형

Vaultwarden은 오픈소스 패스워드 매니저인 Bitwarden의 가벼운 이미지 버전이다. 공식 Bitwarden 이미지가 대규모 서비스를 전제로 만들어져서 굉장히 무거운 데 반해 Vaultwarden은 소규모 자체 호스팅을 전제로 만들어져서 가볍다. (DB도 기본적으로 SQLite를 사용한다)

원래 패스워드 매니저로 라스트패스를 사용하다가 군대 갔다 오니 가격이 두 배($24), 또 얼마 지나지 않아서 가격이 세 배($36)로 오른 것을 보고 비트워든으로 갈아탔다. 비트워든은 무료도 충분하지만, 유료도 1년에 $10밖에 하지 않는다.

그러다가 심심해서 NAS에 비트워든을 돌려보기로 했다. (유료 결제는 잘 쓰고 있으니 기부한 셈...?)

자세한 설정법이나 FAQ는 공식 문서를 살펴보길 바란다.

https://github.com/dani-garcia/vaultwarden/wiki

 

GitHub - dani-garcia/vaultwarden: Unofficial Bitwarden compatible server written in Rust, formerly known as bitwarden_rs

Unofficial Bitwarden compatible server written in Rust, formerly known as bitwarden_rs - GitHub - dani-garcia/vaultwarden: Unofficial Bitwarden compatible server written in Rust, formerly known as ...

github.com

설치

1. Docker를 열고 vaultwarden/server 이미지를 다운받는다.

2. 다운받은 이미지를 선택해서 컨테이너 생성을 시작한다.

3. 고급 설정을 눌러서 자동 재시작에 체크해주고

4. 볼륨 탭에서 /data 경로를 적당한 위치에 마운트 해준다.

5. 포트 설정 탭에서 적당한 포트를 매핑해준다. 80이 웹페이지 포트고 3012는 웹소켓 포트이다. 나는 80 포트가 이미 사용 중이라 적당한 다른 포트를 설정해줬다.

6. 환경 탭에서 환경변수를 추가해준다. 앞에서 웹소켓 포트도 매핑해줬고 웹소켓을 사용하면 로그인 정보를 바꿨을 때 클라이언트에서 동기화를 누를 필요 없이 바로바로 연동되므로 활성화 설정을 했다.


TZ=Asia/Seoul
WEBSOCKET_ENABLED=true

7. 이제 컨테이너를 실행한다.

8. 설정한 주소로 들어가면 아래 화면이 뜬다. 근데 계정을 만들려고 하면 HTTPS를 사용하라는 오류가 뜰 것이다. 비트워든은 보안을 위해 무조건 HTTPS로 접속해야 사용할 수 있게 만들어져 있다.

9. 지난번에 Nginx Proxy Manager를 설치했으니 얘로 HTTPS 리버스 프록시를 만들어보자. NPM에 접속해서 새로운 프록시 호스트를 만든다. 나는 NPM을 설치할 때 host 네트워크를 사용하도록 만들었기 때문에 그냥 주소에 루프백 아이피를 넣어줬지만, bridge 네트워크를 사용하도록 설치했다면 내부 아이피 주소를 넣어줘야 할 것이다.

10. 웹소켓을 사용할 수 있게 관련 설정을 해준다. /notifications/hub는 웹소켓 포트에 /notifications/hub/negotiate는 웹서버 포트에 연결한다.

11. SSL 인증서를 만들고 HTTPS 설정을 해주면 끝!

12. 짜잔~ 이제 계정을 만들고 사용할 수 있다.

13. 이제 내가 사용할 계정은 만들었으니 다른 사람이 계정을 만들 수 없게 막아야 한다. 컨테이너를 끄고 아래 SIGNUPS_ALLOWED 환경변수를 추가한다. DOMAIN 환경변수는 설명서에 설정하는 게 좋다고 하여 설정했다. 비트워든 주소를 넣으면 된다.


SIGNUPS_ALLOWED=false
DOMAIN=https://bitwarden.example.com

이제 비트워든 앱이나 확장프로그램에서 로그인하기 전에 설정 버튼을 눌러서 서버 URL을 자신의 비트워든 주소로 설정한 뒤 로그인하면 된다.

Vaultwarden을 사용하면 TOTP등 일부 유료 기능을 그냥 사용할 수 있다.

반응형

+ Recent posts