Vývojář Nasazení do produkce

Nasazení do produkce

Laravix se nasazuje jako každá Laravel aplikace — plus scheduler, queue worker a (volitelně) Meilisearch. Tohle je produkční checklist.

Požadavky na server

  • PHP 8.4 (s fileinfo; gd pro varianty obrázků)
  • Webový server (Nginx/Apache/FrankenPHP) s document rootem na public/
  • MySQL/MariaDB, PostgreSQL nebo SQLite
  • Composer na serveru (používá ho i laravix:upgrade)
  • Volitelně: Meilisearch pro produkční vyhledávání

První nasazení

  1. Dostaňte kód na server (git nebo composer create-project laravix/laravix).

  2. Nakonfigurujte .env: APP_ENV=production, APP_DEBUG=false, APP_URL, přístup k databázi, nastavení mailu (pozvánky a kontaktní formuláře posílají e-maily!).

  3. Spusťte instalátor — zmigruje, nalinkuje storage, publikuje assety a šablonu, vytvoří první web a super admina:

    php artisan laravix:install --site-name="Můj web" --domain=example.com \
      --admin-name="Admin" [email protected] --admin-password=********
    
  4. Nasměrujte DNS webu na server. Doména v administraci se musí rovnat veřejnému hostname — podle ní Laravix vybírá web pro každý požadavek.

  5. Nacachujte konfiguraci a routy:

    php artisan config:cache && php artisan route:cache && php artisan view:cache
    

Dvě nezbytnosti na pozadí

Scheduler — plánované publikování (laravix:publish-scheduled běží každou minutu) vyžaduje Laravel scheduler. Přidejte do crontabu:

* * * * * cd /cesta/k/aplikaci && php artisan schedule:run >> /dev/null 2>&1

Queue worker — varianty obrázků (GenerateImageVariants) běží ve frontě. Provozujte worker pod process managerem (systemd, Supervisor):

php artisan queue:work --tries=3

Pro úplně malé weby zpracuje QUEUE_CONNECTION=sync v .env úlohy inline — uploady se zpomalí, ale worker není potřeba.

Pozor: Bez cron záznamu se naplánovaný obsah nikdy nepublikuje. Bez workeru (na jiné queue connection než sync) se nikdy neobjeví varianty obrázků. To jsou dvě nejčastější překvapení typu „lokálně to fungovalo".

Více webů, jeden server

Nasměrujte domény všech webů na tentýž virtual host / document root a weby založte v administraci. TLS certifikáty musí pokrýt každou doménu. S více doménami zapněte cross-domain přepínač tenantů, ať administrace odkazuje každý web na jeho vlastní doménu:

CMS_CROSS_DOMAIN_SWITCHER=true

Reference proměnných prostředí (specifické pro Laravix)

Proměnná Výchozí Význam
CMS_CROSS_DOMAIN_SWITCHER false Přepínač tenantů odkazuje na vlastní doménu každého webu
CMS_UPDATE_CHECK true Kontrola nových verzí na Packagistu a lišta v administraci
SCOUT_DRIVER Driver vyhledávání (database, meilisearch, …)
SCOUT_QUEUE false Aktualizace indexu přes frontu
MEILISEARCH_HOST / MEILISEARCH_KEY Připojení k Meilisearch

Vše ostatní (databáze, cache, session, mail, fronta) je standardní konfigurace Laravelu.

Nasazování aktualizací

Pro aktualizace kódu/konfigurace: pull, composer install --no-dev, php artisan migrate --force, znovu nacachovat. Pro aktualizace jádra Laravixu použijte php artisan laravix:upgrade — celý postup je v článku Aktualizace.

Ověření po nasazení

  1. Otevřete veřejný web — úvodní stránka se vykreslí (režim šablony), nebo vrátí 404 (headless — očekávané).
  2. Otevřete /admin, přihlaste se, nahrajte testovací obrázek a zkontrolujte, že se objeví varianty (worker OK).
  3. Naplánujte obsah minutu dopředu a sledujte, že se publikuje (cron OK).
  4. Odešlete kontaktní formulář, pokud ho web používá (mail OK).

Související články

Laravix Documentation · 14.07.2026
Star on GitHub