Установка менеджера паролей Vaultwarden в Docker Compose: полный конфиг

    Опубликовано: 02.10.2026 • Время чтения: 2 мин.

    Официальный сервер Bitwarden требует от 3 ГБ оперативной памяти и тяжеловесной базы данных MSSQL. Проект Vaultwarden — это альтернативная реализация на языке Rust, потребляющая всего 30 МБ оперативной памяти и полностью совместимая со всеми официальными приложениями и расширениями Bitwarden.

    Ниже приведен готовый файл docker-compose.yml для мгновенного развертывания на любом VPS.


    1. Подготовка каталогов

    Подключитесь к вашему серверу по SSH и создайте рабочую папку:

    sudo mkdir -p /opt/vaultwarden/data
    cd /opt/vaultwarden
    

    2. Готовый файл docker-compose.yml

    Создайте файл nano docker-compose.yml и вставьте следующую конфигурацию:

    version: '3.8'
    
    services:
      vaultwarden:
        image: vaultwarden/server:latest
        container_name: vaultwarden
        restart: unless-stopped
        environment:
          # Разрешить регистрацию (переключите на false после создания своего аккаунта!)
          - SIGNUPS_ALLOWED=true
          # Включение WebSockets для мгновенной синхронизации изменений между устройствами
          - WEBSOCKET_ENABLED=true
          # Токен панели администратора (сгенерируйте сложную строку)
          - ADMIN_TOKEN=SuperSecretAdminTokenChangeMe123!
        volumes:
          - /opt/vaultwarden/data:/data
        ports:
          - "127.0.0.1:8080:80"
          - "127.0.0.1:3012:3012"
    

    3. Настройка Nginx с SSL-сертификатом

    Менеджеры паролей не работают по HTTP (браузеры блокируют Web Crypto API). Настроим обратный прокси через Nginx.

    Создайте конфиг /etc/nginx/sites-available/vaultwarden.conf:

    server {
        listen 80;
        server_name vault.yourdomain.ru;
        return 301 https://$host$request_uri;
    }
    
    server {
        listen 443 ssl http2;
        server_name vault.yourdomain.ru;
    
        ssl_certificate /etc/letsencrypt/live/vault.yourdomain.ru/fullchain.pem;
        ssl_certificate_key /etc/letsencrypt/live/vault.yourdomain.ru/privkey.pem;
    
        client_max_body_size 128M;
    
        location / {
            proxy_pass http://127.0.0.1:8080;
            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;
        }
    
        # WebSocket для мгновенной синхронизации
        location /notifications/hub {
            proxy_pass http://127.0.0.1:3012;
            proxy_set_header Upgrade $http_upgrade;
            proxy_set_header Connection "upgrade";
        }
    }
    

    Получите бесплатный SSL-сертификат через Certbot:

    sudo certbot --nginx -d vault.yourdomain.ru
    

    4. Запуск и закрытие регистрации

    1. Запустите контейнер:
    docker compose up -d
    
    1. Откройте https://vault.yourdomain.ru в браузере и создайте свою основную учетную запись с надежным мастер-паролем.
    2. Критически важно: Сразу после создания аккаунта откройте docker-compose.yml, измените параметр на SIGNUPS_ALLOWED=false и примените изменения:
    docker compose up -d
    

    Теперь регистрация для посторонних закрыта, а ваш персональный сейф паролей защищен.

    Частые вопросы

    ❓ Почему браузер выдает ошибку Crypto API при подключении по HTTP?

    Современные браузеры блокируют криптографические операции расширений менеджеров паролей на незащищенных HTTP-соединениях. Наличие HTTPS строго обязательно.

    ❓ Сколько оперативной памяти потребляет Vaultwarden?

    Благодаря реализации на языке Rust контейнер потребляет всего около 25–40 МБ RAM.

    ❓ Как сохранить бэкап паролей?

    Достаточно скопировать файл /vw-data/db.sqlite3 на внешний диск или настроить регулярный cron-бэкап.

    👨‍💻

    Об авторе: Редакция Гайдотеки

    Инструкция подготовлена специалистами портала. Мы лично проверяем каждый способ оплаты и настройки программ перед публикацией. Если метод перестает работать — мы обновляем гайд.