Resposta rápida
Como configuro um servidor de backup Borg em uma VPS?
Para configurar um servidor de backup Borg em uma VPS, instale o Borg 1.x nas duas pontas, crie um usuário borg e force borg serve --restrict-to-path --append-only em cada chave de cliente. Inicialize cada repositório com repokey; faça prune e compact a partir de uma chave de administração separada. Uma VPS de 1 TB Coffervale custa $1.66 por mês no plano de 12 meses (2 November 2026).
Quais são os passos, em ordem?
Instale o mesmo Borg 1.x no servidor e nos clientes
apt install borgbackupno Debian ou Ubuntu e depois compareborg --versionnas duas pontas.Crie um usuário borg e uma pasta de repositório
Uma conta sem privilégios na VPS é dona de todos os repositórios; os clientes nunca recebem um shell.
Force borg serve em authorized_keys
Uma linha por chave de cliente, cada uma limitada ao seu próprio caminho com
--restrict-to-pathe--append-only.Inicialize o repositório com repokey
Execute
borg init --encryption=repokeyno cliente, exporte a chave e guarde-a longe das duas máquinas.Agende borg create no cliente
Diariamente via cron ou um timer do systemd, com a passphrase lida por
BORG_PASSCOMMAND.Faça prune e compact a partir de uma chave de administração
Uma segunda chave sem
--append-only, usada de uma máquina confiável depois de conferir a lista de arquivos.Verifique o repositório e teste uma restauração
borg checksemanalmente,--verify-datamensalmente e umaborg extractreal a cada poucos meses.
Qual versão do Borg o servidor deve rodar?
Rode o Borg 1.x nos dois lados: a 1.4.5 foi a última versão estável, em 2 de novembro de 2026, e o Borg 2 ainda está em beta. A página do Borg 2.0 o chama de versão com mudanças incompatíveis, que não é diretamente compatível com repositórios Borg 1.x, e renomeia borg init para borg repo-create. No Debian 13, o pacote a instalar é borgbackup (1.4.0 no trixie); o pacote borgbackup2 separado é um beta do 2.0. Instale a mesma versão no servidor e em todos os clientes.
apt install borgbackup
borg --version
useradd --create-home --home-dir /srv/borg --shell /bin/sh borg
install -d -m 700 -o borg -g borg /srv/borg/.ssh /srv/borg/repos
install -d -m 700 -o borg -g borg /srv/borg/repos/laptop /srv/borg/repos/web1Como faço para travar cada cliente no próprio repositório?
Coloque um comando forçado borg serve na frente de cada chave em /srv/borg/.ssh/authorized_keys, para que a chave possa rodar o Borg e nada mais. A palavra-chave restrict bloqueia encaminhamento de porta, encaminhamento de agente e terminais, e a documentação do Borg observa que ela também cobre recursos de SSH adicionados em versões futuras. Os exemplos assumem um shell POSIX como shell de login da conta, e por isso o usuário acima recebe /bin/sh.
--restrict-to-path PATHpermite esse caminho e todas as pastas abaixo dele, então um cliente pode ter vários repositórios.--restrict-to-repository PATHé mais restritivo: exatamente um repositório, sem subpastas.--append-onlypermite que a chave adicione arquivos ao repositório, mas não remova dados dele.--storage-quota 500Glimita o que uma chave pode armazenar, então um cliente descontrolado não consegue encher o disco.
Cada linha fica em uma única linha no arquivo; a chave de admin no final não tem --append-only e é usada apenas para o prune.
command="borg serve --restrict-to-path /srv/borg/repos/laptop --append-only",restrict ssh-ed25519 AAAA...laptop-key... laptop
command="borg serve --restrict-to-path /srv/borg/repos/web1 --append-only --storage-quota 500G",restrict ssh-ed25519 AAAA...web1-key... web1
command="borg serve --restrict-to-path /srv/borg/repos",restrict ssh-ed25519 AAAA...admin-key... adminchown borg:borg /srv/borg/.ssh/authorized_keys
chmod 600 /srv/borg/.ssh/authorized_keysComo crio o repositório com criptografia repokey?
Rode borg init --encryption=repokey no cliente, depois exporte a chave e guarde-a fora tanto da VPS quanto da máquina que você faz backup. A documentação do Borg recomenda repokey com uma passphrase forte como regra geral; repokey-blake2 é o mesmo modo com hash BLAKE2b, provavelmente mais rápido em processadores sem aceleração de hardware para SHA-256. Com repokey, a chave fica no arquivo config do repositório, selada pela sua passphrase. Perca a passphrase e os backups ficam ilegíveis, para você e para todo mundo. O Borg também diz que você deve manter uma cópia da chave fora do local, por exemplo em papel.
ssh-keygen -t ed25519 -N '' -C 'borg laptop' -f ~/.ssh/borg_ed25519
cat >> ~/.ssh/config <<'EOF'
Host coffer-borg
HostName 203.0.113.10
User borg
IdentityFile ~/.ssh/borg_ed25519
IdentitiesOnly yes
EOF
export BORG_REPO=ssh://coffer-borg/srv/borg/repos/laptop/main
borg init --encryption=repokey
borg key export --paper "$BORG_REPO" ~/borg-laptop-key.txt#!/bin/sh
export BORG_REPO=ssh://coffer-borg/srv/borg/repos/web1/main
# the passphrase file belongs to root, mode 600
export BORG_PASSCOMMAND='cat /root/.config/borg/passphrase'
borg create --stats --compression zstd,3 \
::'{hostname}-{now:%Y-%m-%dT%H:%M}' \
/etc /home /var/wwwComo faço prune e compact em um repositório append-only?
De uma máquina de admin confiável, com a chave que não tem --append-only, depois de verificar que nenhum arquivo sumiu. No modo append-only, explicam as notas do Borg, prune e delete ainda rodam, mas apenas marcam dados como excluídos em uma nova transação, e a compactação nunca acontece, sem aviso e sem erro. O espaço do repositório não é liberado até que borg compact rode a partir de uma chave autorizada a reescrever.
As mesmas notas trazem a pegadinha: a primeira gravação no modo normal torna permanente toda exclusão anterior, incluindo uma feita por um atacante através de uma chave de cliente. Então liste os arquivos primeiro. Se alguns estiverem faltando, pare e siga os passos de recuperação nas notas de append-only do Borg antes de fazer qualquer prune. Um cron job que faz prune automaticamente com uma chave sem restrições torna o append-only inútil. A documentação do Borg também recomenda um --dry-run com --list antes de cada prune real.
export BORG_REPO=ssh://coffer-admin/srv/borg/repos/web1/main
borg list
borg prune -v --list --dry-run --keep-daily=7 --keep-weekly=4 --keep-monthly=6
borg prune -v --list --keep-daily=7 --keep-weekly=4 --keep-monthly=6
borg compactComo verifico o repositório e provo que a restauração funciona?
Rode borg check semanalmente, borg check --verify-data mensalmente e extraia arquivos reais para outra máquina a cada poucos meses. Um check simples verifica o repositório e os metadados dos arquivos. --verify-data lê, descriptografa e descomprime cada chunk, o que o Borg chama de muito demorado, e em discos rígidos é mesmo. Para um repositório grande, --repository-only --max-duration 3600 divide a verificação do repositório em fatias de uma hora que retomam de onde pararam. Nada disso substitui uma restauração real: um backup vale tanto quanto a última vez que você tirou dados dele.
export BORG_REPO=ssh://coffer-borg/srv/borg/repos/web1/main
borg check -v
borg check -v --verify-data
borg check -v --repository-only --max-duration 3600
mkdir -p /tmp/restore-test && cd /tmp/restore-test
borg list
borg extract --list ::web1-2026-11-02T03:00 etc/nginxQuanto custa um destino Borg em comparação com armazenamento Borg hospedado?
Segundo o levantamento da Coffervale de 2 de novembro de 2026, o armazenamento Borg hospedado custava $9.17 por TB ao mês na BorgBase (plano Medium de 1 TB, $110.00 por ano) e $15.00 por TB na rsync.net, enquanto os planos de VPS de armazenamento de provedores que aceitam cripto sem documento de identidade tinham uma mediana de $4.00 por TB. Os serviços hospedados rodam o servidor para você; uma VPS de armazenamento te entrega root e a configuração acima, uma escolha avaliada em Uma VPS de armazenamento é uma alternativa mais barata à rsync.net ou à BorgBase?. Não fazemos backup do seu servidor e não guardamos cópia dos seus dados em nenhum outro lugar, então o que fica em um storage VPS da Coffervale deve ser uma das suas cópias, nunca a única, então o servidor Borg é uma cópia entre várias, como explica Como uso uma VPS para backups fora do local?. O plano de 1 TB está detalhado em Onde consigo uma VPS com 1 TB de armazenamento?, e se você preferir restic, leia Restic: REST server ou SFTP para backups em uma VPS?. Para criptografar também o disco da VPS, veja Como monto e formato o disco de armazenamento em uma VPS Linux?.
Destinos Borg por TB ao mês, 2 de novembro de 2026
| Destino Borg | Por TB ao mês | O que você mesmo roda | Pago em cripto |
|---|---|---|---|
| BorgBase Medium, 1 TB | $9.17 ($110.00 por ano) | Nada: repositórios Borg e restic hospedados | Não informado |
| rsync.net, faixa de 0 a 9 TB | $15.00 | Nada: armazenamento ZFS acessado via SSH | Não informado |
| VPS de armazenamento, mediana de 99 planos | $4.00 | O servidor Borg configurado nesta página | Sim: provedores que aceitam cripto sem documento de identidade |
| Coffervale Clay, 1 TB | $1.66 em 12 meses | O servidor Borg configurado nesta página | BTC, USDT, USDC, ETH, SOL, LTC, XMR |
Preços verificados em
Preços conforme lidos na própria página de cada serviço em 2 de novembro de 2026. A BorgBase cobra o plano Medium anualmente e informa os preços sem VAT; a mediana das VPS de armazenamento cobre planos de 500 GB ou mais, em estoque e cobrados mensalmente.
Perguntas sobre um servidor de backup Borg
Cliente e servidor precisam da mesma versão do Borg?
Mantenha ambos no Borg 1.x, de preferência a mesma versão. O Borg 2 ainda está em beta, usa um novo formato de repositório e não abre repositórios 1.x diretamente. No Debian 13, instale borgbackup, não borgbackup2.
Devo usar --restrict-to-path ou --restrict-to-repository?
--restrict-to-path permite uma pasta e tudo abaixo dela, útil quando um cliente mantém vários repositórios. --restrict-to-repository permite exatamente um repositório e nenhuma subpasta, a escolha mais restrita quando cada cliente tem um.
Por que meu repositório não diminui depois do borg prune?
O prune apenas marca os arquivos como excluídos; borg compact libera o espaço. Através de uma chave append-only, a compactação nunca roda, então faça prune e compact a partir da chave de admin.
Uma única VPS de armazenamento pode armazenar repositórios Borg de várias máquinas?
Sim. Dê a cada máquina sua própria linha de chave no authorized_keys, seu próprio caminho e, se o disco for compartilhado, seu próprio --storage-quota. Assim, um cliente comprometido alcança apenas um repositório.
O que acontece se eu perder a passphrase do Borg?
O repositório fica ilegível para sempre. O Borg não consegue recuperá-lo e o host também não. Guarde a passphrase em um gerenciador de senhas e a chave exportada em papel, longe da VPS e do cliente.
Fontes (13)
- Documentação do Borg 1.4.5: Hospedando repositórios — BorgBackup project (read 2026-11-02)
- Documentação do Borg 1.4.5: borg serve (opções de restrição, append-only, cota de armazenamento) — BorgBackup project (read 2026-11-02)
- Documentação do Borg 1.4.5: borg init (modos de criptografia, backup de chave) — BorgBackup project (read 2026-11-02)
- Documentação do Borg 1.4.5: borg prune — BorgBackup project (read 2026-11-02)
- Documentação do Borg 1.4.5: borg compact — BorgBackup project (read 2026-11-02)
- Documentação do Borg 1.4.5: borg check — BorgBackup project (read 2026-11-02)
- Documentação do Borg 1.4.5: Additional notes, append-only mode — BorgBackup project (read 2026-11-02)
- Documentação do Borg 1.4.5: Início rápido (BORG_PASSCOMMAND) — BorgBackup project (read 2026-11-02)
- Borg 2.0 (informações preliminares) — BorgBackup project (read 2026-11-02)
- Lançamentos do BorgBackup (1.4.5 mais recente, 2.0.0b25 pré-lançamento) — BorgBackup project on GitHub (read 2026-11-02)
- Pacotes do Debian trixie: borgbackup 1.4.0, borgbackup2 2.0.0b19 — Debian (read 2026-11-02)
- Planos e preços borgbase.com — BorgBase (read 2026-11-02)
- Preços de armazenamento em nuvem rsync.net/pricing.html — rsync.net (read 2026-11-02)