v5.0.6
MyÚčto 5.0.6
Nativní instalace se nově aktualizují z UI jedním tlačítkem — stejně jako
Docker. Dosud jim aplikace uměla jen vypsat příkazy k ručnímu spuštění.
Nativní aktualizace z UI
- Aktualizace jedním tlačítkem i bez Dockeru. V Systém → Aktualizace
klik na „Aktualizovat na vX.Y.Z" stáhne production bundle z release,
ověří jeho SHA-256, nasadí ho přes instalaci a spustí migrace. - Composer, Node ani pnpm na hostu nejsou potřeba — bundle má
api/vendor/,web/dist/,manual/generated/imanual/manual.pdf
už představěné. Stačí PHP CLI a práva na zápis. - Průběh krok za krokem — UI ukazuje, co se zrovna děje (stahování,
ověření součtu, rozbalení, záloha, nasazení, migrace), takže dlouhý
běh nevypadá jako zaseknutý. - Preflight předem řekne, jestli to půjde. Zkontroluje práva, volné
místo, PHP CLI a zlib; když prostředí automatickou cestu neumožní
(typicky sdílený hosting), vypíše konkrétní důvody a nabídne ruční
postup s tímtéž bundlem.
Co aktualizace nikdy nepřepíše
cfg.php, cfg.local.php, cfg.docker.php, .env, storage/,
private/, log/, tmp/ a .git/. Soubory, které v novém bundlu
nejsou, se nemažou. Přepisované soubory se zálohují do
storage/updates/<verze>/backup/.
VERSION se přepisuje až jako poslední krok po migracích — přerušená
aktualizace se tak nikdy netváří jako dokončená.
Zotavení z chyby
- Selhání při stahování, ověření součtu nebo rozbalení instalaci vůbec
nezmění. - Selhání při nasazování souborů spustí automatický rollback ze
zálohy. - Selhání migrace rollback záměrně nespouští (schéma už může být
změněné) — výsledek se označí jako neúspěšný a odkáže na log
storage/upgrade-<timestamp>.log.
Spolehlivost rozbalování
Rozbalování bundlu má nově vlastní implementaci místo PHP PharData.
Důvod je věcný: GNU tar dělí cesty delší než 100 znaků do ustar polí
prefix + name (takové cesty jsou v api/vendor/ běžné) a PharData
na nich selže tak, že nerozbalí vůbec nic. Nový extraktor tyto cesty
zvládá, odmítá traversal cesty, odkazy i speciální soubory a kontroluje
hlavičkové součty. Ověřeno proti reálnému bundlu — výsledný strom je
byte-identický s výstupem GNU tar.
Drobné opravy
- Návod pro ruční aktualizaci v UI odkazoval na neexistující soubor
myinvoice-X.Y.Z.tar.gz; správně jemyucto-X.Y.Z.tar.gz. - Odkaz „Detaily v manuálu" na stránce Aktualizace mířil na špatnou
kapitolu.
Instalace a aktualizace
docker pull ghcr.io/radekhulan/myucto:5.0.6Nativní hosting: pokud už běžíš na 5.0.5, aktualizuj ručně podle § 75.6
manuálu — automatické tlačítko je součástí až této verze a funguje od
příštího vydání dál. Jinak stáhni myucto-5.0.6.tar.gz níže, ověř
kontrolní součet, rozbal přes stávající instalaci a spusť
php api/bin/migrate.php.
⚠️ Aktualizace přepisuje soubory běžící aplikace. Na produkci ji
spouštěj v klidném okně a měj aktuální zálohu databáze.
Full Changelog: v5.0.5...v5.0.6