В статье рассмотрена установка и настройка своего хранилища паролей vaultwarden.

Заранее должны быть установленs DNS-сервер и LetsEncrypt. Сертификаты на домен и поддомены также должны получены.

1. На момент осени 2024 года, ядро должно быть собрано с options COMPAT_FREEBSD11. Это надо, чтобы собрался rust.

2. Apache должен быть собран с опциями proxy_module, proxy_http_module, proxy_wstunnel_module.

В httpd.conf добавьте:

 

# Настройки для vaultwarden
LoadModule proxy_module                 libexec/apache24/mod_proxy.so
LoadModule proxy_http_module            libexec/apache24/mod_proxy_http.so
LoadModule proxy_wstunnel_module        libexec/apache24/mod_proxy_wstunnel.so

Виртуальный хост будет иметь адрес warden.fbsd.site

<VirtualHost *:443>
    ProxyPreserveHost On
    ProxyRequests Off
    ServerName warden.fbsd.site
    DocumentRoot "/usr/local/www/vaultwarden/web-vault"
    ProxyPass / http://127.0.0.1:30000/
    ProxyPassReverse / http://127.0.0.1:30000/

    ErrorLog "/var/log/apache/vw.fbsd.site-error.log"

Include /usr/local/etc/letsencrypt/options-ssl-apache.conf
SSLCertificateFile /usr/local/etc/letsencrypt/live/fbsd.site/fullchain.pem
SSLCertificateKeyFile /usr/local/etc/letsencrypt/live/fbsd.site/privkey.pem
</VirtualHost>

Перезапускаем апач


3. Установка и настройка Vaultwarden.

Сама софтина находится в /usr/ports/security/vaultwarden. Собирайте с поддержкой web-vault и sqlite.

Создаём и редактируем конфиг. 

# cd /usr/local/etc/rc.conf.d
# cp vaultwarden.sample vaultwarden
# openssl rand -base64 48

Вывод команды сохраняем в буфер обмена.

Изменяем нужные нам параметры:

 

# Прописываем нужный порт. Такой же надо будет вписать в ProxyPass и ProxyPassReverse виртуального хоста.
ROCKET_PORT=30000 # your port here
export ROCKET_PORT

# Прописываем пути в сертификату и ключу, ранее полученных через LetsEncrypt
ROCKET_TLS='{certs = "/usr/local/etc/letsencrypt/live/fbsd.site/fullchain.pem", key = "/usr/local/etc/letsencrypt/live/fbsd.site/key.pem"}'

SIGNUPS_ALLOWED='true'
export SIGNUPS_ALLOWED

DOMAIN='https://warden.fbsd.site'
export DOMAIN

ADMIN_TOKEN=ключ, который вы получили командой openssl rand -base64 48
export ADMIN_TOKEN

 

Остальное можно оставить как было.

В /etc/rc.conf прописываем vaultwarden_enable="YES" и запускаем сервис:
# cd /usr/local/etc/rc.d
# ./vaultwarden start

4. Заходите в https://warden.fbsd.site и нажимаете на "Создать аккаунт". Создаёте и входите с ним.

Всё