Snel antwoord
Hoe stel ik een Borg-backupserver in op een VPS?
Om een Borg-backupserver op een VPS in te stellen, installeer je Borg 1.x aan beide kanten, maak je een borg-gebruiker aan en forceer je borg serve --restrict-to-path --append-only op elke clientsleutel. Initialiseer elke repository met repokey; prune en compact vanaf een aparte beheerderssleutel. Een Coffervale 1 TB VPS kost $1.66 per maand bij 12 maanden (2 November 2026).
Wat zijn de stappen, in volgorde?
Installeer dezelfde Borg 1.x op server en clients
apt install borgbackupop Debian of Ubuntu en vergelijk daarnaborg --versionaan beide kanten.Maak een borg-gebruiker en een repository-map aan
Eén account zonder privileges op de VPS is eigenaar van elke repository; clients krijgen nooit een shell.
Forceer borg serve in authorized_keys
Eén regel per clientsleutel, elk beperkt tot het eigen pad met
--restrict-to-pathen--append-only.Initialiseer de repository met repokey
Voer
borg init --encryption=repokeyuit vanaf de client, exporteer daarna de sleutel en bewaar die buiten beide machines.Plan borg create op de client
Dagelijks via cron of een systemd-timer, met de passphrase ingelezen door
BORG_PASSCOMMAND.Prune en compact vanaf een beheerderssleutel
Een tweede sleutel zonder
--append-only, gebruikt vanaf een vertrouwde machine nadat je de archieflijst hebt gecontroleerd.Controleer de repository en test een restore
borg checkwekelijks,--verify-datamaandelijks en een echteborg extractom de paar maanden.
Welke Borg-versie moet de server draaien?
Draai Borg 1.x aan beide kanten: 1.4.5 was de laatste stabiele release op 2 november 2026, en Borg 2 is nog in beta. De Borg 2.0-pagina noemt het een breaking release die niet rechtstreeks compatibel is met Borg 1.x-repositories, en hernoemt borg init naar borg repo-create. Op Debian 13 is het te installeren pakket borgbackup (1.4.0 in trixie); het aparte borgbackup2-pakket is een 2.0-beta. Installeer dezelfde release op de server en op elke client.
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/web1Hoe leg ik elke client vast op zijn eigen repository?
Zet een geforceerd borg serve-commando voor elke sleutel in /srv/borg/.ssh/authorized_keys, zodat de sleutel Borg kan draaien en niets anders. Het trefwoord restrict blokkeert port forwarding, agent forwarding en terminals, en Borg's documentatie vermeldt dat het ook SSH-functies dekt die in toekomstige releases worden toegevoegd. De voorbeelden gaan uit van een POSIX-shell als login-shell van het account, daarom krijgt de gebruiker hierboven /bin/sh.
--restrict-to-path PATHstaat dat pad en elke map eronder toe, zodat één client meerdere repositories kan hebben.--restrict-to-repository PATHis strenger: precies één repository, geen submappen.--append-onlylaat de sleutel archieven toevoegen maar geen gegevens uit de repository verwijderen.--storage-quota 500Gbegrenst wat één sleutel kan opslaan, zodat een uit de hand gelopen client de schijf niet vult.
Elke regel blijft op één regel in het bestand; de admin-sleutel aan het einde heeft geen --append-only en wordt alleen gebruikt voor prunen.
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_keysHoe maak ik de repository met repokey-versleuteling?
Draai borg init --encryption=repokey vanaf de client, exporteer daarna de sleutel en bewaar die buiten zowel de VPS als de machine die je back-upt. Borg's documentatie raadt repokey met een sterk wachtwoord aan als vuistregel; repokey-blake2 is dezelfde modus met een BLAKE2b-hash, waarschijnlijk sneller op processors zonder hardwareversnelde SHA-256. Met repokey staat de sleutel in het bestand config van de repository, verzegeld met je wachtwoord. Raak je het wachtwoord kwijt, dan zijn de back-ups onleesbaar, voor jou en voor iedereen. Borg zegt ook dat je een kopie van de sleutel buiten de deur moet bewaren, bijvoorbeeld op papier.
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/wwwHoe prune en compact ik een append-only repository?
Vanaf een vertrouwde admin-machine, met de sleutel die geen --append-only heeft, nadat je hebt gecontroleerd dat er geen archief ontbreekt. In append-only modus, leggen Borg's notities uit, draaien prune en delete nog steeds, maar markeren ze gegevens alleen als verwijderd in een nieuwe transactie, en vindt er nooit compaction plaats, zonder waarschuwing en zonder fout. Repository-ruimte komt pas vrij wanneer borg compact draait vanaf een sleutel die mag herschrijven.
Dezelfde notities bevatten de valkuil: de eerste schrijfactie in normale modus maakt elke eerdere verwijdering permanent, inclusief een verwijdering die een aanvaller via een clientsleutel deed. Dus lijst eerst de archieven op. Ontbreken er een paar, stop dan en volg de herstelstappen in Borg's append-only notities voordat je iets pruned. Een cronjob die automatisch pruned met een onbeperkte sleutel maakt append-only zinloos. Borg's documentatie raadt ook een --dry-run met --list aan vóór elke echte prune.
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 compactHoe controleer ik de repository en bewijs ik dat een restore werkt?
Draai borg check wekelijks, borg check --verify-data maandelijks, en pak elke paar maanden echte bestanden uit op een andere machine. Een gewone check verifieert de repository en de archiefmetadata. --verify-data leest, ontsleutelt en decomprimeert elk chunk, wat Borg zeer tijdrovend noemt, en op harde schijven is dat ook zo. Voor een grote repository splitst --repository-only --max-duration 3600 de repository-check in blokken van een uur die hervatten waar ze stopten. Niets hiervan vervangt een echte restore: een back-up is alleen zo goed als de laatste keer dat je er gegevens uit hebt gehaald.
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/nginxWat kost een Borg-doel vergeleken met gehoste Borg-opslag?
Volgens Coffervale's onderzoek van 2 november 2026 kostte gehoste Borg-opslag $9.17 per TB per maand bij BorgBase (1 TB Medium-plan, $110.00 per jaar) en $15.00 per TB bij rsync.net, terwijl storage VPS-plannen van hosts die crypto accepteren zonder identiteitsdocument een mediaan hadden van $4.00 per TB. Gehoste diensten draaien de server voor je; een storage VPS geeft je root en de opzet hierboven, een keuze die wordt afgewogen in Is een storage VPS een goedkoper alternatief voor rsync.net of BorgBase?. We maken geen back-up van je server en bewaren nergens anders een kopie van je data, dus wat op een Coffervale opslag-VPS staat, moet een van jouw kopieën zijn, nooit de enige, dus de Borg-server is één kopie onder meerdere, zoals Hoe gebruik ik een VPS voor off-site back-ups? uitlegt. Het 1 TB-plan staat in detail in Waar kan ik een VPS met 1 TB opslag krijgen?, en als je restic prettiger vindt, lees Restic: REST-server of SFTP voor back-ups naar een VPS?. Om ook de VPS-schijf te versleutelen, zie Hoe mount en formatteer ik de opslagschijf op een Linux VPS?.
Borg-doelen per TB per maand, 2 november 2026
| Borg-doel | Per TB per maand | Wat je zelf draait | Betalen met crypto |
|---|---|---|---|
| BorgBase Medium, 1 TB | $9.17 ($110.00 per jaar) | Niets: gehoste Borg- en restic-repositories | Niet vermeld |
| rsync.net, tier 0 tot 9 TB | $15.00 | Niets: ZFS-opslag bereikbaar via SSH | Niet vermeld |
| Storage VPS, mediaan van 99 plannen | $4.00 | De Borg-server die op deze pagina wordt opgezet | Ja: hosts die crypto accepteren zonder identiteitsdocument |
| Coffervale Clay, 1 TB | $1.66 bij 12 maanden | De Borg-server die op deze pagina wordt opgezet | BTC, USDT, USDC, ETH, SOL, LTC, XMR |
Prijzen gecontroleerd op
Prijzen zoals gelezen op de eigen pagina van elke dienst op 2 november 2026. BorgBase factureert het Medium-plan jaarlijks en vermeldt prijzen exclusief VAT; de mediaan van de storage VPS dekt plannen van 500 GB of meer, op voorraad en maandelijks gefactureerd.
Vragen over een Borg-back-upserver
Moeten client en server dezelfde Borg-versie hebben?
Houd beide op Borg 1.x, idealiter dezelfde release. Borg 2 is nog in beta, gebruikt een nieuw repository-formaat en kan 1.x-repositories niet rechtstreeks openen. Installeer op Debian 13 borgbackup, niet borgbackup2.
Moet ik --restrict-to-path of --restrict-to-repository gebruiken?
--restrict-to-path staat een map en alles eronder toe, handig wanneer één client meerdere repositories heeft. --restrict-to-repository staat precies één repository toe en geen submappen, de strakkere keuze wanneer elke client er één heeft.
Waarom krimpt mijn repository niet na borg prune?
Prune markeert archieven alleen als verwijderd; borg compact maakt de ruimte vrij. Via een append-only sleutel draait compaction helemaal nooit, dus prune en compact met de admin-sleutel.
Kan één storage VPS Borg-repositories voor meerdere machines bevatten?
Ja. Geef elke machine een eigen sleutelregel in authorized_keys, een eigen pad en, als de schijf gedeeld is, een eigen --storage-quota. Eén gecompromitteerde client bereikt dan slechts één repository.
Wat gebeurt er als ik de Borg-passphrase kwijtraak?
De repository wordt definitief onleesbaar. Borg kan hem niet herstellen en de host ook niet. Bewaar de passphrase in een password manager en de geëxporteerde sleutel op papier, weg van de VPS en de client.
Bronnen (13)
- Borg 1.4.5-documentatie: repositories hosten — BorgBackup project (read 2026-11-02)
- Borg 1.4.5-documentatie: borg serve (opties beperken, append-only, opslagquota) — BorgBackup project (read 2026-11-02)
- Borg 1.4.5-documentatie: borg init (encryptiemodi, sleutelback-up) — BorgBackup project (read 2026-11-02)
- Borg 1.4.5-documentatie: borg prune — BorgBackup project (read 2026-11-02)
- Borg 1.4.5-documentatie: borg compact — BorgBackup project (read 2026-11-02)
- Borg 1.4.5-documentatie: borg check — BorgBackup project (read 2026-11-02)
- Borg 1.4.5-documentatie: Additional notes, append-only mode — BorgBackup project (read 2026-11-02)
- Borg 1.4.5-documentatie: Quick start (BORG_PASSCOMMAND) — BorgBackup project (read 2026-11-02)
- Borg 2.0 (voorlopige informatie) — BorgBackup project (read 2026-11-02)
- BorgBackup-releases (1.4.5 nieuwste, 2.0.0b25 pre-release) — BorgBackup project on GitHub (read 2026-11-02)
- Debian trixie-pakketten: borgbackup 1.4.0, borgbackup2 2.0.0b19 — Debian (read 2026-11-02)
- Plannen en prijzen borgbase.com — BorgBase (read 2026-11-02)
- Cloudopslag-prijzen rsync.net/pricing.html — rsync.net (read 2026-11-02)