- Implementação leve em Rust, totalmente compatível com os clientes oficiais do Bitwarden.
- Implantação simplificada usando contêineres Docker para controle total da privacidade.
- Requisitos mínimos de hardware ideais para servidores modestos ou Raspberry Pi.
O Vaultwarden permite hospedar um gerenciador de senhas compatível com clientes Bitwarden em seu próprio servidor. Dessa forma, você pode decidir onde as informações são armazenadas, quem pode acessar o serviço e como os backups são realizados.
É importante esclarecer desde o início que Vaultwarden não é o servidor oficial de Bitwarden.Trata-se de uma implementação independente, desenvolvida pela comunidade e escrita em Rust, que replica grande parte da API do Bitwarden. Por isso, pode ser usada com os aplicativos móveis, programas para desktop e extensões oficiais do Bitwarden.
Hospedar o serviço por conta própria oferece mais controle, mas Isso não garante automaticamente maior segurança.A partir desse momento, você será responsável por instalar atualizações, proteger o acesso, revisar registros, manter o HTTPS e garantir que os backups possam ser restaurados.
O que você precisa para instalar o Vaultwarden com o Docker

Antes de começar, você precisará de um sistema compatível com Docker que permaneça ligado durante a sincronização de senhas. Pode ser um servidor Linux, um NAS, um mini PC ou um Raspberry Pi com arquitetura suportada pela imagem.
Você também precisará de:
- Docker Engine Instalado e funcionando.
- O complemento atual de Docker Compose.
- Uma pasta onde os dados podem ser armazenados permanentemente.
- Acesso a um terminal com permissões para gerenciar o Docker.
- Um método de acesso seguro caso você vá usar o serviço em outros dispositivos.
Não existe um requisito universal de memória ou armazenamento para todas as instalações. O consumo depende do número de usuários, anexos, tamanho do armazenamento e outros serviços em execução no mesmo computador. Para uso doméstico, geralmente é um aplicativo leve, mas você deve reservar espaço suficiente para os dados e seus backups.
Verifique a instalação usando:
docker --version
docker compose version
Se ambos os comandos mostrarem uma versão, você pode continuar.
Como instalar o Vaultwarden com o Docker Compose
Crie uma pasta específica e insira os dados:
mkdir vaultwarden
cd vaultwarden
Dentro da pasta, crie um arquivo chamado compose.yml Com esta configuração inicial:
services:
vaultwarden:
image: vaultwarden/server:latest
container_name: vaultwarden
restart: unless-stopped
environment:
SIGNUPS_ALLOWED: "true"
volumes:
- ./vw-data:/data
ports:
- "127.0.0.1:8080:80"
A assembleia ./vw-data:/data É essencial. A pasta /data Contém o banco de dados, anexos, configurações e chaves usadas pelo servidor. Se você excluir o contêiner sem preservar esta pasta, perderá as informações armazenadas.
O endereço 127.0.0.1 Esta instalação inicial responde apenas no próprio servidor. É uma configuração adequada para testar o Vaultwarden sem ainda expor a porta à rede.
Inicie o contêiner:
docker compose up -d
Verifique o status:
docker compose ps
docker compose logs --tail=100 vaultwarden
No mesmo dispositivo, você pode abrir:
http://localhost:8080
Acesso via localhost Isso é usado para concluir a configuração inicial. Para se conectar de outro computador, aplicativo móvel ou ramal, você precisará configurar um endereço seguro usando HTTPS.
Como criar sua primeira conta e encerrar o cadastro
Abra a interface web, crie sua primeira conta e verifique se consegue iniciar sessão. Utilize um Senha mestra longa, única e fácil de lembrarpois protege o acesso a todo o armazém.
Após criar as contas necessárias, edite compose.yml e mudanças:
SIGNUPS_ALLOWED: "true"
por:
SIGNUPS_ALLOWED: "false"
Aplique a alteração recriando o contêiner:
docker compose up -d
Por padrão, o Vaultwarden permite que usuários anônimos criem contas. Manter o registro aberto desnecessariamente facilita que terceiros ocupem espaço ou usem seu servidor sem permissão.
Se você habilitar o painel de administração posteriormente, poderá enviar convites mesmo com o cadastro público desativado.
Por que o Vaultwarden precisa de HTTPS?
A loja virtual utiliza a API Web Crypto do navegador. Esses recursos criptográficos geralmente estão disponíveis apenas em contextos seguros, como HTTPS ou localhost.
Por essa razão, abrir http://192.168.1.50:8080 A partir de outro computador, erros podem ser exibidos mesmo que o contêiner esteja em execução. Publicar a porta na rede não substitui a configuração HTTPS.
Existem três maneiras comuns de usar o Vaultwarden:
- Somente servidor: acesso via
localhostÚtil para testes. - Em uma rede privada ou VPN: Acesso restrito, mas mantendo um certificado HTTPS válido.
- Da internet: Domínio, proxy reverso, certificado válido e firewall configurado corretamente.
Você não precisa tornar o Vaultwarden público para usá-lo fora de casa. Uma VPN pode restringir o acesso aos seus dispositivos autorizados, mas o endereço usado pelos clientes ainda precisa ter um certificado reconhecido por eles.
Como configurar HTTPS com o Caddy
O Caddy é uma das opções mais simples, pois pode solicitar e renovar certificados automaticamente por meio do ACME. Para usar um certificado público, o domínio deve apontar para o seu servidor e as portas necessárias devem estar acessíveis.
Este arquivo pode ser usado em uma configuração conjunta de Vaultwarden e Caddy. compose.yml:
services:
vaultwarden:
image: vaultwarden/server:latest
container_name: vaultwarden
restart: unless-stopped
environment:
DOMAIN: "https://vault.example.com"
SIGNUPS_ALLOWED: "false"
volumes:
- ./vw-data:/data
caddy:
image: caddy:2
container_name: vaultwarden-caddy
restart: unless-stopped
depends_on:
- vaultwarden
ports:
- "80:80"
- "443:443"
- "443:443/udp"
volumes:
- ./Caddyfile:/etc/caddy/Caddyfile:ro
- ./caddy-data:/data
- ./caddy-config:/config
Substitui vault.example.com para o seu domínio real. Em seguida, crie um arquivo chamado Caddyfile:
vault.example.com {
reverse_proxy vaultwarden:80 {
header_up X-Real-IP {remote_host}
}
}
Ativar serviços:
docker compose up -d
O Caddy enviará solicitações ao contêiner pela rede interna criada pelo Compose. A configuração atual também pode lidar com notificações WebSocket pelo mesmo destino, portanto, não há necessidade de publicar outra porta do Vaultwarden.
A variável DOMAIN deve conter o URL externo exato, incluindo https://Um endereço incorreto pode causar problemas com anexos, links, autenticação ou clientes.
Como conectar os aplicativos oficiais do Bitwarden
Na tela de login da extensão, no aplicativo móvel ou no programa para computador, abra o seletor de servidor e escolha a opção. auto-hospedado.
Insira o endereço completo:
https://vault.example.com
Salve as configurações antes de fazer login. Cada cliente deve estar conectado ao mesmo servidor para que as alterações sejam sincronizadas corretamente.
Se você usar um certificado emitido por uma autoridade privada, precisará instalar e confiar nessa autoridade corretamente em todos os dispositivos. Para evitar problemas de compatibilidade, é preferível usar um certificado público válido ou uma solução privada cuja cadeia de confiança você possa controlar adequadamente.
Assim que o cliente estiver conectado, você poderá Importe senhas do Chrome para o Vaultwarden e verifique se elas aparecem em todos os seus dispositivos.
Como proteger o painel de administração
A Vaultwarden oferece um painel opcional em /adminA partir daí, você pode revisar usuários, organizações, diagnósticos e determinadas opções do servidor.
Se você não precisa do painel, a coisa mais segura a fazer é deixe desativadoPara habilitá-lo, você precisa configurar. ADMIN_TOKENEm vez de armazenar uma senha em texto simples, ele gera um hash Argon2id:
docker run --rm -it vaultwarden/server /vaultwarden hash
O comando solicitará a senha duas vezes e retornará uma string que começa com $argon2id$.
Uma maneira prática de evitar problemas com o símbolo de dólar é salvá-lo em um arquivo. .env localizado ao lado de compose.yml:
VAULTWARDEN_ADMIN_TOKEN='$argon2id$v=19$m=...'
Em seguida, adicione ao serviço:
environment:
ADMIN_TOKEN: "${VAULTWARDEN_ADMIN_TOKEN}"
Se você escrever o hash diretamente dentro compose.yml, você deve dobrar cada símbolo de dólar como $$ para impedir que o Docker Compose tente interpretá-lo como uma variável.
Verifique a configuração processada usando:
docker compose config
O painel deve ser acessado somente via HTTPS. Se possível, restrinja o acesso à rede local, a uma VPN ou a endereços IP específicos.
Observe que, após salvar as opções de /adminVaultwarden cria config.jsonSeus valores têm precedência sobre variáveis de ambiente equivalentes. Essa precedência explica muitos casos em que editar o Compose parece não produzir nenhuma alteração.
Medidas essenciais para proteger o Guardião do Cofre
A segurança não termina com a ativação do HTTPS. No mínimo, aplique estas medidas:
- Desative o registro aberto usando
SIGNUPS_ALLOWED=false. - Use uma senha mestra única e forte.
- Ativo autenticação em duas etapas para todas as contas.
- Guarde o código de recuperação de autenticação em outro local seguro.
- Atualize regularmente a imagem e o sistema host.
- Não monte pastas desnecessárias nem o socket do Docker dentro do contêiner.
- Limite as portas que são realmente necessárias usando o firewall.
- Não exponha publicamente o banco de dados ou a pasta.
vw-data.
O Fail2ban pode bloquear endereços que acumulam tentativas de login falhas, mas deve ser configurado cuidadosamente quando um proxy reverso estiver presente. O Caddy ou o Nginx devem transmitir o endereço IP real; caso contrário, o Fail2ban poderá bloquear o próprio endereço do proxy.
Você também pode desativar a exibição de dicas de senha. Essas dicas podem facilitar ataques de adivinhação quando o servidor está acessível publicamente.
Para saber mais sobre essas práticas, você pode consultar como Use gerenciadores de senhas com segurança.
Como configurar notificações por e-mail
A configuração SMTP permite o envio de convites, verificações e notificações. Você precisará especificar o servidor, o remetente, a porta, o método de segurança e as credenciais fornecidas pelo seu serviço de e-mail.
Não confunda e-mails SMTP com um backup do cofre. Tampouco confie neles como único meio de recuperação de conta. Se você esquecer sua senha mestra e não tiver outro método de recuperação configurado, poderá perder o acesso aos seus dados criptografados.
Após salvar as configurações, envie uma mensagem de teste e verifique os registros caso ela não chegue. Verifique também suas pastas de spam e as restrições do seu provedor SMTP.
Como fazer um backup completo do Vaultwarden
O banco de dados SQLite armazena usuários, itens, dispositivos e organizações, mas Não contém todos os arquivos.Os anexos e determinados envios são armazenados em diretórios separados.
Uma cópia completa deve incluir:
db.sqlite3ou uma cópia idêntica do banco de dados.- A pasta
attachments. - A pasta
sends, se você quiser manter esses arquivos. - O arquivo
config.json, se você usar o painel. - Os arquivos
rsa_key*. - Os arquivos Compose, o Caddy e suas variáveis.
Para um backup simples e consistente, você pode interromper temporariamente o Vaultwarden e arquivar a pasta:
docker compose stop vaultwarden
tar -czf vaultwarden-backup-$(date +%F).tar.gz vw-data compose.yml Caddyfile .env
docker compose start vaultwarden
O arquivo pode conter o token de administração e as credenciais SMTP. Criptografe antes de copiar. para outro computador ou armazenamento remoto.
Se você não quiser interromper o serviço, o Vaultwarden inclui um comando que utiliza o mecanismo de cópia do SQLite:
docker exec vaultwarden /vaultwarden backup
Este comando protege o banco de dados, mas você ainda deve fazer backup de anexos, arquivos de configuração e chaves. Automatize os backups, mantenha pelo menos um backup fora do servidor e teste periodicamente a restauração.
Como atualizar o Vaultwarden com o Docker
Crie uma cópia verificada antes de atualizar. Em seguida, execute:
docker compose pull
docker compose up -d
Confira o status e as mensagens mais recentes:
docker compose ps
docker compose logs --tail=100 vaultwarden
O Docker fará o download da imagem e recriará o contêiner, preservando-o. vw-dataNão utilize comandos de limpeza global sem antes verificar quais contêineres, imagens e redes serão removidos.
Em instalações onde a estabilidade é crítica, você pode fixar uma versão específica da imagem em vez de usar sempre a versão padrão. latestDessa forma, você pode consultar as notas de lançamento e decidir quando aplicar cada atualização.
Erros comuns ao instalar o Vaultwarden com o Docker
A interface funciona no localhost, mas não em outro computador.
O porto é limitado a 127.0.0.1 Ou o navegador rejeita funções criptográficas ao acessar via HTTP. Configure um endereço HTTPS antes de usar o serviço em outros dispositivos.
O cliente oficial não consegue se conectar ao servidor.
Selecione o ambiente auto-hospedado e insira o endereço exato com https://Verifique o certificado, o DNS, o proxy e as variáveis. DOMAIN.
O contêiner inicia, mas os dados desaparecem quando ele é recriado.
O controle de volume não está instalado corretamente. Verifique se ele está instalado corretamente. ./vw-data:/data Aparece nas configurações e confirma que você está executando o Compose a partir da pasta correta.
Não consigo criar outra conta.
Si SIGNUPS_ALLOWED está em falseO comportamento está correto. Envie um convite pelo painel ou habilite temporariamente o registro somente enquanto você cria a conta.
O hash ADMIN_TOKEN não está funcionando.
Verifique a interpolação dos sinais. $Use um arquivo .env Use aspas simples ou aspas duplas se inserir a string diretamente no Compose.
As variáveis ambientais parecem estar sendo ignoradas.
Verifique se existe. vw-data/config.jsonAs opções salvas no painel podem substituir as variáveis definidas em compose.yml.
Os certificados funcionam no navegador, mas não no dispositivo móvel.
O dispositivo pode não confiar em toda a cadeia de certificados. Use uma autoridade reconhecida ou instale corretamente sua autoridade privada e seus certificados.
Os anexos falham
Verifique isso DOMAIN Verifique se o endereço externo corresponde e certifique-se de que o proxy permite o tamanho de requisição necessário. Verifique também o espaço disponível e as permissões de vw-data.
O Vaultwarden não pode escrever dentro de dados vw.
A pasta do host possui permissões incompatíveis. Verifique o proprietário e as permissões com base no erro exibido nos logs. Não utilize chmod 777 como solução permanente.
Fail2ban bloqueia um endereço incorreto.
O proxy não está transmitindo o endereço IP real, ou o Fail2ban está lendo o campo errado. Configure-o corretamente. X-Real-IP ou o cabeçalho correspondente ao seu proxy.
A cópia restaurada não contém os anexos.
Apenas o SQLite foi copiado. Por favor, restaure também as pastas. attachments y sends, além da configuração e das chaves RSA.
O Vaultwarden permite que você use organizações e coleções para compartilhar senhas familiares Utilize clientes compatíveis. Antes de adicionar mais usuários, verifique se o HTTPS, a autenticação em duas etapas e os backups estão funcionando corretamente.
O resultado pode ser um gerenciador de senhas rápido, privado e adaptável, mas sua segurança depende da manutenção. O controle sobre o servidor só é vantajoso quando acompanhado de atualizações, acesso restrito e uma estratégia de recuperação comprovada.
Sou um entusiasta da tecnologia que transformou seus interesses “geek” em profissão. Passei mais de 10 anos da minha vida usando tecnologia de ponta e mexendo em todos os tipos de programas por pura curiosidade. Agora me especializei em informática e videogames. Isto porque há mais de 5 anos escrevo para diversos sites sobre tecnologia e videojogos, criando artigos que procuram dar-lhe a informação que necessita numa linguagem compreensível para todos.
Se você tiver alguma dúvida, meu conhecimento vai desde tudo relacionado ao sistema operacional Windows até Android para celulares. E meu compromisso é com você, estou sempre disposto a dedicar alguns minutos e te ajudar a resolver qualquer dúvida que você possa ter nesse mundo da internet.


