Upgrade Vaultwarden 1.29.1

Valutwarden 1.29로 업그레이드 하는방법과 간단한 후기에 대해 이야기합니다.

Before to start

맥을 사용하시는분이라면 Keychain에 익숙하실겁니다. 비밀번호를 저장하고 관리해주는 어플리케이션이죠.
요즘에는 크롬이나 엣지 브라우저에서도 제공하고있습니다.
저는 웹 뿐만이 아니라, 맥에서도 편하게 사용할수 있는것을 원했기 때문에 다른 툴을 사용하고있습니다.
더 자세히 이야기하면 길어지기 때문에, 짧게 이야기하면 Valutwarden이라는 Bitwarden의 Compact버전을 synology에 설치해서 사용하고있습니다.

이번에 Valutwarden이 1.29.0 버전으로 업그레이드 되면서 실시간 동기화가 가능해졌다는 소식에 업그레이드를 결심하였습니다.

Objective

Valutwarden을 1.29.1로 업그레이드하면서, 필요한 설정(ex. 실시간 동기화)들을 추가한다.

Upgrade

Upgrade Guide 찾기

업그레이드 하기전까지 사용하던 docker image를 latest를 사용했기 때문에, 몇버전을 사용하고 있었는지는 모르겠습니다.
하지만 최신버전이 1.29.x버전이기 때문에 minor 버전만 신경써주면 될것으로 생각했습니다.

공식 Github에 들어가보면 Updating valutwarden image Wiki가 존재합니다. 살펴보니 컨테이너 환경에서 업그레이드를 하는 방법만 설명하였고, 버전이 바뀌면서 변경해야하는 설정에 대해서는 언급이 없습니다.
저의 경우에는 이럴때 Release Note를 살펴봅니다. 정석은 모든 변경사항을 읽어야하지만, 선 업그레이드 후 변경하기로 마음먹었습니다 😇

그래도 업그레이드 하는게 1.29.x이니 1.29.0으로 올라오면서 큰 변경이 어떤건지 보았습니다.

1
2
3
4
5
6
7
- WebSocket notifications now work via the default HTTP port. No need for `WEBSOCKET_ENABLED` and a separate port anymore.
- The proxy examples still need to be updated for this. Support for the old websockets port 3012 will remain for the time being.
- Mobile Client push notification support, see #3304 thanks @GeekCornerGH!
- Web-Vault updated to v2023.5.0 (v2023.5.1 does not add any improvements for us)
- The latest Bitwarden Directory Connector can be used now (v2022.11.0)
- Storing passkeys is supported, though the clients are not yet released. So, it might be we need to make some changes once they are released.
- See: #3593, thanks @GeekCornerGH!

저한테는 3가지가 눈에 들어왔습니다.

  1. WebSocket notifications now work via the default HTTP port. No need for WEBSOCKET_ENABLED and a separate port anymore.
  2. Mobile Client push notification support, see #3304 thanks @GeekCornerGH!
  3. Storing passkeys is supported, though the clients are not yet released. So, it might be we need to make some changes once they are released.

1번의 경우에는 폰에서 사용중인 앱에서 변경사항이 발생시, valutwarden 서버에 반영하기 위해서 필수로 설정해야하는 기능입니다. (아니면 서버와 휴대폰앱이 별도의 데이터를 가지게 됩니다.)
이것 때문에 2개의 포트를 열어두고 사용하는게 필요했었는데, 이번 업데이트로 1개로 통합되었다고 하네요.
공유기에 개방해둔 포트를 줄일수 있을뿐더러, 신경써야되는 환경변수가 하나 줄었습니다.

2번의 경우에는 실시간 동기화입니다. 이거는 나중에 자세히 보겠습니다.

3번은 Passkey에 관한 내용입니다. 애플과 구글에서 지원하기 시작한 보안 방법중 하나인데, 고도화된 보안환경을 제공한다고 합니다.
저도 자세히 살펴보진 않아서,… 설명은 넘어가겠습니다.
보안에 신경은 항상 써야하기때문에, 지원가능해지면 사용해보고싶네요.

추가할 Configuration 보기

비밀번호 관리 프로그램을 개인 서버에 올려서 사용한다는건, 책임도 본인이 진다는 뜻입니다.
따라서 해킹당하지않도록 문제의 소지가 될수 있는 기능은 닫아두는게 좋습니다. (기본은 닫혀있을겁니다.)
그래서 사용하지 않을 기능과 사용할 기능들을 살펴보기 위해서 문서를 읽어보기 시작했습니다.

Github wiki를 읽어보면 자세하게 나와있습니다.
config.json보다는 환경변수를 사용하는 방법을 권고하네요.

리스트는 아래와 같습니다.
config
여러 관심가는 설정들이 많지만, 저는 2,3,4번 항목이 눈에 들어왔고 반영하기로 하였습니다.

  • 2번항목은 추가 사용자 가입금지
  • 3번항목은 초대를 통한 사용자 가입금지
  • 4번항목은 admin계정 운영
    • admin을 별도로 관리하고싶지않았기에, 기본값이 admin계정 비활성화인지 살펴봤습니다.

위에 나열한 내용들을 반영하기 위해서 아래와 같이 설정 해주었습니다.

1
2
SIGNUPS_ALLOWED : false
INVITATIONS_ALLOWED : false

그러고보니 실시간 동기화도 설정이 필요하네요.
7번 항목에 등록되어있습니다.
문서를 살펴보면 아시겠지만, 3개 환경변수 설정을 요구합니다.

1
2
3
- PUSH_ENABLED=true
- PUSH_INSTALLATION_ID=
- PUSH_INSTALLATION_KEY=

ID와 KEY는 Bitwarden 홈페이지에서 발급받으라고 합니다.
Self Hosting은 지원하지 않는건가? 싶었는데, 다행히 지원하네요.
auto-sync-request
Self Hosting에서 이용중인 이메일과 Data Region을 설정해줍니다.
Data Region은 뭔가싶겠지만, Wiki에 US로 두고 쓰라고 적혀있네요. Europe은 안될수도있다고… 그리고 업그레이드 직후에 App에서 실시간 동기화가 안될경우 재설치하라고 가이드하고있습니다.
업그레이드 완료한 후에, 한번 실시간 동기화 해보시는걸 추천합니다. (저는 직후에 바로해봤는데 잘되더라구요)

Upgrade 하기

본인 Synology에 Valutwarden을 설치하신 분이라면, 업그레이드 하는 과정은 다 아실거라 판단해서 과정은 생략했습니다.
container info
업그레이드 완료한 컨테이너 설정값인데, 이전과 큰 차이는 없습니다.

완료후, docker container log확인과 valutwarden web에 접속해보았습니다.
log에는 서버를 실행하는데 문제없었고, web에 접속해보니 에러페이지 뜨지않고 기존 데이터도 잘 있습니다.
실시간 동기화도 테스트해보았는데, 조금 이상하더라구요. Web에서 변경한 내용은 App에서 별도의 액션 없이 잘 반영되었는데, App에서 변경한 내용은 Web에서 새롭게 로딩해주어야 했습니다.
(새로고침했다가 다시 비밀번호 입력했습니다 -ㅅ-)
큰 이슈까진 아니기 때문에, 업그레이드 잘 되었다고 판단하였습니다.

후기

Valutwarden은 Bitwarden의 Compact를 추구하는 만큼 꼭 필요한 기능들만 가지고 있습니다. 이런 이유때문에 업그레이드 하더라도 많이 변경하지않아도 되는것이 좋게 느껴졌습니다.

별도로 운영되기 때문에 업그레이드를 하는데 개인의 노력이 필요할겁니다. 후원을 받긴하지만 오픈소스 환경에서 자발적으로 해주시는 분들에게 감사할 따름이네요.
저도 언젠가 필요한 기능을 추가하기 위해 Contribute하는 순간이 오겠죠?? 곧 올거라 믿습니다.

감사합니다.

Hugo로 만듦
JimmyStack 테마 사용 중