Local Development (Monorepo)
Chcete zasahovat přímo do Laravixu — do jádra nebo výchozí šablony? Pak potřebujete vývojové monorepo, ne distribuci. Tento článek vysvětluje rozložení repozitáře a rozběhne ho přes Laravel Sail.
Tip: Pokud chcete s Laravixem jen postavit web, použijte distribuci — viz Instalace.
Rozložení repozitáře
Monorepo je kompletní Laravel aplikace, která jádro instaluje z lokální cesty (Composer ji symlinkuje):
| Cesta | Co to je |
|---|---|
packages/laravix/cms |
Distribuované jádro — modely, Filament resources, bloky, API, příkazy. Jediný balíček v monorepu. |
packages/laravix/cms/resources/themes/default |
Zdroj výchozí šablony, který se při instalaci publikuje do themes/. |
themes/default |
Výchozí šablona, jak existuje v této aplikaci — viz Struktura šablony. |
app/, config/, routes/ |
Hostitelská aplikace — tenké lepidlo kolem balíčku. |
.github/workflows/split.yml |
Při každém pushi a tagu zrcadlí packages/laravix/cms do samostatného repozitáře Laravix/cms. |
First-party pluginy se přestěhovaly. Pluginy Docs a Changelog tu dřív žily jako
packages/laravix/docs-pluginapackages/laravix/changelog-plugin. Ve verzi v0.11.0 byly přesunuty mimo jádro a dnes sídlí v repozitáři webu laravix.com, kterýlaravix/cmskonzumuje jako každá jiná instalace. Pořád jsou referenčními příklady pro Vývoj pluginů — jen nejsou v tomhle repozitáři.
Požadavky
- Docker (monorepo běží v kontejnerech Laravel Sail: PHP, MySQL, Meilisearch, Mailpit)
- Composer a PHP 8.4 na hostiteli pro první
composer install - Node.js pro build assetů
Ne
laravix:docker. Ten příkaz generuje Docker prostředí pro instalaci Laravixu — patří k distribuci, ne k tomuhle repozitáři. Monorepo má vlastnícompose.yamlřízený Sailem.
Setup
git clone https://github.com/MartinKoudela/laravix-cms.git
cd laravix-cms
composer install
cp .env.example .env
vendor/bin/sail up -d
vendor/bin/sail artisan key:generate
vendor/bin/sail artisan migrate --seed
vendor/bin/sail npm install
vendor/bin/sail npm run build
Otevřete http://localhost/admin a přihlaste se. Seeder zakládá tři účty, všechny s heslem example_:
| Přístup | |
|---|---|
[email protected] |
Super admin — všechny weby |
[email protected] |
Běžný uživatel |
[email protected] |
Běžný uživatel |
Tip: Všechny PHP, Artisan, Composer a Node příkazy pouštějte přes
vendor/bin/sail, aby běžely uvnitř kontejnerů. Pomůže alias:alias sail='vendor/bin/sail'.
Každodenní příkazy
vendor/bin/sail artisan test --compact # spuštění Pest testů
vendor/bin/sail bin pint --dirty # formátování změněných PHP souborů
vendor/bin/sail npm run dev # Vite dev server s hot reloadem
vendor/bin/sail artisan pail # sledování logů aplikace
Stack: Laravel 13, Filament 5, Livewire 4, Tailwind CSS 4, GrapesJS, Meilisearch, Pest 4 na PHP 8.4.
Úpravy jádra
Balíčky v packages/*/* jsou nainstalované jako symlinkované path repozitáře, takže změny souborů v packages/laravix/cms platí okamžitě — žádný composer update není potřeba.
Frontendové změny (admin theme, JavaScript builderu) vyžadují rebuild: vendor/bin/sail npm run build, nebo nechte běžet npm run dev.
Řešení problémů
„Unable to locate file in Vite manifest". Assety ještě nejsou sestavené — spusťte vendor/bin/sail npm run build.
Přihlášení se správnými údaji selhává. Uživatel nemá žádný web a není super admin. Vytvořte správný účet přes vendor/bin/sail artisan laravix:user a na dotaz o super adminovi odpovězte ano.
Port 80 je obsazený. Nastavte APP_PORT v .env před sail up.
Související články
- Instalace — distribuce pro stavbu webů
- Vývoj pluginů
- Struktura šablony