Установка Vaultwarden (Bitwarden_RS) и PostgreSQL Centos 8 / Rocky Linux

Оригинал статьи:

Уста­нов­ка Vaultwarden (Bitwarden_RS) и PostgreSQL не в docker-испол­не­нии в Centos 8 / Rocky Linux

 

Vaultwarden (Bitwarden_RS) — мене­джер паро­лей с откры­тым кодом. Лег­ко­вес­ный форк широ­ко извест­но­го Bitwarden, напи­сан на Rust. В каче­стве БД исполь­зу­ет­ся SQLite, MariaDB, PostgreSQL

Подготовка

Обно­вим ОС, уста­но­вим необ­хо­ди­мые пакеты

Доба­вим поль­зо­ва­те­ля, от име­ни кото­ро­го будет рабо­тать сер­вис Vaultwarden

$ sudo useradd -m -U -r -d /opt/vaultwarden vaultwarden

$ sudo chmod 750 /opt/vaultwarden

Установка Rust

Пере­клю­чим­ся на создан­но­го пользователя

$ sudo su - vaultwarden
Уста­но­вим Rust, по офи­ци­аль­но­му мануалу

$ curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
1) Proceed with installation (default)
Настра­и­ва­ем оболочку

$ source ~/.profile
$ source ~/.cargo/env
Проверяем

$ rustc -V
rustc 1.55.0 (c8dfcfe04 2021-09-06)
Пере­клю­ча­ем­ся обрат­но на sudo-пользователя

$ exit
Уста­нов­ка Node JS
Созда­дим ката­лог для node и уста­но­вим туда node

Установка Vaultwarden (Bitwarden_RS)

Пере­клю­ча­ем­ся на создан­но­го поль­зо­ва­те­ля и уста­нав­ли­ва­ем сервис

$ sudo su - vaultwarden
$ wget https://github.com/dani-garcia/vaultwarden/archive/refs/tags/1.22.2.tar.gz
$ tar xzvf 1.22.2.tar.gz
$ cd vaultwarden-1.22.2
$ cargo build --features postgresql --release
Уста­нав­ли­ва­ем web-интерфейс

$ cd target/release
$ wget https://github.com/dani-garcia/bw_web_builds/releases/download/v2.23.0/bw_web_v2.23.0.tar.gz
$ tar xzvf bw_web_v2.23.0.tar.gz
Созда­дим data-дирек­то­рию, кото­рую поз­же ука­жем в настройках

$ cd
$ mkdir data
Созда­дим кон­фи­гу­ра­ци­он­ный файл для Vaultwarden

$ nano /opt/vaultwarden/vaultwarden-1.22.2/target/release/.env

Все пара­мет­ры кон­фи­гу­ра­ци­он­но­го фай­ла опи­са­ны в шаб­лоне, из ска­чен­но­го архива

Пере­клю­ча­ем­ся на sudo-пользователя

$ exit

Установка PostgreSQL

Отклю­ча­ем postgresql из систем­но­го репозиория

$ sudo dnf -qy module disable postgresql
$ sudo dnf module list postgresql
Уста­нав­ли­ва­ем PostgreSQL из репо­зи­то­рия Postgres

$ sudo dnf -y install https://download.postgresql.org/pub/repos/yum/reporpms/EL-8-x86_64/pgdg-redhat-repo-latest.noarch.rpm
$ sudo dnf -y install postgresql13 postgresql13-server
Ини­ци­и­ру­ем базу, запус­ка­ем сервис

$ sudo /usr/pgsql-13/bin/postgresql-13-setup initdb
$ sudo systemctl enable --now postgresql-13
$ systemctl status postgresql-13
Созда­ем поль­зо­ва­те­ля БД и базу, как в кон­фи­гу­ра­ци­он­ном файле

Systemd Unit

Созда­ем Systemd Unit

sudo nano /etc/systemd/system/vaultwarden.service

Запус­ка­ем сер­вис, проверяем

$ sudo systemctl daemon-reload
$ sudo systemctl enable vaultwarden --now
$ sudo systemctl status vaultwarden

Установка и настройка Nginx

Добав­ля­ем репозиторий

$ sudo nano /etc/yum.repos.d/nginx.repo

 

Уста­нав­ли­ва­ем Nginx, отклю­ча­ем дефолт­ный конфиг

$ sudo dnf -y install nginx
$ sudo mv /etc/nginx/conf.d/default.conf /etc/nginx/conf.d/default.conf_disabled
Созда­ем кон­фиг для vaultwarden

Про­ве­ря­ем кон­фиг, запус­ка­ем Nginx

$ sudo nginx -t
$ sudo systemctl enable --now nginx

Настраиваем Firewall, отключаем SELinux

Откры­ва­ем web-порты

$ sudo firewall-cmd --permanent --add-service=http
$ sudo firewall-cmd --permanent --add-service=https
$ sudo firewall-cmd --reload
Отклю­ча­ем SELinux

$ sudo nano /etc/sysconfig/selinux
SELINUX=disabled

$ sudo setenforce 0
Уста­нов­ка завершена.
Пере­хо­дим в бра­у­зе­ре по нуж­но­му URL, созда­ем поль­зо­ва­те­ля, экс­пор­ти­ру­ем пароли