Все системы работают в штатном режиме 21 принимаемые криптовалюты · Monero приветствуется Политика без KYC
ChainVPS

Пароли · без KYC

Хостинг Vaultwarden на офшорном VPS

Запустите собственное Bitwarden-совместимое хранилище паролей на оборудовании, которое контролируете только вы, в юрисдикции с дружественным отношением к приватности, оплачивая в криптовалюте без привязки к личности.

Что это такое

Vaultwarden — это лёгкий неофициальный сервер Bitwarden, написанный на Rust и использующий тот же API, что и Bitwarden, поэтому с ним синхронизируются все официальные клиенты Bitwarden (расширения для браузера, desktop-приложения, iOS/Android, CLI). Он хранит зашифрованные хранилища паролей, passkeys, seed-ключей TOTP, банковских карт и защищённых заметок, поддерживает организации, вложения и панель администратора, при этом потребляя лишь малую часть RAM по сравнению с официальным стеком.

Почему размещать это оффшорно

Хранилище паролей — самый чувствительный актив, которым вы владеете, поэтому то, кто держит сервер и по каким законам, важно не меньше, чем шифрование. VPS без KYC с оплатой в криптовалюте в юрисдикции privacy-уровня (NL/CH/RO/IS) означает, что сервер, хранящий ваши зашифрованные хранилища, не привязан к вашей юридической личности, не подпадает под повестку США/Великобритании и не может быть заблокирован платёжным провайдером, отключившим вас от сервиса.

Развёртывание

Рабочая эталонная конфигурация

Скопируйте это на новый инстанс ChainVPS. Замените плейсхолдеры и запустите.

docker-compose.yml
# 1) DNS: point vault.example.com -> your ChainVPS IP (A/AAAA record)
# 2) Generate an Argon2 ADMIN_TOKEN (do NOT use a plain string):
#    docker run --rm -it vaultwarden/server /vaultwarden hash
#    paste the resulting '$argon2id$...' string as ADMIN_TOKEN below (single-quote it in .env)
# 3) Save as docker-compose.yml, create the Caddyfile shown, then: docker compose up -d

services:
  vaultwarden:
    image: vaultwarden/server:1.32.7
    container_name: vaultwarden
    restart: unless-stopped
    environment:
      DOMAIN: "https://vault.example.com"      # must match the public URL exactly
      SIGNUPS_ALLOWED: "false"                  # create your account, then keep this false
      INVITATIONS_ALLOWED: "true"
      ADMIN_TOKEN: "${ADMIN_TOKEN}"             # Argon2 hash from step 2, kept in .env
      WEBSOCKET_ENABLED: "true"                 # live sync (served on the main port)
      SENDS_ALLOWED: "true"
      ROCKET_PORT: "80"
    volumes:
      - ./vw-data:/data                         # vaults, attachments, sqlite db, keys
    networks: [vw]
    # no host port published: only Caddy talks to it over the internal network

  caddy:
    image: caddy:2
    container_name: vaultwarden-caddy
    restart: unless-stopped
    ports:
      - "80:80"
      - "443:443"
      - "443:443/udp"                           # HTTP/3
    volumes:
      - ./Caddyfile:/etc/caddy/Caddyfile:ro
      - ./caddy-data:/data
      - ./caddy-config:/config
    networks: [vw]
    depends_on: [vaultwarden]

networks:
  vw:

# ---- Caddyfile (same directory) ----
# vault.example.com {
#     encode gzip
#     reverse_proxy vaultwarden:80
# }
# Caddy fetches and renews a Let's Encrypt cert automatically; HTTPS is mandatory
# because Bitwarden clients use WebCrypto, which only runs on a secure origin.

Файрвол

Порты для открытия

ПортПротоколНазначение
443TCPHTTPS-хранилище + синхронизация клиентов + WebSocket (через Caddy); единственный порт, который должен быть публичным
80TCPРедирект HTTP -> HTTPS и выпуск сертификата ACME/Let's Encrypt
443UDPОпционально HTTP/3 (QUIC) для более быстрой синхронизации клиентов

Подбор оптимального размера

Какой план вам нужен

Лёгкий уровень (1-5 пользователей, личное использование/семья)

VPS Nano/Small (1 vCPU, 1-2 GB RAM)

В режиме ожидания Vaultwarden потребляет около 15-30 МБ RAM при работе на SQLite, так что Nano вполне достаточно. Хранилище занимает минимум места, если только вы не храните большие вложения.

Средний уровень (небольшая команда / 10-40 пользователей, организации)

VPS Pro (2 vCPU, 4 GB RAM)

Запас мощности для одновременных синхронизаций, вложений и запуска Caddy вместе с fail2ban/резервным копированием на том же сервере.

Высокая нагрузка (50+ пользователей, много организаций, крупные вложения, база данных MySQL/Postgres)

VPS Pro (старший тариф) или начальный Dedicated

Перейдите с SQLite на Postgres/MySQL и разместите вложения на тарифе Storage или диске большего объёма; выделенный CPU удерживает задержку синхронизации стабильной под нагрузкой.

Лучшие локации: Выберите для хранилища локацию ChainVPS privacy-уровня: Швейцария (CH) и Исландия (IS) обладают сильными традициями защиты данных и приватности, Нидерланды (NL) предлагают отличную связность в сочетании с законодательством ЕС о приватности, а Румыния (RO) и Молдова (MD) находятся вне самых строгих блоков обмена данными слежки. Выбирайте локацию, географически ближайшую к вам и вашим пользователям, чтобы минимизировать задержку — в любом случае хранилище шифруется на стороне клиента.

Обеспечьте полную защиту

Чек-лист по усилению защиты

  • После создания своей учётной записи оставьте SIGNUPS_ALLOWED=false и добавляйте пользователей через INVITATIONS; открытая точка регистрации на публичном хранилище — приманка для злоупотреблений.
  • Всегда задавайте ADMIN_TOKEN как хеш Argon2, сгенерированный командой 'vaultwarden hash' (никогда не используйте открытую строку), либо полностью отключите панель /admin, оставив ADMIN_TOKEN незаданным после настройки. Рассмотрите возможность ограничить доступ к /admin брандмауэром только для своего IP.
  • Разрешайте работу только по HTTPS и доверьте Caddy управление сертификатами Let's Encrypt; клиенты Bitwarden отказываются выполнять криптографические операции через обычный HTTP, а действительный сертификат предотвращает downgrade-атаки и MITM при синхронизации.
  • Регулярно делайте резервные копии каталога ./vw-data (особенно rsa_key.pem, config.json, db.sqlite3 и вложений) во внешнее хранилище, например на тариф ChainVPS Storage; потеря rsa_key.pem делает недействительными все существующие сессии и токены.
  • Запустите fail2ban для мониторинга лога Vaultwarden (LOG_FILE + LOG_LEVEL), чтобы блокировать попытки подбора пароля, и требуйте от каждого пользователя включить 2FA; открывайте наружу только порты 80/443 через ufw/nftables и блокируйте всё остальное.

Вопросы

Хостинг Vaultwarden — FAQ

Vaultwarden — это то же самое, что и Bitwarden?

Нет, это отдельная лёгкая серверная реализация API Bitwarden. Она не разрабатывается компанией Bitwarden Inc., но с ней работают официальные приложения и расширения Bitwarden; поддерживаются хранилища, организации, вложения, Sends и passkeys. Это идеальный вариант для отдельных пользователей и небольших команд, которые хотят самостоятельный хостинг без ресурсных затрат официального серверного стека.

Будут ли мои данные в безопасности, если сервер изымут или хостинг будет скомпрометирован?

Хранилища шифруются и расшифровываются на стороне клиента с помощью ключа, производного от вашего мастер-пароля, поэтому сервер хранит только зашифрованные данные. Размещение на сервере без KYC в юрисдикции с дружественным отношением к приватности сокращает круг тех, кто может принудить к раскрытию доступа, но вам всё равно нужно использовать надёжный мастер-пароль, включить 2FA и держать DOMAIN на HTTPS, чтобы защитить сам процесс входа.

Нужен ли мне HTTPS, или можно использовать обычный IP?

Вам нужен HTTPS с действительным сертификатом и доменным именем. Клиенты Bitwarden используют браузерный API WebCrypto, который работает только в защищённом источнике (secure origin), поэтому настройка с обычным http:// или голым IP не позволит синхронизироваться. Включённый сервис Caddy автоматически выпускает и продлевает бесплатный сертификат Let's Encrypt.

SQLite или MySQL/Postgres?

SQLite (используется по умолчанию) отлично подходит и работает быстрее всего для личного использования и небольших команд до нескольких десятков пользователей. Переходите на MySQL или PostgreSQL только для крупных развёртываний с несколькими организациями или если вам нужны централизованные резервные копии и репликация БД; настройте DATABASE_URL соответствующим образом.

Как добавить пользователей, не открывая публичную регистрацию?

Оставьте SIGNUPS_ALLOWED=false и INVITATIONS_ALLOWED=true, а затем приглашайте пользователей из организации (Organization) или через панель /admin. Приглашённые пользователи получают инвайт и могут зарегистрироваться, даже если публичная регистрация закрыта, что защищает точку регистрации от злоупотреблений.

Могу ли я оплатить VPS, не предоставляя удостоверение личности?

Да. ChainVPS работает без KYC и принимает оплату в криптовалюте, поэтому сервер, хранящий ваши зашифрованные хранилища, не привязан к вашей юридической личности или платёжному процессору, который мог бы заморозить счёт.

Больше для самостоятельного хостинга

Другие стеки в один клик

Разверните Vaultwarden
в течение следующих 60 секунд.

Безлимитный трафик · DDoS-защита включена · 21 криптовалюта · без KYC.