MyInvoice MyInvoice.cz Manuál
Stáhnout PDF Zpět na hlavní stránku

4. Instalace — Nativní (PHP + MariaDB + web server)

Tradiční hosting bez Dockeru (cca 5 minut).

💡 Nechce se ti buildit? Stáhni si hotový production bundle z GitHub Releases — má už hotové api/vendor/, web/dist/, manual/generated/ i manual.pdf, takže odpadá Composer, Node/pnpm i build kroky (4.3 frontend/manuál a 4.4). Postup najdeš níže v 4.6 Alternativa: hotový balíček. Pak ti stačí PHP + MariaDB + web server.

Předpoklady (pro build ze zdrojáků):

4.1 Klon a konfigurace

git clone https://github.com/radekhulan/myinvoice.git myinvoice
cd myinvoice
cp cfg.sample.php cfg.php

Otevři cfg.php a vyplň:

4.2 Vytvoř databázi

mysql -u root -p -e "CREATE DATABASE myinvoice CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;"

4.3 Backend + migrace

cd api && composer install && cd ..
php api/bin/migrate.php
php tools/generateManualHtml.php   # vyrenderuje manual/generated/ → /manual route
php tools/exportManualToPdf.php    # vygeneruje manual/manual.pdf (Stáhnout PDF v sidebaru)

generateManualHtml.php je self-contained (nepotřebuje composer/vendor), generuje HTML kapitoly + search index. exportManualToPdf.php vyžaduje api/vendor/ (mPDF). Spouštět obojí znovu po každém pull repa, aby /manual ukazoval aktuální obsah. (V Docker variantě se volá build-time uvnitř Dockerfile — viz Instalace — Docker.)

4.4 Frontend build

cd web
pnpm install
pnpm build       # produkční build do web/dist/

4.5 Web server

Po nasazení web serveru pokračuj kapitolou Po instalaci.

4.6 Alternativa: hotový balíček (bez buildu)

Pro sdílený hosting bez Composeru / Node — stáhni production bundle z release page. Publikuje se automaticky ke každému release tagu a obsahuje hotové api/vendor/, web/dist/, manual/generated/ i manual.pdf, takže žádný build krok není potřeba (přeskočíš sekce 4.3 frontend/manuál i 4.4).

TAG=4.30.1
curl -LO https://github.com/radekhulan/myinvoice/releases/download/v$TAG/myinvoice-$TAG.tar.gz
sha256sum -c myinvoice-$TAG.tar.gz.sha256   # ověř integritu
tar -xzf myinvoice-$TAG.tar.gz --strip-components=1 \
  --exclude='cfg.php' --exclude='cfg.local.php' \
  --exclude='storage' --exclude='private' --exclude='log'

Zbytek je stejný jako u instalace ze zdrojáků: vyplň cfg.php (viz 4.1), vytvoř databázi (4.2), spusť migrace a nakonfiguruj web server (4.5):

php api/bin/migrate.php

🔔 Upgrade z UI: v Systém → Aktualizace je tlačítko *Aktualizovat*, které příkazy pro stažení bundlu zobrazí jako copy-paste box. Patička aplikace ukazuje aktuální verzi + badge, pokud je dostupná novější (denně refreshuje cron-version-check.php). Detail v kapitole Aktualizace.

4.7 Aktualizace

Nativní instalace se aktualizuje dvěma způsoby — vyber podle toho, co máš na hostu k dispozici:

Build ze zdrojáků (host má PHP CLI + Composer + Node + pnpm):

git fetch --tags
git checkout vX.Y.Z
cd api && composer install --no-dev && cd ..
cd web && pnpm install && pnpm build && cd ..
php tools/generateManualHtml.php
php tools/exportManualToPdf.php
php api/bin/migrate.php

Bez Composeru / Node (sdílený hosting) — rozbal hotový production bundle (viz 4.6) a spusť migraci:

TAG=4.30.1
curl -LO https://github.com/radekhulan/myinvoice/releases/download/v$TAG/myinvoice-$TAG.tar.gz
sha256sum -c myinvoice-$TAG.tar.gz.sha256
tar -xzf myinvoice-$TAG.tar.gz --strip-components=1 \
  --exclude='cfg.php' --exclude='cfg.local.php' \
  --exclude='storage' --exclude='private' --exclude='log'
php api/bin/migrate.php

Migrace jsou idempotentní, takže migrate.php se po každém upgradu spustí vždy. Konfiguraci (cfg.php) ani data (storage, private, log) upgrade nemaže.

🛈 Plný postup, zachování dat, rollback a řešení selhání upgradu najdeš v kapitole Aktualizace — § 40.6 Nativní instalace a § 40.7 Co když upgrade selže.