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;gdpro 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í
-
Dostaňte kód na server (git nebo
composer create-project laravix/laravix). -
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!). -
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=******** -
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.
-
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í
- Otevřete veřejný web — úvodní stránka se vykreslí (režim šablony), nebo vrátí 404 (headless — očekávané).
- Otevřete
/admin, přihlaste se, nahrajte testovací obrázek a zkontrolujte, že se objeví varianty (worker OK). - Naplánujte obsah minutu dopředu a sledujte, že se publikuje (cron OK).
- Odešlete kontaktní formulář, pokud ho web používá (mail OK).