5. Po instalaci a CLI nástroje
Ať jsi instaloval přes Docker nebo nativně, poslední krok je stejný: otevři aplikaci v prohlížeči a projdi úvodním průvodcem. Tato kapitola navíc shrnuje CLI nástroje a plánované úlohy (cron) pro běžnou údržbu.
5.1 První spuštění
Otevři aplikaci v prohlížeči (u Dockeru http://localhost:8080, u nativní instalace URL podle web serveru) — naskočí setup wizard. Provede tě založením prvního dodavatele, administrátorského účtu a základní konfigurace. Detailní popis: První spuštění (setup wizard).
5.2 Co nastavit hned po prvním přihlášení
- Dodavatel — IČO/DIČ, adresa, logo, číslování faktur, bankovní účty (Nastavení → Můj dodavatel; detail viz Nastavení).
- Odchozí pošta (SMTP) — aby fungovalo odesílání faktur a upomínek.
- Daňové nastavení — typ poplatníka, perioda DPH, kód FÚ (pokud jsi plátce; viz Výkazy DPH).
- Zabezpečení — 2FA, IP allowlist, role uživatelů (viz Bezpečnost).
- Plánované úlohy (cron) — zálohy, párování plateb, upomínky (viz § 5.5 Cron skripty).
5.3 Produkční doporučení
- Nasazuj za HTTPS (u Dockeru reverse proxy — viz § 3.8 HTTPS / TLS terminace).
- Zapni zálohy a ověř, že běží (Systém → Plánované úlohy).
- Pinuj konkrétní verzi image a sleduj Aktualizace.
5.4 CLI nástroje
php api/bin/migrate.php # spustí pending migrace
php api/bin/migrate.php --status # vypíše stav migrací
php api/bin/setup.php # interaktivní úvodní zřízení
php api/bin/sample.php # vygeneruje testovací data (po setupu)
php api/bin/reset.php # smaže všechna user-data (vyžaduje "ANO")
php api/bin/recompute-stats.php # přepočítá agregované statistiky
5.5 Cron skripty
V cmd/ jsou připravené .cmd (Windows Task Scheduler) i .sh (Linux cron) wrappery:
| Skript | Doporučená frekvence |
|---|---|
cron-cleanup | 1× denně 03:00 |
cron-backup | 1× denně 02:00 |
cron-bank-scan | každých 30 min |
cron-bank-email-notices | každých 30 min |
cron-send-reminders | 1× denně 09:00, Po–Pá |
Detaily v cmd/README.md.
Šifrování záloh: volitelné heslo cron.backup.password v cfg.php zašifruje všechny tři typy ZIP záloh (DB dump, PDF dokladů, sekce Dokumenty) algoritmem AES-256. Pro rozbalení použijte 7-Zip, WinRAR nebo unzip -P — vestavěný Průzkumník Windows šifrované AES-256 archivy neumí otevřít. Šifruje se obsah souborů, názvy souborů uvnitř archivu zůstávají čitelné. Pokud je heslo nastavené a PHP šifrování nepodporuje (libzip < 1.2), záloha se záměrně nevytvoří a úloha skončí chybou — nešifrovaná záloha by vznikla jen omylem.
💡 Relativní cesty v
cfg.php. Cestové klíče (cron.backup.output_dir,storage.*,logging.path, archivy přijatých/importovaných dokladů, DKIM) zadané relativně (např.storage/backup) se ukotvují k rootu aplikace, ne k pracovnímu adresáři procesu. Záloha tak skončí na očekávaném místě i když cron běží pod Task Schedulerem nebo systémovým cronem s jiným aktuálním adresářem. Absolutní cesty (vč.C:\…a UNC\\server) iMYINVOICE_DATA_DIRzůstávají beze změny.
Kontrola, že úlohy běží: otevři v aplikaci Systém → Plánované úlohy. Každý cron skript si zapisuje vlastní heartbeat do tabulky cron_runs (start, konec, exit code, JSON report). Stránka ukazuje pro každou doporučenou úlohu kdy naposled úspěšně proběhla, a pokud poslední běh chybí nebo je starší než max_age_hours (typicky 36 h), je tu varování Stáří / Selhává / Neběželo. Tím se odhalí "cron vůbec není nastavený" i "cron běží, ale failuje" — bez ohledu na OS (crontab vs. Task Scheduler vs. Docker host).