# Zálohy a obnova

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 `MASTER_KEY`.

## Co zálohovat

1. **Databázi** — pravidelným výpisem (dump).
2. **`MASTER_KEY`** ze souboru `.env` — **jednou, mimo server**. 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.
3. Volitelně celý `.env` (hesla databáze a další tajemství) — na stejně
   bezpečné místo.

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

## Výpis databáze

Z adresáře s instalací:

```
mkdir -p data/backups
docker compose exec -T db mariadb-dump -udraften -p"$DB_PASSWORD" --single-transaction draften | gzip > data/backups/draften-$(date +%F).sql.gz
```

Spouštějte ho pravidelně (třeba denně z cronu) a výpisy kopírujte mimo server.

## Obnova

Do prázdné databáze:

```
gunzip -c dump.sql.gz | docker compose exec -T db mariadb -udraften -p"$DB_PASSWORD" draften
```

Pak spusťte instalaci se stejným `MASTER_KEY`, jaký platil při záloze.

## Na co si dát pozor

- Svazek `db-data` je živá databáze. **Nikdy** nemažte instalaci příkazem
  `docker compose down -v`, pokud nemáte čerstvý výpis.
- Adresář `data/` už pravdu nedrží — jsou v něm jen textové logy, report
  a výpisy.
- V rozhraní si to vždy můžete ověřit: na stránce Instalace je vidět, jestli je
  `MASTER_KEY` nastavený.
