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

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…