Vaultwarden: instalação do seu próprio gerenciador de senhas em um VPS
O Vaultwarden permite armazenar senhas em seu próprio servidor e sincronizá-las entre computador, telefone e navegador. Para isso, são usados os aplicativos e as extensões oficiais do Bitwarden, nos quais você informa o endereço do seu próprio servidor.
A seguir, veremos de qual VPS o Vaultwarden precisa, como executá-lo no Ubuntu com Docker Compose, desativar o cadastro aberto, habilitar HTTPS e configurar backups.
Vaultwarden em cinco etapas
O plano mínimo de implantação:
- Criar um VPS com Ubuntu e apontar um subdomínio para ele, por exemplo,
vault.example.com. - Instalar Docker e Docker Compose.
- Executar o Vaultwarden junto com o Caddy para obter HTTPS automaticamente.
- Criar a primeira conta e desativar o cadastro aberto.
- Habilitar autenticação de dois fatores, atualizações e backups.
Para um cofre pessoal ou uma família pequena, o banco de dados SQLite integrado é suficiente. Um servidor PostgreSQL separado normalmente não é necessário.
O que é o Vaultwarden
O Vaultwarden é uma implementação não oficial do servidor da API do Bitwarden, escrita em Rust e projetada para implantação auto-hospedada. Ele é compatível com os clientes oficiais do Bitwarden: interface web, aplicativos móveis e para desktop, extensões de navegador e CLI.
Os dados do cofre são criptografados no dispositivo do usuário antes de serem enviados ao servidor. O VPS sincroniza o banco de dados criptografado, mas não conhece a senha mestra e não pode recuperá-la em caso de perda.
O Vaultwarden não é um produto oficial do Bitwarden. O proprietário é responsável pelas atualizações, disponibilidade, HTTPS, backups e segurança do VPS.
Vaultwarden e Bitwarden: qual é a diferença
| Parâmetro | Bitwarden Cloud | Vaultwarden |
|---|---|---|
| Servidor | Infraestrutura do Bitwarden | Seu VPS ou servidor doméstico |
| Aplicativos | Clientes do Bitwarden | Os mesmos clientes no modo Self-hosted |
| Manutenção | Realizada pelo provedor | Realizada pelo proprietário |
| Controle sobre backups | Limitado pelo serviço | Total |
| Implantação | Cadastro de uma conta | Domínio, Docker e configuração do VPS |
O Vaultwarden é adequado para quem deseja controlar a parte do servidor e está disposto a atualizar o Linux e verificar os backups. Um serviço em nuvem é mais prático se você não quiser lidar com administração. A auto-hospedagem não torna o sistema seguro automaticamente: ela transfere a responsabilidade para o proprietário.
Requisitos de servidor do Vaultwarden
Para uso pessoal, uma configuração inicial razoável é:
- 1 vCPU;
- 1–2 GB de RAM;
- 10–20 GB de SSD ou NVMe;
- Ubuntu 24.04 LTS;
- um IP público e um domínio;
- portas 80 e 443 abertas.
Essa é uma margem prática para Ubuntu, Docker, Caddy e atualizações, e não um requisito mínimo rígido do projeto. Para dezenas de usuários, muitos anexos ou vários contêineres, é melhor escolher pelo menos 2 GB de RAM.
Como instalar o Vaultwarden em um VPS
Este exemplo usa Ubuntu 24.04 e o subdomínio vault.example.com. Substitua-o pelo seu próprio endereço em todos os arquivos.
1. Configure o DNS e prepare o Ubuntu
Crie um registro DNS A apontando para o endereço IPv4 do VPS. Em seguida, conecte-se por SSH:
ssh root@SERVER_IP
apt update && apt upgrade -y
ufw allow OpenSSH
ufw allow 80/tcp
ufw allow 443/tcp
ufw enableNão feche a sessão SSH atual até confirmar que uma nova conexão funciona.
2. Instale Docker e Docker Compose
Adicione o repositório oficial do Docker:
apt install -y ca-certificates curl
install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg \
-o /etc/apt/keyrings/docker.asc
chmod a+r /etc/apt/keyrings/docker.asc
tee /etc/apt/sources.list.d/docker.sources > /dev/null <<EOF
Types: deb
URIs: https://download.docker.com/linux/ubuntu
Suites: $(. /etc/os-release && echo "${UBUNTU_CODENAME:-$VERSION_CODENAME}")
Components: stable
Architectures: $(dpkg --print-architecture)
Signed-By: /etc/apt/keyrings/docker.asc
EOF
apt update
apt install -y docker-ce docker-ce-cli containerd.io \
docker-buildx-plugin docker-compose-plugin
docker compose version3. Crie a configuração
mkdir -p /opt/vaultwarden
cd /opt/vaultwardenCrie o compose.yaml:
services:
vaultwarden:
image: vaultwarden/server:latest
container_name: vaultwarden
restart: unless-stopped
environment:
DOMAIN: "https://vault.example.com"
SIGNUPS_ALLOWED: "true"
volumes:
- ./vw-data:/data
caddy:
image: caddy:2-alpine
container_name: vaultwarden-caddy
restart: unless-stopped
depends_on:
- vaultwarden
ports:
- "80:80"
- "443:443"
volumes:
- ./Caddyfile:/etc/caddy/Caddyfile:ro
- ./caddy-data:/data
- ./caddy-config:/configCrie o arquivo Caddyfile:
vault.example.com {
reverse_proxy vaultwarden:80
}Somente o Caddy fica exposto externamente. O contêiner do Vaultwarden pode ser acessado dentro da rede Docker, e os dados são armazenados em /opt/vaultwarden/vw-data. Na configuração atual, não é necessária uma porta separada para WebSocket.
4. Inicie o Vaultwarden
docker compose up -d
docker compose ps
docker compose logs --tail=100 caddyAbra https://vault.example.com. O Caddy obterá automaticamente um certificado TLS se o DNS já apontar para o VPS e as portas 80 e 443 estiverem acessíveis. Se o site não abrir, verifique o DNS, o firewall e se existe outro servidor web usando essas portas.
5. Crie uma conta e feche os cadastros
Cadastre a primeira conta. Use uma senha mestra longa e exclusiva e mantenha uma cópia de emergência fora do Vaultwarden: o administrador do servidor não poderá redefinir nem recuperar a senha mestra.
Após o cadastro, altere o seguinte em compose.yaml:
SIGNUPS_ALLOWED: "false"Aplique a configuração:
docker compose up -dAgora outras pessoas não poderão criar contas. Para adicionar um novo usuário, você pode habilitar temporariamente o cadastro ou configurar convites.
Como conectar o aplicativo Bitwarden
Não é necessário instalar um cliente separado para o Vaultwarden. Na tela de login do aplicativo ou da extensão do Bitwarden, selecione Self-hosted e informe:
https://vault.example.comUse esse endereço no computador, no telefone e no navegador. Para migrar, importe um arquivo exportado do gerenciador de senhas anterior. Exclua qualquer arquivo CSV ou JSON não criptografado imediatamente após a transferência e não o envie por e-mail nem por links públicos.
Configuração segura do Vaultwarden
Depois da inicialização, tome algumas medidas:
- habilite TOTP ou WebAuthn e guarde os códigos de recuperação separadamente;
- mantenha
SIGNUPS_ALLOWEDdesativado; - use chaves SSH e atualize o Ubuntu regularmente;
- não exponha a porta interna do contêiner do Vaultwarden;
- não execute contêineres duvidosos no mesmo VPS;
- verifique se os backups podem ser restaurados.
O painel /admin normalmente não é necessário para um cofre pessoal. Se você o habilitar, use um token longo no formato de hash Argon2 e, quando possível, restrinja o acesso por endereço IP ou VPN. Não é recomendável armazenar um ADMIN_TOKEN em texto simples.
Crie um backup antes de atualizar e, em seguida, execute:
cd /opt/vaultwarden
docker compose pull
docker compose up -dO servidor deve ser atualizado regularmente: os clientes do Bitwarden são lançados de forma independente, por isso uma versão muito antiga do Vaultwarden pode perder a compatibilidade com eles.
Backup do Vaultwarden
O banco de dados SQLite principal fica em vw-data/db.sqlite3, enquanto os anexos são armazenados como arquivos separados. Não copie um banco de dados em execução com o comando comum cp: uma gravação nesse momento pode deixar a cópia inconsistente.
Crie um snapshot seguro com o comando integrado:
docker exec vaultwarden /vaultwarden backupUm arquivo separado db_.sqlite3 aparecerá no diretório de dados. Junto com ele, salve attachments, sends, o arquivo config.json, se tiver sido criado, e os arquivos rsa_key.
Um backup no mesmo VPS não protege contra a exclusão do servidor nem contra falha do disco. Envie automaticamente as cópias para outro dispositivo ou para um armazenamento de objetos separado, de preferência com criptografia adicional. Faça periodicamente um teste de restauração.
Qual VPS escolher para o Vaultwarden
Um VPS Linux básico com 2 GB de RAM é suficiente para um cofre pessoal ou familiar. Essa capacidade deixa uma margem para Ubuntu, Docker, Caddy, atualizações e backups automáticos.
Você pode executar o Vaultwarden em um VPS inicial da tropic.host e aumentar os recursos mais tarde, caso adicione outros serviços auto-hospedados ao servidor. Para um gerenciador de senhas, uma rede estável, um endereço público permanente e um disco confiável são mais importantes do que núcleos extras de CPU.
Um servidor doméstico também é adequado, mas será necessário garantir acesso externo, HTTPS, energia estável e recuperação após falhas. Um VPS costuma ser mais simples quando o cofre precisa funcionar a partir de qualquer rede.
Conclusão
O Vaultwarden é um gerenciador de senhas auto-hospedado conveniente para quem deseja usar os clientes do Bitwarden mantendo a parte do servidor em sua própria infraestrutura. Um VPS pequeno, um domínio, Docker Compose e Caddy são suficientes para começar.
A principal responsabilidade começa depois da instalação: é preciso desativar os cadastros, habilitar 2FA, atualizar os contêineres e manter backups testados fora do servidor.
FAQ
É possível instalar o Vaultwarden sem um domínio?
Tecnicamente, é possível usar um endereço local, mas o cofre web precisa de um contexto HTTPS seguro. Para acessar de diferentes dispositivos, é mais simples usar um domínio e um certificado TLS.
De quanta memória RAM o Vaultwarden precisa?
Para um ou alguns usuários, 1 GB de RAM normalmente é suficiente. Um VPS com 2 GB oferece uma margem mais confortável para o sistema, Docker, Caddy e atualizações.
O Vaultwarden funciona com o aplicativo móvel do Bitwarden?
Sim. Na tela de login, selecione um servidor auto-hospedado e informe o endereço HTTPS completo da sua instância do Vaultwarden.
O que acontece se o VPS ficar temporariamente indisponível?
Os dados sincronizados anteriormente normalmente permanecem no cache local criptografado do cliente. No entanto, a sincronização, o login em um novo dispositivo e o recebimento de alterações não funcionarão até que o servidor seja restaurado.
É possível recuperar uma senha mestra esquecida por meio de /admin?
Não. O administrador pode gerenciar o servidor e as contas, mas não possui a chave de descriptografia do cofre do usuário. A senha mestra e os códigos de recuperação devem ser guardados separadamente.
