Alojar Vaultwarden num VPS gerido: as suas palavras-passe no seu servidor

Alojar Vaultwarden num VPS gerido é guardar as suas palavras-passe e as da sua equipa numa máquina sua, que as nossas equipas mantêm atualizada e supervisionam dia e noite. O Vaultwarden é um software livre sob licença AGPL-3.0. Este guia segue a sua documentação oficial: a instalação com o Docker Compose, o HTTPS, o encerramento das inscrições, o token de administração, o que protege o cofre, a base de dados, os e-mails, as cópias de segurança e as atualizações.

Simon Vasconcelos Lee Por Publicado a 8 de novembro de 2026Leitura: 15 minutos

Todos os guias

O essencial

  1. A licença AGPL-3.0 permite fazer correr o Vaultwarden livremente, numa empresa como em qualquer outro lado; se o modificar, propõe o código da sua versão a quem a utiliza.
  2. Instale-o com o Docker Compose: uma imagem, uma porta publicada em local e uma pasta de dados, atrás de um proxy inverso.
  3. O HTTPS é indispensável ao cofre web: sirva o Vaultwarden no seu próprio nome de domínio e indique esse nome em DOMAIN.
  4. Crie a sua conta e depois feche as inscrições com SIGNUPS_ALLOWED: por predefinição, qualquer pessoa que chegue à instância pode inscrever-se. Uma palavra-passe mestra sólida e a autenticação de dois fatores protegem então o cofre.
  5. Faça todos os dias uma cópia da base de dados e dos anexos, teste o restauro e atualize com docker compose pull.

O que faz o Vaultwarden

O Vaultwarden é um servidor de gestão de palavras-passe escrito em Rust, concebido para o autoalojamento. O seu wiki destina-o a particulares, famílias e organizações de dimensão humana. O cofre web vem incluído nas suas imagens Docker.

Implementa uma API compatível com os clientes oficiais do Bitwarden, no navegador, no computador e no telemóvel. O README esclarece que o projeto não está associado ao Bitwarden nem à Bitwarden, Inc., e pede que qualquer problema lhe seja comunicado diretamente, seja qual for o cliente utilizado, e não aos canais de assistência oficiais.

O wiki enumera também o que falta em relação ao servidor oficial, como o início de sessão por chave de acesso, as funções personalizadas e algumas políticas empresariais. Esclarece que as funcionalidades sobretudo úteis às grandes organizações não são uma prioridade do projeto: leia essa lista se delas precisar.

O que permite a licença AGPL-3.0

O Vaultwarden é publicado sob a GNU Affero General Public License, versão 3. O texto afirma uma permissão ilimitada de fazer correr o programa não modificado. Pode, portanto, utilizar a imagem publicada pelo projeto para a sua empresa e a sua equipa, sem licença para comprar.

O artigo 13 acrescenta uma condição própria da AGPL: se modificar o programa, a sua versão tem de oferecer a todos os que a utilizam à distância, pela rede, o meio de obter gratuitamente o seu código-fonte.

A instalação com o Docker Compose

O README recomenda as imagens de contentor. Num servidor com o Docker instalado, crie uma pasta e coloque nela este compose.yaml, tirado do README e do wiki:

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/
    ports:
      - 127.0.0.1:8000:80
Terminal
docker compose up -d

O seu nome de domínio aponta para o servidor com registos A e AAAA, e os visitantes chegam pelas portas 80 e 443. Enquanto o proxy inverso não estiver instalado, o cofre web fica inutilizável: passe diretamente à secção seguinte.

O projeto não quantifica nem a memória nem o processador; apresenta-se apenas como uma solução para os casos em que o serviço oficial, exigente em recursos, não convém. O tamanho depende do número de contas e do volume dos anexos. Num VPS gerido, descreva-nos a sua utilização e recomendamos-lhe o tamanho adequado.

HTTPS e WebSocket: o proxy inverso

O cofre web assenta na API Web Crypto, que os navegadores reservam aos contextos seguros: o README indica que só funciona depois de o HTTPS ser ativado, e o wiki considera o HTTPS «pretty much required», quase obrigatório. O projeto recomenda um proxy inverso à frente do Vaultwarden e desaconselha o TLS integrado na sua framework Rocket.

Escolha um certificado reconhecido, como os do Let's Encrypt, que o wiki recomenda: com um certificado autoassinado, algumas plataformas recusam a ligação. O certificado tem de incluir a cadeia completa, sem o que os dispositivos Android não se ligam.

As notificações WebSocket, ativas por predefinição, avisam o navegador, a aplicação de secretária e a extensão de que uma entrada mudou. Passam pela porta HTTP principal, e o proxy tem de transmitir os cabeçalhos Upgrade e Connection. As aplicações móveis utilizam as notificações nativas do respetivo sistema, que se configuram à parte.

Com o Caddy

O wiki aconselha a olhar primeiro para o Caddy se não tiver preferência: ativa o HTTPS por si próprio, obtém o certificado Let's Encrypt e suporta o WebSocket. A definição do wiki transmite também ao Vaultwarden o endereço real do visitante, para os seus registos:

Caddyfile
vault.example.com {
  reverse_proxy 127.0.0.1:8000 {
    header_up X-Real-IP {remote_host}
  }
}

Com o Nginx e o Certbot

Este bloco retoma o exemplo Nginx do wiki, reduzido à porta 80 para deixar o Certbot instalar o HTTPS:

Bloco Nginx
upstream vaultwarden-default {
  zone vaultwarden-default 64k;
  server 127.0.0.1:8000;
  keepalive 2;
}

map $http_upgrade $connection_upgrade {
    default upgrade;
    ''      "";
}

server {
    listen 80;
    listen [::]:80;
    server_name vault.example.com;

    client_max_body_size 525M;

    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection $connection_upgrade;

    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Forwarded-Proto $scheme;

    location / {
      proxy_pass http://vaultwarden-default;
    }
}

O Certbot instala depois o certificado e encarrega-se de o renovar:

Terminal
sudo certbot --nginx

Verificar o WebSocket

Abra as ferramentas de programação do navegador, separador de rede, filtro WS, e volte a ligar-se ao cofre: uma resposta 101 em /notifications/hub confirma a ligação. Outro teste do wiki: abra o cofre em dois navegadores, mude o nome de uma entrada num deles, e a alteração aparece logo no outro.

Fechar as inscrições

Por predefinição, qualquer pessoa que chegue à sua instância pode criar nela uma conta. É útil para a sua primeira conta, e o wiki recomenda fechar a seguir, para impedir um atacante de criar uma.

  1. Abra o seu endereço HTTPS e crie a sua conta; depois, ligue as suas aplicações a esse endereço.
  2. Passe SIGNUPS_ALLOWED a "false" no compose.yaml.
  3. Reinicie com docker compose up -d: uma variável de ambiente está ligada ao contentor, que tem de ser recriado para a ter em conta.
compose.yaml, em environment
SIGNUPS_ALLOWED: "false"

Assim que guardar a configuração a partir da página de administração, nasce um ficheiro config.json na pasta de dados, que prevalece sobre as variáveis de ambiente. As definições em causa passam então a mudar-se a partir dessa página: modificar o compose.yaml deixa de bastar.

A página de administração e o seu token

A página /admin serve para configurar o Vaultwarden, ver e eliminar as contas e as organizações, retirar a autenticação de dois fatores a um utilizador, convidar e ler o diagnóstico. Sem ADMIN_TOKEN, fica desativada: se não precisar dela, deixe-a assim.

O wiki recomenda vivamente ativar o HTTPS antes desta página. O token faz de palavra-passe, e pode ser guardado em forma de hash, em argon2id, em vez de em claro na configuração. O Vaultwarden fornece o comando: pede a palavra-passe duas vezes e devolve uma cadeia PHC.

Terminal
docker run --rm -it vaultwarden/server /vaultwarden hash

Coloque essa cadeia num ficheiro .env, ao lado do compose.yaml, entre apóstrofos, e depois chame-a a partir do serviço:

.env
VAULTWARDEN_ADMIN_TOKEN='$argon2id$...'
compose.yaml, em environment
ADMIN_TOKEN: ${VAULTWARDEN_ADMIN_TOKEN}

Verifique o resultado, reinicie e depois inicie sessão em /admin com a sua palavra-passe, e não com a cadeia PHC:

Terminal
docker compose config
docker compose up -d

O que protege o cofre

A primeira proteção é a palavra-passe mestra. Os dados do cofre são cifrados com chaves pessoais ou de organização: quem obtiver uma cópia da base de dados ou forçar uma sessão ainda tem de quebrar essa palavra-passe para os ler. A sua solidez conta, portanto, antes de mais. Uma sessão de administração permite, por si só, eliminar uma conta ou retirar uma autenticação de dois fatores, sem dar acesso aos dados do cofre.

ProteçãoO que trazOnde se define
Palavra-passe mestraMantém os dados cifrados, mesmo que circule uma cópia da base de dadosCada utilizador escolhe-a, longa e própria deste cofre
Autenticação de dois fatoresSem ela, o wiki lembra que adivinhar uma palavra-passe por força bruta continua a ser possível em teoriaEm cada conta; uma política de organização pode exigi-la
HTTPSCifra o trajeto entre o cliente e o servidorO proxy inverso
Inscrições fechadasImpede um desconhecido de criar uma contaSIGNUPS_ALLOWED
Dicas de palavra-passeApresentadas na página, ajudariam a adivinhar uma palavra-passe; a versão 1.37.5 mantém-nas ocultas por predefiniçãoDeixe SHOW_PASSWORD_HINT a false; PASSWORD_HINTS_ALLOWED retira-as por completo
Limite de tentativasTrava as tentativas a partir de um mesmo endereço, no início de sessão e em /adminLOGIN_RATELIMIT_SECONDS e ADMIN_RATELIMIT_SECONDS
Fail2banBloqueia os endereços após demasiadas falhas, o que o wiki considera particularmente importante para uma instância públicaNo servidor, a partir de um registo LOG_FILE

Prepare o esquecimento da palavra-passe mestra antes de ele acontecer: ative o acesso de emergência da sua conta e, numa organização, a recuperação de conta, que exige o e-mail configurado.

Mais três definições, tiradas do guia de reforço da segurança

SQLite, MariaDB ou PostgreSQL

A mesma imagem suporta as três bases de dados. O wiki descreve o SQLite como a mais utilizada e a mais testada, e recomenda-a para a maioria das utilizações, salvo necessidade precisa de outra.

Base de dadosConfiguraçãoCópia de segurança
SQLiteNenhuma: um ficheiro, vw-data/db.sqlite3O comando /vaultwarden backup, ou a cópia da pasta, com o serviço parado
MariaDB ou MySQLO seu servidor de base de dados e DATABASE_URL em mysql://Uma exportação da base de dados, além da pasta vw-data
PostgreSQLO seu servidor de base de dados e DATABASE_URL em postgresql://Uma exportação da base de dados, além da pasta vw-data
compose.yaml, em environment (PostgreSQL)
DATABASE_URL: "postgresql://user_name:user_password@db_host:5432/vaultwarden"

Crie uma base de dados vazia e o respetivo utilizador: no arranque, o Vaultwarden instala nela o seu próprio esquema. Uma palavra-passe com caracteres especiais escreve-se em codificação percentual neste endereço.

Faça esta escolha antes de encher o cofre. O wiki descreve uma passagem do SQLite para o PostgreSQL com o pgloader, esclarecendo que esse caminho não é suportado pelo projeto, que se faz por sua conta e risco e que começa por uma cópia de segurança.

Os e-mails: a configuração SMTP

O Vaultwarden arranca sem e-mail, mas várias funcionalidades dependem dele: os convites, a verificação dos endereços, o envio das dicas de palavra-passe, a autenticação de dois fatores por e-mail e a recuperação de conta.

Num VPS Simafri, o envio passa por uma retransmissão SMTP autenticada, na porta 587: o endereço de uma conta de correio que já tenha, ou o Simafri Suite. A palavra-passe coloca-se no ficheiro .env, como o token de administração:

compose.yaml, em environment
SMTP_HOST: "smtp.example.com"
SMTP_FROM: "vault@example.com"
SMTP_PORT: "587"
SMTP_SECURITY: "starttls"
SMTP_USERNAME: "vault@example.com"
SMTP_PASSWORD: ${VAULTWARDEN_SMTP_PASSWORD}

Se nada partir, o wiki propõe testar a ligação à retransmissão a partir do servidor. O comando devolve 0 quando a retransmissão responde:

Terminal
timeout 5 bash -c 'cat < /dev/null > /dev/tcp/smtp.example.com/587'; echo $?

As cópias de segurança

O README lembra que o projeto não pode ser responsabilizado por uma perda de dados e recomenda vivamente cópias de segurança regulares. O wiki aconselha-as automáticas, com pelo menos uma cópia noutro lugar. Eis o que contém a pasta de dados com o SQLite:

ElementoO que guardaA copiar
db.sqlite3Quase a totalidade dos dados: contas, organizações, cofresObrigatório
attachments/Os anexos, guardados fora da base de dadosObrigatório
config.jsonA configuração da página de administração, com dados sensíveis em claroRecomendado, cifrado
rsa_key*As chaves que assinam as sessões; perdê-las desliga os utilizadoresRecomendado, cifrado
sends/Os ficheiros enviados pelo Send, efémeros por naturezaFacultativo
icon_cache/Os ícones dos sites, transferidos de novo quando necessárioFacultativo

A base de dados, com o serviço a funcionar

Desde a versão 1.32.1, o Vaultwarden sabe fazer ele próprio a cópia da sua base SQLite, sem parar o serviço:

Terminal
docker exec -it vaultwarden /vaultwarden backup

O comando escreve um ficheiro db_AAAAMMDD_HHMMSS.sqlite3 ao lado da base de dados, em vw-data. A imagem não contém nem sqlite3 nem cron: o wiki aconselha agendar a tarefa no servidor, pelo menos uma vez por dia. Retire então o -it, porque uma tarefa agendada não tem terminal, e faça a triagem desses ficheiros, que se acumulam.

A pasta inteira, com o serviço parado

Quando a base de dados não está a ser utilizada, basta uma simples cópia de todos os seus ficheiros. É o método com o serviço parado que o wiki dá como exemplo para o Docker, e leva também os anexos:

Terminal, na pasta do compose.yaml
docker compose down
tar -czf vaultwarden-$(date +%F).tar.gz vw-data
docker compose up -d

O wiki considera útil uma camada de cifragem, sobretudo quando a cópia inclui o token de administração e os acessos SMTP, e cita o rclone, o restic e o rustic para enviar as cópias para longe. Com o MariaDB ou o PostgreSQL, acrescente uma exportação da base de dados à pasta vw-data.

O wiki pede para não se contentar com os instantâneos de disco, mais delicados de restaurar. Guarde, por isso, estas cópias próprias da aplicação: colocadas no disco do servidor, entram também nas suas cópias de segurança noturnas.

Restaurar

  1. Pare o Vaultwarden.
  2. Substitua cada ficheiro ou pasta de vw-data pela respetiva versão copiada.
  3. Se a base de dados vem de /vaultwarden backup, dê-lhe o nome db.sqlite3 e elimine primeiro qualquer ficheiro db.sqlite3-wal existente: um diário que não corresponda pode corromper a base de dados. Se vem de uma cópia direta, restaure em conjunto db.sqlite3 e o seu db.sqlite3-wal.
  4. Reinicie e verifique depois que consegue abrir o cofre.

O wiki aconselha repetir este exercício de vez em quando, mantendo uma cópia dos dados no lugar: é assim que verifica que uma cópia de segurança funciona.

As atualizações

O wiki dá dois comandos, a partir da pasta do compose.yaml. A pasta de dados mantém-se no lugar:

Terminal
docker compose pull
docker compose up -d

Estas atualizações contam mais do que noutros casos. As aplicações móveis e as extensões de navegador atualizam-se sozinhas, e o wiki avisa que uma diferença de versão em relação ao servidor pode provocar falhas repentinas. O cofre web, incluído na imagem, fica sempre alinhado com o seu servidor.

O projeto não tem calendário de versões: acompanhe as suas notas de versão e faça uma cópia de segurança logo antes de cada atualização. Algumas trazem correções de segurança, como a 1.37.5, de 1 de novembro de 2026, cujas notas recomendam atualizar o mais depressa possível. Estas notas avisam também que, desde a 1.37.5, um valor de configuração inválido impede o Vaultwarden de arrancar: reveja o seu ficheiro de ambiente antes de atualizar. A página de diagnóstico de /admin indica se existe uma versão mais recente.

Quem faz o quê num VPS gerido

O autoalojamento exige cuidar do servidor para além da aplicação. Num VPS gerido, as nossas equipas assumem o servidor e acompanham a sua instância de forma proativa; o Vaultwarden continua a ser o seu software, com as suas definições e os seus dados.

AssuntoAs nossas equipasVocê
O servidorAtualizações do sistema e de segurança, intervenções no servidor incluídasO momento que convém à sua atividade
A supervisãoServidor acompanhado 24 horas por dia, 7 dias por semana, com intervenção sem esperar pela sua chamadaA leitura dos registos da sua instância
VaultwardenAcompanhamento proativo: erros, lentidão e espaço em disco identificados, correção recomendadaA sua instalação, as suas atualizações e as suas definições, que aplica diretamente ou com o seu assistente de IA
As contas e o cofreO servidor que os suporta, vigiado e com cópias de segurançaOs utilizadores, os convites, as palavras-passe mestras e a autenticação de dois fatores
As cópias de segurançaTodas as noites, cifradas e guardadas fora da máquina; restauro incluídoAs cópias próprias do Vaultwarden e o pedido de restauro, quando precisar
A migraçãoO seu servidor atual migrado, oferecidoO momento da mudança

Se preferir que as nossas equipas intervenham na própria aplicação, este serviço é faturado à hora ou por pacote, com um orçamento comunicado antes da intervenção.

O Vaultwarden, num servidor mantido por si

Com um VPS gerido da Simafri, as nossas equipas mantêm atualizado o servidor da sua instância Vaultwarden, vigiam-no dia e noite e intervêm sem esperar pela sua chamada; acompanham também a sua instância de forma proativa e recomendam-lhe as correções úteis, que aplica diretamente ou com o seu assistente de IA. As cópias de segurança são cifradas todas as noites e guardadas fora da máquina, o seu restauro está incluído, e a migração do seu servidor atual é oferecida.

Descobrir os VPS geridos

Perguntas frequentes

O Vaultwarden é gratuito para uma empresa?

Sim. O Vaultwarden está sob licença AGPL-3.0: pode fazê-lo correr numa empresa sem licença para comprar. Se o modificar, a sua versão tem de oferecer o código-fonte a quem a utiliza pela rede. Resta o custo do servidor que o faz funcionar.

O Vaultwarden funciona com as aplicações Bitwarden?

Sim. O README apresenta o Vaultwarden como compatível com os clientes oficiais do Bitwarden, esclarecendo que o projeto não está associado ao Bitwarden nem à Bitwarden, Inc. Um problema comunica-se, portanto, ao projeto Vaultwarden, seja qual for o cliente utilizado.

Como instalar o Vaultwarden com o Docker Compose?

Crie um compose.yaml com a imagem vaultwarden/server, uma pasta de dados e a porta publicada em 127.0.0.1 e execute docker compose up -d. Coloque depois um proxy inverso em HTTPS à frente: sem HTTPS, o cofre web não funciona. Indique também o seu endereço em DOMAIN.

Como desativar as inscrições no Vaultwarden?

Depois de criada a sua conta, passe SIGNUPS_ALLOWED a false no compose.yaml e execute de novo docker compose up -d. As organizações podem ainda convidar: INVITATIONS_ALLOWED a false retira essa possibilidade. Se a página de administração já tiver guardado a sua configuração, faça esta definição a partir dela.

Como configurar o token de administração do Vaultwarden?

Execute o comando vaultwarden hash, que devolve uma cadeia argon2id, e coloque-a em ADMIN_TOKEN, a partir de um ficheiro .env com o Docker Compose. Inicia depois sessão em /admin com a sua palavra-passe. Sem ADMIN_TOKEN, a página fica desativada.

O que protege um cofre Vaultwarden?

Primeiro, a palavra-passe mestra: os dados são cifrados e uma cópia da base de dados só se lê quebrando-a. Juntam-se-lhe a autenticação de dois fatores, o HTTPS, as inscrições fechadas, um token de administração com hash e cópias de segurança cifradas.

Como fazer a cópia de segurança do Vaultwarden?

Com o SQLite, execute todos os dias o comando /vaultwarden backup no contentor e copie também a pasta attachments, o config.json e os ficheiros rsa_key. Com o MariaDB ou o PostgreSQL, acrescente uma exportação da base de dados. Teste regularmente o restauro.

Um VPS gerido cobre o Vaultwarden?

Um VPS gerido cobre o servidor: sistema, segurança, supervisão e cópias de segurança. As nossas equipas acompanham também a sua instância de forma proativa e recomendam-lhe as correções úteis, que aplica. Uma intervenção na aplicação é faturada à hora ou por pacote.

Fontes e documentação oficial

Contacte-nos