vaultwarden-selfhostINFO

Vaultwarden Self-Host: Tutorial completo 2026 (Docker, Raspberry Pi, TLS)

Tutorial Vaultwarden self-host 2026: Docker Compose em Raspberry Pi 4, proxy nginx, TLS Let's Encrypt, backups automáticos, compatibilidade a 100% com os clientes Bitwarden oficiais. Privacidade máxima.

Por Eric Gerard · Editor · PwdFortress4 min de leituraPhoto: Markus Spiske - Unsplash

📌 O self-hosting NÃO é para todos: antes de começar, sê honesto - estás à altura de gerir reverse proxy, certificados TLS, backups cifrados e atualizações Docker mensais? Se a resposta for «nem por isso», um cofre gerido como o NordPass a 1,49 €/mês vai custar-te menos do que uma falha do Raspberry Pi enquanto estás de férias. Se sim, este tutorial é para ti.

Novo na ideia? Comece pela nossa visão geral dos gestores self-hosted.

O Vaultwarden é a reescrita open source em Rust do servidor Bitwarden, concebida para correr em hardware modesto (um Raspberry Pi 4 chega). Este tutorial detalha um deployment de nível produção com Docker Compose, proxy Caddy com HTTPS automático e backups cifrados no Backblaze B2.

O Vaultwarden corre o teu cofre Bitwarden no teu próprio hardware. Compatível a 100% com os clientes oficiais. Configuração em 30 minutos se conheceres Docker.

01 - Pré-requisitos

  • Um servidor Linux (Raspberry Pi 4, VPS ou homelab) com Docker instalado
  • Um nome de domínio a apontar para o IP público do servidor (ex.: vault.yourdomain.com)
  • Porta 443 aberta na firewall / NAT
  • 30 minutos
  • ~50 MB de espaço para o Vaultwarden + os teus dados futuros

02 - Arquitetura alvo

Internet → Cloudflare (opcional) → reverse proxy Caddy com Let's Encrypt automático → contentor Vaultwarden. Dados guardados no host em /srv/vaultwarden/data.

O Caddy trata do HTTPS automaticamente via Let's Encrypt. O Vaultwarden corre num contentor Docker isolado.

03 - Docker Compose

Cria o ficheiro /srv/vaultwarden/docker-compose.yml. A configuração usa a imagem oficial vaultwarden/server:latest, expõe a variável DOMAIN a apontar para o teu URL HTTPS, desativa os registos externos com SIGNUPS_ALLOWED: false, ativa os WebSockets para a sincronização em tempo real e monta um volume ./data para a persistência.

A configuração do Caddy é mínima: uma única diretiva reverse_proxy vaultwarden:80 mais os cabeçalhos de segurança padrão (HSTS, X-Frame-Options, X-Content-Type-Options, Referrer-Policy).

O ADMIN_TOKEN é gerado com openssl rand -base64 48 (a colocar apenas na tua configuração local, nunca commitado).

04 - Iniciar o Vaultwarden

Inicia o serviço com docker compose up -d a partir da pasta /srv/vaultwarden e depois verifica os logs com docker compose logs -f vaultwarden. O Caddy obtém automaticamente um certificado Let's Encrypt em 30 segundos (visível em docker compose logs caddy).

05 - Primeiro início de sessão + endurecimento

Um ecrã de início de sessão com um campo de palavra-passe
Um ecrã de início de sessão com um campo de palavra-passe

  1. Abre https://vault.yourdomain.com no navegador
  2. Cria a tua conta (a única permitida: registos fechados depois)
  3. IMEDIATAMENTE: Settings → Security → Two-step Login → ativar TOTP
  4. IMEDIATAMENTE: verifica que SIGNUPS_ALLOWED está a false
  5. Testa o preenchimento automático com o navegador a apontar para o teu URL personalizado

06 - Backups automáticos

Um script bash de hora a hora cria um snapshot da base de dados SQLite (consistente sem parar o serviço), comprime a pasta inteira, cifra do lado do cliente com GPG (destinatário = o teu email) e envia para o Backblaze B2 (~1 €/mês por 100 GB).

A sequência:

  1. docker exec vaultwarden sqlite3 /data/db.sqlite3 ".backup '/tmp/db_DATE.sqlite3'" para um snapshot consistente
  2. tar czf para arquivar
  3. gpg --encrypt --recipient you@email.com para a cifragem do lado do cliente
  4. b2 upload-file para o envio remoto
  5. Limpeza local

Crontab: 0 * * * * /usr/local/bin/vaultwarden-backup.sh

Teste mensal: restaura um backup numa instância de dev para verificar a integridade.

07 - Ligar os clientes Bitwarden oficiais

Em cada cliente Bitwarden (móvel, desktop, navegador), antes de iniciar sessão:

  1. Clica na roda dentada das definições (antes do login)
  2. URL do servidor: https://vault.yourdomain.com
  3. Guarda
  4. Inicia sessão com a tua palavra-passe mestra

Todos os clientes funcionam exatamente como com a cloud Bitwarden oficial.

08 - Manutenção

  • Atualizações do Vaultwarden: docker compose pull && docker compose up -d (recomendado mensalmente)
  • Monitorização: Uptime Kuma (self-hosted) ou Healthchecks.io (gratuito) para alertas de indisponibilidade
  • Logs: docker compose logs --tail 200 vaultwarden
  • Auditoria: segue github.com/dani-garcia/vaultwarden para eventuais CVEs

★ Audit Cure53 2024 · ✓ Plan gratuit · Cross-platform

Ver NordPass Premium →1,49 €/mês · Zero manutenção · Auditado Cure53 + SOC 2

09 - Para aprofundar


Tutorial baseado no Vaultwarden 1.31.x em Raspberry Pi 4 (Debian 12) em junho de 2026. Procedimentos validados face à documentação oficial do Vaultwarden.

Perguntas frequentes

O Vaultwarden é mesmo compatível com os clientes Bitwarden oficiais?

**Sim, a 100%**. O Vaultwarden (antigo bitwarden_rs) é uma reescrita em Rust do servidor Bitwarden que implementa a API oficial. Os clientes Bitwarden (web, desktop, móvel, navegadores, CLI) ligam-se ao teu servidor Vaultwarden bastando apontar para o teu URL personalizado. Sem perda de funcionalidades do lado do cliente. O único caso em que o Vaultwarden fica ligeiramente atrás: algumas funcionalidades Enterprise muito recentes podem ter 1-2 meses de atraso.

Que hardware para self-hosting do Vaultwarden?

**Mínimo viável**: Raspberry Pi 4 (2 GB de RAM, microSD 32 GB) ou qualquer VPS de 3-5 €/mês (Contabo, OVH, Hetzner CX11). **Confortável**: Raspberry Pi 4 (4 GB de RAM, SSD USB 3.0) ou VPS com 4 GB de RAM. O Vaultwarden usa ~100 MB de RAM em repouso, ~200 MB no pico. O espaço depende dos anexos: ~50 MB para 500 entradas sem anexos.

O TLS / HTTPS é obrigatório para o Vaultwarden?

**Sim, em absoluto**. Os clientes Bitwarden recusam-se a ligar a um servidor HTTP não cifrado (exceto localhost em dev). Tens de implementar um certificado TLS. Solução padrão: Let's Encrypt via certbot (gratuito, renovação automática) com proxy nginx ou Caddy. O nosso tutorial detalha a opção Caddy (mais simples: 1 linha de configuração trata do HTTPS automático).

Como fazer backups fiáveis do Vaultwarden?

O Vaultwarden guarda os seus dados em SQLite (predefinido) ou PostgreSQL/MySQL (opção). Backup mínimo: copiar regularmente o ficheiro db.sqlite3 para um armazenamento externo. Solução avançada: usar litestream (replicação contínua de SQLite para S3). A nossa recomendação: um cronjob de hora a hora que comprime a pasta data e a envia cifrada para o Backblaze B2.

Vaultwarden Self-Host ou Bitwarden Cloud oficial?

**Vaultwarden self-host**: zero custos recorrentes se o servidor já estiver disponível, controlo total dos dados, mas és responsável por uptime/backups/segurança. **Bitwarden hosted oficial**: 10 $/ano por Premium, dados cifrados zero-knowledge, uma equipa profissional trata de infra/backups/atualizações. Recomendação: self-host se fores um profissional sysadmin/devops. Bitwarden hosted em todos os outros casos.