Pro administrátory
← Na rozcestník

Zálohy a obnova

Co zálohovat kromě databáze, proč je MASTER_KEY stejně důležitý a jak obnovu vyzkoušet.

U instalace na vlastním serveru je všechno podstatné v databázi: nastavení, pokyny, zdroje znalostí, zprávy, koncepty i šifrovaná tajemství. Zálohujete tedy databázi — a soubor .env s klíčem MASTER_KEY.

Co zálohovat

  1. Databázi — pravidelným výpisem (dump), kopírovaným mimo server.
  2. .env, hlavně MASTER_KEY — mimo server, na bezpečné místo. Bez něj z databáze nepřečtete API klíče, přístupy ke schránkám ani klienty pro přihlášení; záloha by byla k ničemu. My ho nemáme.

Výpis databáze obsahuje poštu zákazníků. Chraňte ho stejně jako samotnou schránku.

Výpisy před aktualizací nejsou záloha

Před každou aktualizací uloží draften výpis databáze do složky backups/ v adresáři instalace a drží poslední tři (počet určuje DRAFTEN_BACKUPS). Jsou ale na stejném disku jako databáze — jsou to pojistka pro aktualizace, ne záloha. Kopírujte je mimo server spolu s .env, jak to dělají vaše ostatní zálohy.

Pravidelný výpis databáze

Z adresáře instalace:

docker compose exec -T db sh -c 'mariadb-dump -uroot -p"$MARIADB_ROOT_PASSWORD" --single-transaction --databases draften' | gzip > draften-$(date +%F).sql.gz

Spouštějte ho pravidelně (třeba denně z cronu) a výpisy ukládejte mimo server.

Obnova

Zastavte workery, nahrajte výpis a spusťte verzi, která běžela, když výpis vznikl (u výpisů z backups/ je v názvu souboru):

docker compose stop worker
gunzip -c <výpis>.sql.gz | docker compose exec -T db sh -c 'mariadb -uroot -p"$MARIADB_ROOT_PASSWORD"'
./draften update <verze> --no-backup

Na novém serveru nejdřív draften nainstalujte a do .env vložte MASTER_KEY z doby, kdy výpis vznikl.

Výměna šifrovacího klíče

MASTER_KEY jde vyměnit bez výpadku — v rozhraní (Správa instalace → Instalace → Šifrovací klíč → Vyměnit šifrovací klíč, potřebuje updater), nebo příkazem:

./draften rotate-key

Nový klíč se nejdřív zapíše do .env, kontejnery si ho postupně vezmou a všechno uložené se jím znovu zašifruje. Starý klíč zůstane v .env jako MASTER_KEY_PREVIOUS, dokud jsou v backups/ výpisy z doby před výměnou — jen jím se dají otevřít. Další výměnu draften odmítne, dokud takový výpis existuje.

Po výměně si hned zkopírujte nový .env mimo server. Nový klíč se do rozhraní nikdy nedostane; je jen v .env na serveru.

Na co si dát pozor

Textová verze