# Aktualizace z příkazové řádky

Když na instalaci běží updater, je nejpohodlnější aktualizovat v rozhraní —
popisuje to [Aktualizace přes updater](/cs/admin/updating-with-the-updater). Tady
je tentýž postup z příkazové řádky; funguje vždycky, s updaterem i bez něj.
Všechny příkazy se spouštějí v adresáři instalace.

## Aktualizace na novou verzi

Každé vydání je nový balíček. Buď ho předejte příkazu přímo:

```
./draften update --bundle /cesta/k/draften-<nová verze>.tar
```

nebo ho nakopírujte do složky `updates/` a spusťte:

```
./draften update <nová verze>
```

Aktualizace proběhne **bez výpadku** a postupně:

1. zkontroluje balíček podle klíčů nainstalovaného vydání — dřív, než z něj
   cokoli použije,
2. uloží výpis databáze do `backups/` (drží se poslední tři zálohy před
   aktualizací, počet určuje `DRAFTEN_BACKUPS` v `.env`; denní zálohy se
   počítají zvlášť, viz [Zálohy a obnova](/cs/admin/backup-and-restore)),
3. provede migrace databáze,
4. vymění workery,
5. spustí novou verzi webu vedle té, která slouží, a přepne na ni, až je
   zdravá.

Když se nová verze zdravou nestane, nic se nepřepne a dál slouží ta předchozí.

Balíček jde zkontrolovat i bez instalace:

```
./draften check draften-<nová verze>.tar
```

## Po aktualizaci

```
./draften status
```

ukáže, která barva webu slouží, verzi a zdraví obou barev i workerů, stav
HTTPS a výpisy databáze. Na stránce **Provoz** se workery ozývají a verdikt je
„kapacita stačí“. Co vydání změnilo, je v souboru `NOTES.md`.

## Návrat na předchozí verzi

Verze, která sloužila před aktualizací, běží dál bez provozu. Přepnete na ni
okamžitě:

```
./draften rollback
```

Jde to proto, že databáze zůstává čitelná i pro předchozí verzi.

## Návrat na ještě starší verzi

Tam už vede jen obnova výpisu databáze. Každý výpis v `backups/` nese
v názvu verzi, která běžela, když vznikl (`<čas>-<verze>.sql.gz` před
aktualizací, `<čas>-<verze>.backup.sql.gz` denní a na požádání):

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

Všechno, co se v draftenu stalo po vzniku výpisu, se tím ztratí.

!> Výpis z doby před výměnou šifrovacího klíče otevře jen předchozí klíč,
`MASTER_KEY_PREVIOUS` v `.env`. Viz [Zálohy a obnova](/cs/admin/backup-and-restore).

## Stroj bez internetu

Nová vydání stahuje updater s klíčem z licence. Stroj bez internetu nic
nestahuje: balíček nakopírujte do `updates/` a aktualizujte příkazem
`./draften update <verze>` — nebo vám ho odtud nabídne updater v rozhraní.

## Co se samo nezmění

- **Nastavení asistentů, pokyny a zdroje** jsou v databázi a aktualizace
  na ně nesahá.
- **Client secret registrace Entra** vyprší podle toho, na jak dlouho jste ho
  vystavili; obnovíte ho v rozhraní (Organizace → Integrace → Nový secret),
  ne aktualizací.
- **Certifikát HTTPS** obnovujete sami: `./draften certificate nový.pem nový.key`.
