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
- Databázi — pravidelným výpisem (dump), kopírovaným mimo server.
.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
- Svazek
db-dataje živá databáze. Nikdy nemažte instalaci příkazemdocker compose down -v, pokud nemáte čerstvý výpis. - Složka
data/pravdu nedrží — jsou v ní jen log a reporty workera. - V rozhraní si to vždy můžete ověřit: v kartě Stav instalace na stránce Instalace je vidět, jestli je
MASTER_KEYnastavený.