Offsite backup en replicatie met Plakar

6 min leestijd·Matthieu·caddydebiansystemds3ubuntuplakaroffsite-backupbackupreplication|

Repliceer plakar-snapshots naar een externe server via HTTPS of naar S3-compatibele objectopslag. Automatiseer backups en offsite-synchronisatie met de ingebouwde scheduler van plakar als systemd-service op Debian 12 of Ubuntu 24.04.

Waarom heb je offsite backups nodig?

Lokale backups beschermen tegen onbedoeld verwijderen en bestandscorruptie. Ze beschermen niet tegen schijfuitval, ransomware of een gecompromitteerde server. Als je backups op dezelfde machine staan als de data, vernietigt een enkel incident beide. De 3-2-1 backupregel zegt: drie kopieen, twee verschillende media, een kopie offsite. Deze handleiding behandelt het offsite-gedeelte.

Dit artikel gaat verder waar Maak een back-up van je Linux VPS met Plakar ophield. Je zou plakar al geinstalleerd moeten hebben op een Debian 12 of Ubuntu 24.04 VPS, een lokale Kloset-store in /var/backups/plakar en minstens een snapshot. Zo niet, begin dan eerst met die handleiding.

Twee offsite-opties zijn ingebouwd in plakar. Pad A repliceert snapshots naar een tweede server die plakar server draait via HTTPS. Pad B stuurt snapshots naar S3-compatibele objectopslag. Beide gebruiken plakar sync en behouden de Kloset-encryptie end-to-end. Kies een pad of beide. Het automatiseringsgedeelte aan het eind geldt voor beide.

Hoe repliceer je plakar-snapshots naar een externe server?

Start plakar server op een tweede VPS om een Kloset-store via HTTP beschikbaar te stellen. Zet Caddy ervoor voor automatisch TLS. Vanaf de bronmachine compileer je de HTTP-integratieplugin, voeg je de externe server toe als benoemde store en verstuur je snapshots met plakar sync to. Data blijft versleuteld opgeslagen in de Kloset-store en versleuteld tijdens transport via HTTPS.

Je hebt twee machines nodig voor dit gedeelte. VM1 is de productieserver met je bestaande plakar-backups. VM2 is de externe backupserver in een ander datacenter of bij een andere provider. VM2 heeft een domeinnaam nodig die naar zijn IP-adres wijst voor TLS-certificaten. De voorbeelden gebruiken backup.example.com als domein.

Alle commando's in deze handleiding worden als root uitgevoerd. Als je een sudo-gebruiker hebt, zet dan sudo voor elk commando.

Hoe stel je plakar server in op VM2?

Installeer plakar op VM2 met dezelfde stappen uit het hoofdartikel:

apt update
apt install -y curl gnupg2
curl -fsSL https://plakar.io/dist/keys/community-v1.1.0.gpg | gpg --dearmor -o /usr/share/keyrings/plakar.gpg
echo "deb [signed-by=/usr/share/keyrings/plakar.gpg] https://plakar.io/dist/repos/deb/ stable main" | tee /etc/apt/sources.list.d/plakar.list
apt update
apt install -y plakar
plakar version
plakar/v1.0.6

Maak een Kloset-store op VM2. Genereer een sterk wachtwoord en sla het op in een wachtwoordmanager. Dit is een andere store dan VM1, dus het krijgt zijn eigen wachtwoord:

mkdir -p /var/backups/plakar
openssl rand -base64 32

Bewaar de output. Je hebt dit wachtwoord nodig op zowel VM2 als VM1. Maak de store aan:

plakar at /var/backups/plakar create
repository passphrase:

Voer het gegenereerde wachtwoord in. Beperk de rechten van de store-directory:

chmod 700 /var/backups/plakar

Sla het wachtwoord op in een bestand zodat plakar server zonder interactieve prompts kan starten:

mkdir -p /etc/plakar
cat > /etc/plakar/passphrase <<'EOF'
YOUR_GENERATED_PASSPHRASE_HERE
EOF
chmod 600 /etc/plakar/passphrase
chown root:root /etc/plakar/passphrase
ls -la /etc/plakar/passphrase
-rw-------  1 root root 45 Mar 20 14:00 /etc/plakar/passphrase

Registreer de store op naam:

plakar store add backups \
  location=/var/backups/plakar \
  passphrase_cmd="cat /etc/plakar/passphrase"

Start plakar server om de store via HTTP beschikbaar te stellen. Bind het alleen aan localhost. Caddy handelt de externe verbindingen af:

plakar at @backups server -listen 127.0.0.1:9876

De server draait op de voorgrond en logt verzoeken naar stdout. Laat deze terminal open. Je stelt later een systemd-service in.

Standaard schakelt plakar server verwijderoperaties uit. Dit voorkomt dat externe clients snapshots verwijderen. Voor synchronisatie is schrijftoegang voldoende.

Hoe zet je Caddy voor plakar server voor TLS?

Caddy biedt automatisch HTTPS met Let's Encrypt-certificaten. Het beeindigt TLS en stuurt verzoeken door naar plakar server op localhost. Externe clients verbinden op poort 443 en Caddy stuurt door naar poort 9876.

Zorg ervoor dat je DNS A-record voor backup.example.com naar het IP-adres van VM2 wijst voordat je Caddy installeert.

Installeer Caddy op VM2:

apt install -y debian-keyring debian-archive-keyring apt-transport-https curl
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/gpg.key' | gpg --dearmor -o /usr/share/keyrings/caddy-stable-archive-keyring.gpg
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/debian.deb.txt' | tee /etc/apt/sources.list.d/caddy-stable.list
apt update
apt install -y caddy

Vervang het standaard Caddyfile door een reverse proxy-configuratie. Vervang backup.example.com door je daadwerkelijke domein:

cat > /etc/caddy/Caddyfile <<'EOF'
backup.example.com {
    reverse_proxy 127.0.0.1:9876
}
EOF

Herlaad Caddy om de configuratie toe te passen:

systemctl reload caddy
systemctl status caddy
 caddy.service - Caddy
     Loaded: loaded (/lib/systemd/system/caddy.service; enabled; preset: enabled)
     Active: active (running)

Test vanaf VM1 of een externe machine:

curl -I https://backup.example.com

Een 200- of 404-respons betekent dat Caddy correct doorstuurt naar de plakar-server.

Hoe beveilig je de plakar-server met firewallregels?

Open poorten 80 (ACME-uitdaging) en 443 (HTTPS). Poort 9876 blijft gebonden aan 127.0.0.1. Voor een gedetailleerde firewall-instelling, zie [-> linux-firewall-ufw-nftables-vps].

Met UFW:

ufw allow 80/tcp
ufw allow 443/tcp
ufw status

Met nftables:

nft add rule inet filter input tcp dport 80 accept
nft add rule inet filter input tcp dport 443 accept

Hoe draai je plakar server als systemd-service op VM2?

Maak een systemd-unit zodat plakar server opstart bij het booten:

cat > /etc/systemd/system/plakar-server.service <<EOF
[Unit]
Description=Plakar Backup Server
After=network.target

[Service]
Type=simple
ExecStart=/usr/bin/plakar at @backups server -listen 127.0.0.1:9876
Restart=on-failure
RestartSec=10
User=root
StandardOutput=journal
StandardError=journal

[Install]
WantedBy=multi-user.target
EOF
systemctl daemon-reload
systemctl enable --now plakar-server.service
systemctl status plakar-server.service
 plakar-server.service - Plakar Backup Server
     Loaded: loaded (/etc/systemd/system/plakar-server.service; enabled; preset: enabled)
     Active: active (running)

Hoe installeer je de HTTP-integratie op VM1?

Terug op VM1. Compileer de HTTP-plugin uit de broncode:

apt install -y golang-go make
curl -fsSL https://plugins.plakar.io/kloset/recipe/v1.0.0/http.yaml -o /tmp/http.yaml
plakar pkg build /tmp/http.yaml

De compilatie maakt de HTTP-integratie vanuit de bronrepository en produceert een .ptar-archief. Installeer de gecompileerde plugin:

plakar pkg add ./http_v1.0.5_linux_amd64.ptar
plakar pkg list
http@v1.0.5

Hoe synchroniseer je snapshots van VM1 naar de externe server?

Registreer de externe server als benoemde store. De passphrase_cmd moet het wachtwoord van VM2's store retourneren, niet dat van VM1:

cat > /etc/plakar/remote-passphrase <<'EOF'
VM2_STORE_PASSPHRASE_HERE
EOF
chmod 600 /etc/plakar/remote-passphrase
chown root:root /etc/plakar/remote-passphrase
plakar store add remote \
  https://backup.example.com \
  passphrase_cmd="cat /etc/plakar/remote-passphrase"

Stuur alle snapshots van je lokale store naar de externe:

plakar at @mybackups sync to @remote
info: sync: synchronization from fs:///var/backups/plakar to https://backup.example.com completed: 3 snapshots synchronized

Stuur een enkele snapshot op ID:

plakar at @mybackups sync a5bcf13b to @remote

Synchroniseer alleen snapshots van de afgelopen 7 dagen:

plakar at @mybackups sync -since 7d to @remote

Hoe verifieer je de replicatie op de externe server?

Op VM2, lijst de snapshots op:

plakar at @backups ls
2026-03-20T10:05:12Z   a5bcf13b   1.4 MiB        0s /etc
2026-03-20T10:06:01Z   5fc17459       0 B        0s /home
2026-03-20T10:06:15Z   7ed22fb8      24 B        0s /var/www

Herstel een enkel bestand om de dataintegriteit te controleren:

plakar at @backups cat a5bcf13b:/etc/hostname

Voor een volledig herstelttest:

mkdir -p /tmp/restore-test
plakar at @backups restore -to /tmp/restore-test a5bcf13b
ls /tmp/restore-test/etc/
info: a5bcf13b: OK /etc
info: restore: restoration of a5bcf13b:/etc at /tmp/restore-test completed successfully
rm -rf /tmp/restore-test

Hoe synchroniseer je plakar-backups naar S3-compatibele opslag?

Voeg een S3-compatibele bucket toe als benoemde store en verstuur snapshots met plakar sync.

Hoe installeer je de S3-integratie?

curl -fsSL https://plugins.plakar.io/kloset/recipe/v1.0.0/s3.yaml -o /tmp/s3.yaml
plakar pkg build /tmp/s3.yaml
plakar pkg add ./s3_v1.0.7_linux_amd64.ptar
plakar pkg list
http@v1.0.5
s3@v1.0.7

Hoe voeg je een S3-store toe?

Maak eerst een bucket bij je S3-provider. De bucket moet al bestaan.

plakar store add s3 \
  s3://s3.eu-west-1.example.com/my-plakar-backups \
  access_key=YOUR_ACCESS_KEY \
  secret_access_key=YOUR_SECRET_KEY \
  use_tls=true \
  passphrase_cmd="cat /etc/plakar/passphrase"

Initialiseer een Kloset-store in de bucket:

plakar at @s3 create

Hoe verstuur je snapshots naar S3?

plakar at @mybackups sync to @s3
info: sync: synchronization from fs:///var/backups/plakar to s3://s3.eu-west-1.example.com/my-plakar-backups completed: 3 snapshots synchronized
plakar at @s3 ls
2026-03-20T10:05:12Z   a5bcf13b   1.4 MiB        0s /etc
2026-03-20T10:06:01Z   5fc17459       0 B        0s /home
2026-03-20T10:06:15Z   7ed22fb8      24 B        0s /var/www

Welke S3-rechten heeft plakar nodig?

  • s3:GetObject en s3:ListBucket voor het lezen van snapshots en metadata
  • s3:PutObject voor het schrijven van nieuwe snapshots
  • s3:DeleteObject voor lock-opruiming tijdens synchronisatie

Maak een dedicated IAM-gebruiker met een beleid beperkt tot alleen de backup-bucket. Als je provider bucket-versioning en object lock ondersteunt, schakel dan beide in.

Hoe automatiseer je plakar-backups en synchronisatie?

Stel de plakar-scheduler in voor lokale backups en koppel dan offsite-synchronisatie met een systemd-timer.

Hoe configureer je stores voor onbeheerd gebruik?

Als je Maak een back-up van je Linux VPS met Plakar hebt gevolgd, heb je al een benoemde store mybackups met een passphrase_cmd. Test dat beide stores toegankelijk zijn:

plakar at @mybackups ls
plakar at @remote ls

Hoe schrijf je een scheduler.yaml voor plakar?

cat > /etc/plakar/scheduler.yaml <<'EOF'
agent:
  tasks:
    - name: backup etc
      repository: "@mybackups"
      backup:
        path: /etc
        interval: 24h
        check: true
    - name: backup home
      repository: "@mybackups"
      backup:
        path: /home
        interval: 24h
    - name: backup www
      repository: "@mybackups"
      backup:
        path: /var/www
        interval: 24h
EOF
chmod 600 /etc/plakar/scheduler.yaml

Hoe synchroniseer je automatisch na de backups?

cat > /etc/plakar/sync-offsite.sh <<'SCRIPT'
#!/bin/bash
set -euo pipefail

# Change to "s3" if using S3 instead of a remote server
OFFSITE_STORE="remote"

echo "$(date -Iseconds) Starting offsite sync to @${OFFSITE_STORE}"
plakar at @mybackups sync to @${OFFSITE_STORE}
echo "$(date -Iseconds) Offsite sync complete"
SCRIPT
chmod 700 /etc/plakar/sync-offsite.sh

Hoe draai je de plakar-scheduler als systemd-service?

cat > /etc/systemd/system/plakar-scheduler.service <<EOF
[Unit]
Description=Plakar Backup Scheduler
After=network.target

[Service]
Type=simple
ExecStart=/usr/bin/plakar scheduler start -foreground -tasks /etc/plakar/scheduler.yaml
ExecStop=/usr/bin/plakar scheduler stop
Restart=on-failure
RestartSec=30
User=root
StandardOutput=journal
StandardError=journal

[Install]
WantedBy=multi-user.target
EOF
cat > /etc/systemd/system/plakar-sync.service <<EOF
[Unit]
Description=Plakar Offsite Sync
After=network.target

[Service]
Type=oneshot
ExecStart=/etc/plakar/sync-offsite.sh
User=root
StandardOutput=journal
StandardError=journal
EOF
cat > /etc/systemd/system/plakar-sync.timer <<EOF
[Unit]
Description=Run Plakar Offsite Sync Daily

[Timer]
OnCalendar=*-*-* 03:30:00
Persistent=true

[Install]
WantedBy=timers.target
EOF
systemctl daemon-reload
systemctl enable --now plakar-scheduler.service
systemctl enable --now plakar-sync.timer
info: Plakar scheduler up
systemctl status plakar-scheduler.service
 plakar-scheduler.service - Plakar Backup Scheduler
     Loaded: loaded (/etc/systemd/system/plakar-scheduler.service; enabled; preset: enabled)
     Active: active (running)
systemctl list-timers plakar-sync.timer
NEXT                         LEFT          LAST  PASSED  UNIT                  ACTIVATES
Fri 2026-03-21 03:30:00 UTC  15h left      n/a   n/a     plakar-sync.timer     plakar-sync.service

Iets werkt niet?

"backend 'http' does not exist" of "backend 's3' does not exist". De integratieplugin is niet geinstalleerd. Compileer vanuit broncode met plakar pkg build.

"connection refused" bij synchronisatie naar extern. Controleer of plakar server draait op VM2 en of Caddy draait. Controleer het DNS A-record.

"TLS handshake error" van Caddy. Controleer Caddy-logs: journalctl -u caddy --since "10 minutes ago".

Wachtwoordprompt tijdens synchronisatie. Controleer beide wachtwoordbestanden:

cat /etc/plakar/passphrase
cat /etc/plakar/remote-passphrase

Scheduler stopt onmiddellijk. Zorg ervoor dat -foreground in de ExecStart-regel staat.

Synchronisatie duurt lang bij de eerste keer. De initiele synchronisatie is volledig; volgende zijn incrementeel. Draai het in tmux of screen.

Voor Docker-workloads, overweeg Docker-volumes back-uppen en herstellen op een VPS samen met deze setup.


Copyright 2026 Virtua.Cloud. Alle rechten voorbehouden. Deze inhoud is een origineel werk van het Virtua.Cloud-team. Reproductie, herpublicatie of herdistributie zonder schriftelijke toestemming is verboden.

Klaar om het zelf te proberen?

Deploy uw eigen server in seconden. Linux, Windows of FreeBSD.

Bekijk VPS-aanbod