Vaultwarden na VPS: gerenciador de senhas próprio
Aprenda a instalar o Vaultwarden no seu servidor com Docker, ligar o HTTPS, fechar o cadastro, proteger o painel de administração e manter backup e atualização.
Por Redação Eleven Host · @robson.direitodigital · 1 de novembro de 2026 · 10 min de leitura

Capa da Redação Eleven Host para o guia: Vaultwarden na VPS: gerenciador de senhas próprio Arte: Eleven Host
O Vaultwarden na VPS é um servidor de senhas que implementa a API de cliente do Bitwarden, sem associação com a Bitwarden, Inc. Você o instala no seu servidor com Docker, e o cofre web exige HTTPS para funcionar.
O que é o Vaultwarden e o que ele não é
Segundo o README do projeto no GitHub, o Vaultwarden é uma implementação alternativa do servidor da API de cliente do Bitwarden, escrita em Rust. A licença exibida no repositório é a AGPL-3.0.
O README também diz que o projeto não tem associação com o Bitwarden nem com a Bitwarden, Inc. Por isso, o pedido do projeto é que bugs e sugestões vão direto à equipe do Vaultwarden, e não aos canais oficiais da Bitwarden.
O Vaultwarden não é o Bitwarden oficial. É um projeto independente, que você hospeda e mantém por conta própria.
O Vaultwarden serve para quem quer manter as próprias senhas num servidor sob seu controle. A troca vem junto: quem hospeda o cofre cuida de HTTPS, backup e atualização. Se você ainda está conhecendo servidores, leia antes o guia de iniciantes sobre servidor VPS.
Antes de começar
Você precisa de três coisas prontas antes do primeiro comando:
- Uma VPS com Docker instalado. Os comandos abaixo usam o
docker rundo README. - Um domínio ou subdomínio. O exemplo do README usa
vw.domain.tld; troque pelo seu endereço, apontado para o IP da VPS. - HTTPS. O README informa que o cofre web exige HTTPS e um contexto seguro para a Web Crypto API. Sem HTTPS, o cofre web não funciona.
O próprio README recomenda colocar um proxy reverso na frente do Vaultwarden. É ele que recebe o acesso pela internet e cuida do certificado. Mais abaixo, a seção sobre HTTPS mostra esse caminho.
Instalar o Vaultwarden com Docker
O README traz o comando abaixo, com o volume de dados em /vw-data/. Antes de rodar, troque o endereço de DOMAIN pelo seu:
docker run --detach --name vaultwarden \
--env DOMAIN="https://vw.domain.tld" \
--volume /vw-data/:/data/ \
--restart unless-stopped \
--publish 127.0.0.1:8000:80 \
vaultwarden/server:latest
Cada parte tem uma função:
--name vaultwardendá nome ao contêiner, e é com esse nome que você o para e o atualiza depois.--env DOMAINinforma o endereço público do cofre, com https.--volume /vw-data/:/data/guarda os dados do cofre fora do contêiner. É esse volume que preserva as suas senhas quando você atualiza.--restart unless-stoppedreliga o contêiner quando o Docker reinicia, a menos que você o tenha parado.--publish 127.0.0.1:8000:80publica a porta 8000 só no próprio servidor. O acesso de fora passa pelo proxy, e não direto pela porta.
HTTPS com um proxy reverso
Como a porta 8000 só escuta no próprio servidor, o proxy reverso precisa estar no mesmo servidor, recebendo o tráfego do seu domínio e encaminhando para 127.0.0.1:8000. O guia Caddy na VPS: servidor web com HTTPS automático mostra um servidor web que cuida do certificado para você.
Para o proxy emitir o certificado, o domínio precisa apontar para o IP da VPS antes. Quando o endereço https://vw.domain.tld (com o seu domínio no lugar) abrir sem aviso de certificado, o cofre web já deve abrir normalmente.
Para conferir o que está escutando no servidor, o guia Portas abertas no Linux: como ver com ss e lsof na VPS ajuda. Na lista, confira se a porta 8000 aparece só no endereço 127.0.0.1.
Está escolhendo uma VPS? VPS a partir de R$ 17,00/mês no Plano Bronze; confira na loja o que cada plano inclui. Ver os planos de VPS
Criar a sua conta e fechar o cadastro
A wiki do projeto avisa que, por padrão, quem consegue acessar a sua instância pode registrar uma conta nova. Se o seu cofre está na internet, isso significa que outra pessoa pode criar uma conta no seu servidor.
O caminho seguro é este:
- Abra o endereço do cofre e crie a sua conta.
- Pare e remova o contêiner com
docker stop vaultwardenedocker rm vaultwarden. O volume/vw-data/fica no servidor, e as suas senhas junto. - Rode o comando da instalação de novo, acrescentando a variável que fecha o cadastro:
-e SIGNUPS_ALLOWED=false.
Com o cadastro fechado, a wiki informa que o dono ou administrador de uma organização ainda pode convidar pessoas, e o administrador convida pelo painel.
Outras opções de cadastro
SIGNUPS_DOMAINS_WHITELIST=example.com,example.net,example.orglimita o cadastro a e-mails de certos domínios. Se ela estiver definida, a wiki diz que o valor deSIGNUPS_ALLOWEDé ignorado.SIGNUPS_VERIFY=trueexige que a pessoa confirme o e-mail.
Painel de administração e ADMIN_TOKEN
O Vaultwarden tem um painel de administração, que abre no caminho /admin do seu endereço. Segundo a wiki, para habilitá-lo você precisa configurar um token de autenticação, na variável ADMIN_TOKEN. O painel é opcional: se você não precisa dele, não configure o token.
Se for usar, gere um token longo e aleatório. A wiki dá este exemplo:
openssl rand -base64 32
Em vez de guardar o token em texto puro, a wiki recomenda guardar um hash Argon2. O comando vaultwarden hash gera esse texto. Com o nome de contêiner usado acima, o comando fica assim:
docker exec -it vaultwarden /vaultwarden hash
A wiki também menciona a opção --preset owasp, que usa o mínimo da OWASP. O objetivo do hash, nas palavras da wiki, é garantir que o token fique guardado em formato com hash, de modo que não possa simplesmente ser lido. Depois, coloque o texto gerado em ADMIN_TOKEN ao recriar o contêiner.
Se o painel reclamar do token
- O aviso
You are using a plain text ADMIN_TOKEN which is insecure.aparece quando o token está em texto puro. - A wiki explica que o arquivo
config.json, salvo pelo painel, tem precedência sobre a variável de ambiente. Um valor antigo ali pode mascarar o que você configurou. - O mesmo aviso também pode vir de um hash malformado, com aspas a mais ou com o símbolo
$duplicado. - A wiki descreve a opção
DISABLE_ADMIN_TOKEN, mas avisa que ela dá acesso irrestrito ao painel. Não a use se não tiver certeza do que faz.
A wiki recomenda muito ativar o HTTPS antes de habilitar o painel, para evitar ataques do tipo homem no meio (MITM). Por isso, deixe o proxy funcionando antes de definir o token.
Backup do cofre
A wiki lista o que existe na pasta de dados do Vaultwarden e o que copiar:
db.sqlite3: obrigatório.attachments/: obrigatório.config.json: recomendado. Tem segredos em texto, então proteja a cópia.rsa_key*: recomendado. Sem esses arquivos, os usuários são deslogados.sends/eicon_cache/: opcionais.
O cuidado principal está no banco. A wiki alerta que copiar o arquivo do banco com o serviço ligado pode corrompê-lo, e desaconselha o snapshot da VM ou do sistema de arquivos. Use um destes comandos, que a wiki indica. O preferido usa a Online Backup API do SQLite (troque os caminhos pelos seus; aqui a pasta data/ é a que o volume /vw-data/ expõe):
sqlite3 data/db.sqlite3 ".backup '/path/to/backups/db-$(date '+%Y%m%d-%H%M').sqlite3'"
A alternativa é o VACUUM INTO:
sqlite3 data/db.sqlite3 "VACUUM INTO '/path/to/backups/db-$(date '+%Y%m%d-%H%M').sqlite3'"
A partir da versão 1.32.1, também existe um comando embutido:
docker exec -it vaultwarden /vaultwarden backup
Um detalhe prático da wiki: a imagem Docker não traz o sqlite3 nem o cron. Para agendar o backup, agende no servidor ou use o comando embutido. A wiki sugere ainda criptografar o backup junto com o config.json e o rsa_key.
Para restaurar, a wiki manda parar o Vaultwarden, trocar os arquivos da pasta de dados e apagar o db.sqlite3-wal antes de restaurar um arquivo gerado por .backup ou VACUUM INTO. Teste a restauração de tempos em tempos, como a wiki orienta, porque um backup não testado é só uma suposição.
Atualizar o Vaultwarden
A wiki de atualização resume em uma frase: atualizar é direto, desde que você preserve o volume montado. O roteiro é baixar a imagem nova, parar e remover o contêiner e criar de novo:
docker pull vaultwarden/server:latest
docker stop vaultwarden
docker rm vaultwarden
Em seguida, rode o mesmo comando da instalação, o do README, com o DOMAIN, o volume em /vw-data/ e a porta 127.0.0.1:8000:80, mais as variáveis que você escolheu, como SIGNUPS_ALLOWED=false.
A wiki mostra um comando de exemplo com -p 80:80, que deixaria a porta 80 aberta na internet, e sem a variável DOMAIN. Por isso, recomendamos repetir o comando do README. A wiki não manda fazer backup antes de atualizar, mas recomendamos fazer um antes, com um dos comandos da seção de backup. Com Docker Compose, a atualização usa docker compose pull e docker compose up -d.
Cuidados com o servidor que guarda as senhas
A segurança do cofre também depende do servidor em volta dele. Se a sua VPS aceita conexão por SSH, o guia Mudar a porta do SSH: passo a passo na VPS mostra um cuidado a mais. Confira também, de tempos em tempos, quais portas estão abertas.
Checklist do cofre
- O domínio aponta para a VPS e o endereço abre por HTTPS, sem aviso de certificado.
- O contêiner foi criado com
--publish 127.0.0.1:8000:80e o volume/vw-data/:/data/. - Criei a minha conta e recriei o contêiner com
-e SIGNUPS_ALLOWED=false. - Se uso o painel
/admin, oADMIN_TOKENé um hash gerado comvaultwarden hash, e o HTTPS já estava ativo. - Faço backup do banco com
.backupou com o comando embutido, sem copiar o arquivo com o serviço ligado. - Guardo
config.jsonersa_key*com proteção, porque têm segredos. - Já testei uma restauração.
- Atualizo repetindo o comando do README, com o volume preservado.
Vale ter o seu próprio servidor de senhas
Hospedar o próprio cofre dá controle, mas também dá trabalho. As atualizações, o backup e o HTTPS passam a ser responsabilidade sua, e problemas do Vaultwarden vão para a equipe do projeto.
Quer conhecer a VPS da Eleven Host? VPS a partir de R$ 17,00/mês no Plano Bronze; confira na loja o que cada plano inclui. Conhecer a VPS
Perguntas frequentes
O Vaultwarden é o Bitwarden oficial?
Não. O README diz que o projeto não tem associação com o Bitwarden nem com a Bitwarden, Inc. Ele é uma implementação alternativa da API de cliente do Bitwarden, escrita em Rust.
O Vaultwarden funciona sem HTTPS?
O cofre web não. O README informa que ele exige HTTPS e um contexto seguro para a Web Crypto API. Por isso, configure o domínio e o proxy com certificado antes de usar.
Como impedir que outras pessoas criem conta no meu servidor?
Crie a sua conta e recrie o contêiner com -e SIGNUPS_ALLOWED=false. Por padrão, quem acessa a instância pode se cadastrar.
Como fazer backup do Vaultwarden?
Use o sqlite3 com .backup ou o comando docker exec -it vaultwarden /vaultwarden backup, disponível a partir da versão 1.32.1. Copiar o arquivo do banco com o serviço ligado pode corrompê-lo.
Como atualizar o Vaultwarden?
Baixe a imagem com docker pull, pare e remova o contêiner e rode de novo o comando do README, preservando o volume /vw-data/.