Direct naar de inhoud

Cookie-instellingen

Kies per soort welke cookies je toestaat. Je kunt je keuze altijd wijzigen via Cookie-instellingen onderaan elke pagina. Privacyverklaring

Noodzakelijk

Altijd aan

Nodig om in te loggen, je winkelwagen te bewaren en je keuzes te onthouden. Deze staan altijd aan.

Welke cookies?
  • weboke_sessie, weboke_klant, weboke_remember: je sessie en ingelogd blijven
  • weboke_basket: je winkelwagen
  • wkBtwIncl: prijzen met of zonder btw tonen
  • wok_cookies: je cookiekeuze, 12 maanden

Meet welke advertentie tot een bezoek of bestelling leidt, zodat we niet betalen voor advertenties die niets doen.

Welke cookies?
  • Google Ads via Google Tag Manager (_gcl_au, _gcl_aw), tot 90 dagen
  • OpenAI Ads, advertenties in ChatGPT
  • wok_aff: via welke partner je bij ons kwam (affiliateprogramma), 60 dagen

4,6

Land en taal

Elk land heeft zijn eigen site, met prijzen en btw van dat land.

Bekijken

Back-ups met restic naar een andere plek

Bekijk het in een korte film

Een back-up maken en terugzetten met restic 1:10

De dagelijkse backup van WebOké (zie Backups van WebOké terugzetten) zet altijd je hele VPS terug en staat bij dezelfde aanbieder. Met restic maak je daarnaast je eigen back-up: versleuteld, op een andere plek, en je haalt er losse bestanden uit terug.

Wat heb je nodig?

  • Een plek buiten je VPS waar je via SFTP bij kunt, bijvoorbeeld een opslagdienst of een tweede server. In de voorbeelden is dat backup.example.net met de gebruiker backup.
  • Een sterk wachtwoord voor de back-up. Ben je dat kwijt, dan is je back-up onbruikbaar. Bewaar het ook buiten de server, in je wachtwoordmanager.

Installeren en klaarzetten

De back-up draait als root, zodat hij alles kan lezen.

anna@web1:~$ sudo apt install restic
anna@web1:~$ sudo -i
root@web1:~# ssh-keygen -t ed25519 -C "restic web1" -N "" -f /root/.ssh/id_backup
root@web1:~# ssh-copy-id -i /root/.ssh/id_backup.pub backup@backup.example.net
root@web1:~# install -m 600 /dev/null /root/.restic-wachtwoord
root@web1:~# nano /root/.restic-wachtwoord

Zet in /root/.ssh/config dat root deze sleutel gebruikt voor de back-upserver:

Host backup.example.net
    User backup
    IdentityFile /root/.ssh/id_backup

Maak dan de repository (de plek waar restic alles bewaart):

root@web1:~# export RESTIC_REPOSITORY=sftp:backup@backup.example.net:/restic/web1
root@web1:~# export RESTIC_PASSWORD_FILE=/root/.restic-wachtwoord
root@web1:~# restic init
created restic repository 3c9a1e5b2d at sftp:backup@backup.example.net:/restic/web1

Het back-upscript

Zet dit in /usr/local/sbin/backup.sh en maak het uitvoerbaar met chmod 700 /usr/local/sbin/backup.sh:

#!/bin/sh
export RESTIC_REPOSITORY=sftp:backup@backup.example.net:/restic/web1
export RESTIC_PASSWORD_FILE=/root/.restic-wachtwoord

# 1. Databases dumpen (zie 8.2)
/usr/local/sbin/voor-backup.sh || exit 1

# 2. Apps met SQLite even stilzetten, back-up maken, weer starten
cd /srv/diensten
docker compose stop vaultwarden uptime-kuma n8n
restic backup /etc /home /root /srv /var/backups/db /var/lib/docker/volumes   --exclude /var/lib/docker/volumes/diensten_wp-db
RESULTAAT=$?
docker compose start vaultwarden uptime-kuma n8n
[ "$RESULTAAT" -eq 0 ] || exit 1

# 3. Oude back-ups opruimen
restic forget --keep-daily 7 --keep-weekly 4 --keep-monthly 6 --prune || exit 1

Noem bij stop en start alleen de apps die je echt hebt; waarom ze even stil moeten, staat in Databases en Docker-volumes goed meenemen. Wat er in voor-backup.sh staat, lees je daar ook. De apps starten altijd weer, ook als de back-up mislukt. Met forget en --prune bewaar je 7 dagelijkse, 4 wekelijkse en 6 maandelijkse back-ups; de rest wordt opgeruimd.

Elke nacht automatisch

Maak /etc/systemd/system/backup.service:

[Unit]
Description=restic back-up

[Service]
Type=oneshot
ExecStart=/usr/local/sbin/backup.sh

en /etc/systemd/system/backup.timer:

[Unit]
Description=restic back-up elke nacht

[Timer]
OnCalendar=*-*-* 03:15
Persistent=true

[Install]
WantedBy=timers.target
root@web1:~# systemctl daemon-reload
root@web1:~# systemctl enable --now backup.timer
root@web1:~# systemctl start backup.service
root@web1:~# journalctl -u backup.service -e

Controleren en terugzetten

root@web1:~# restic snapshots
root@web1:~# restic check
root@web1:~# restic restore latest --target /tmp/terug --include /srv/diensten/vw-data

Zet terug naar een aparte map zoals /tmp/terug en kopieer daarna wat je nodig hebt. Oefen dat een keer per kwartaal: een back-up die je nooit hebt teruggezet, is een hoop, geen back-up.

Tip: Laat je waarschuwen als de back-up niet draait. Maak in Uptime Kuma een Push-monitor (zie Uptime Kuma: je sites en server bewaken) en zet onderaan backup.sh deze twee regels. Blijft het seintje uit, dan krijg je een melding.

sleep 30
curl -fsS -m 10 "https://status.example.com/api/push/JOUWCODE?status=up&msg=OK" >/dev/null

Even geduld…

Stel je domeinen in

Regel per domein de nameservers, de koppeling aan je hosting en wie de eigenaar wordt.

Je domeinen laden…