Instalace a spuštění#
Požadavky#
| Co | Verze / poznámka |
|---|---|
| PHP | ≥ 8.3 (composer.json) |
| MySQL / MariaDB | |
| Composer | |
| Node.js a npm | pro sestavení assetů |
| Redis | doporučené, dá se vypnout |
| Elasticsearch | volitelné — bez něj hledání spadne na SQL |
Postup: rozjíždím projekt poprvé#
- Závislosti
- Konfigurace — zkopíruj vzor a vyplň skutečné hodnoty:
Do local.neon patří přístup k databázi (mariadb.* — jediný zdroj pravdy,
používá ho Doctrine i nette/database) a jwt.secret. Includuje se jako
poslední v config/common.neon, takže přebíjí všechny placeholdery.
-
Databáze — schéma je v
docs/sql/. Systém nepoužívá migrace; schéma se udržuje ručně psanými idempotentními skripty. -
Redis — na hostingu bez Redisu odkomentuj v
local.neon:
redis:
storage: false
sessions: false
jwt:
useRedis: false # deny-list půjde do DB (potřebuje cron cleanup)
ratelimit:
useRedis: false
- Assety
Front téma se sestavuje ze své složky — viz Témata frontendu.
-
Práva k zápisu —
temp/,log/,var/a složky pro nahrané soubory. -
Cron token nastav v administraci (
1/cronToken) dřív, než zapojíš crony — bez něj vrací všechny úlohy 403. -
Naplánované úlohy podle Checklistu nasazení a Naplánovaných úloh.
local.neon nepatří do gitu
Obsahuje hesla k databázi a JWT secret. V .gitignore je (/config/local.neon
i /config/Shared/local.neon) — zkontroluj to dřív, než něco commitneš.
validateClass není migrace
Ověření entity proti schématu jen řekne, co nesedí. Změnu ve schématu musíš
provést sám skriptem v docs/sql/.
Postup: zapínám ladicí režim na vývojovém stroji#
Nebo přes proměnnou prostředí NETTE_DEBUG=1, která má přednost. Produkční
výchozí stav je vypnuto; podrobně Checklist nasazení.
Ladicí režim se nenastavuje v local.neon
Rozhoduje se o něm v App\Bootstrap::resolveDebugMode(), tedy před načtením
konfigurace. Cokoli napsaného do NEONu nemá na debug žádný vliv.
Konfigurace#
| Soubor | Obsah |
|---|---|
config/common.neon |
kostra, includuje zbytek |
config/Shared/*.neon |
sdílená konfigurace po oblastech (25 souborů) |
config/Shared/local.neon |
🔴 tajemství a lokální přepisy, mimo git |
config/debug.neon |
co platí jen v ladicím režimu |
config/Admin/, config/System/ |
konfigurace jednotlivých sekcí |
Část nastavení je v databázi, ne v souborech — čte je SettingManager a v runtime
SettingContext.
SettingContext má dvě vrstvy
setSettings() je pro managery no-op. Ve skriptech musíš zapsat i
setServerSettings(), jinak nastavení nedorazí tam, kam čekáš.
Postup: změnil jsem konfiguraci a nic se nestalo#
- Smaž
temp/cache. Nette drží zkompilovaný DI kontejner. - U nového jazyka navíc
temp/cache/translation/— katalog překladů se sám neregeneruje. - U nové třídy může být problém zastaralá mapa tříd.
- Teprve pak hledej chybu v tom, co jsi napsal.
Zastaralá mapa tříd shodí CELÝ web
Ne srozumitelnou hláškou — chybou 500 na všech stránkách naráz. Po přidání jazyka,
nového modulu nebo změně konfigurace vždycky smaž temp/cache.
Ověření po instalaci#
- Titulní stránka.
- Přihlášení do administrace.
- Jeden výpis a jeden formulář v administraci.
- Odeslání jednoho formuláře na frontu.
log/— přibylo něco?
Živý proklik odhalí to, co harness ne
Testovací běh přes CLI obchází spoustu vrstev. Než něco prohlásíš za hotové, proklikej to v prohlížeči — podrobně Testy a nástroje.
Produkce a vývoj sdílejí jednu databázi
Instalace na novém stroji se tedy připojuje k ostrým datům. Než začneš cokoli zkoušet, ověř si, ke které databázi jsi vlastně připojený.
Kam sáhnout#
| Chci | Kde |
|---|---|
| vzor lokální konfigurace | config/Shared/local.neon.example |
| rozhodnutí o ladicím režimu | app/Bootstrap.php → resolveDebugMode() |
| SQL skripty schématu | docs/sql/ |
| příkazy sestavení | package.json, composer.json |
| checklist nasazení | Checklist nasazení |
Navazující kapitoly: Checklist nasazení · Naplánované úlohy · Struktura projektu · Testy a nástroje