--- layout: 'page' uri: '/framework/installation' position: 20 slug: 'framework-installation' parent: 'framework' navTitle: 'Installation' title: 'Installation' description: 'Instalace, build, lint, formátování a další make příkazy.' --- # Installation Od čistého klonu k běžícímu serveru s admin účtem. Nejrychlejší cesta je skill `/gk-init`, který tě tím provede krok za krokem; tahle stránka je manuální reference těch samých kroků — prerekvizity, instalace a všechny `make` příkazy. > Po rozběhnutí se podívej na `/gk-init` (a `/gk` pro přehled všech skillů). > **Založil sis repo z template („Use this template")?** Lokální instalace níže tě dostane k běžícímu serveru, ale **releasy a branch protection zůstanou nenakonfigurované**, dokud neproběhne [bootstrap z template](#nový-projekt-z-template-bootstrap) — je to krok navíc, který se z template nepřenese. ## Prerekvizity | Nástroj | Minimální verze | Ověření | |---|---|---| | Go | 1.26+ | `go version` | | Node.js | 24+ | `node --version` | | Corepack | (součást Node) | `corepack --version` | | Make | jakákoliv | `make --version` | | GitHub CLI `gh` | jen pro bootstrap z template | `gh auth status` (přihlášený, admin na repu) | ## Instalace ```bash corepack enable cp .env.example .env # upravit APP_JWT_SECRET (≥32 znaků) A nastavit APP_SEED_ADMIN_PASSWORD (jinak `seed` selže) make install # + nadrátuje git hooky (commit-msg / pre-push) make build && make serve ./bin/app seed # admin účet, heslo z APP_SEED_ADMIN_PASSWORD (povinné) ``` ## Nový projekt z template (bootstrap) Když je repo založené z gokick template, přenesou se **soubory** (workflowy, hooky config, release-please config) a CI běží hned — ale **nastavení repa** a baseline verze se nepřenášejí. Po `make install` výše (které nadrátuje lokální git hooky) proto ještě jednou spusť: ```bash make setup-github ARGS="--reset-version 0.1.0" ``` Zapne **Actions write + create-PR permissions** (bez nich release-please neotevře release PR ani nepushne tag), založí **branch ruleset** na `main` (vyžadovat PR, zákaz force-push/mazání) a `--reset-version` přepíše `.release-please-manifest.json` z gokickovy verze na tvoji výchozí — ten commitni přes PR. Bez `--reset-version` příkaz proběhne, ale verze zůstane na gokickově (`1.1.0`). Detail: `scripts/setup-github.sh --help`, kompletní recept `/gk-init`. > Ruleset je „lehčí" profil: vyžaduje PR + blokuje force-push/mazání, ale **nevynucuje zelené CI ani review** (aby release PR od release-please neuvízl na checku, který přes `GITHUB_TOKEN` neběží). Přísnější gate si přidej sám. ## Make příkazy ### Hlavní | Příkaz | Co dělá | |---|---| | `make build` | Wire DI → Vite build → Go build → `bin/app` | | `make serve` | Spustí `bin/app serve` | | `make test` | Vitest (frontend) + go test (app/ + cmd/) | | `make lint` | ESLint + vue-tsc + knip + golangci-lint + go-arch-lint + golines format-check + ts-check + documan-lint | | `make format` | ESLint Stylistic fix + golines + documan-fix | ### Vývoj | Příkaz | Co dělá | |---|---| | `make dev` | Rychlý build — Wire DI + Go binárka (bez frontendu) | | `make fe-dev` | Vite dev server s hot reload + proxy na Go backend | | `make di` | Regeneruje Wire DI container | ### Migrace | Příkaz | Co dělá | |---|---| | `make migrate-up` | Aplikuje pending migrace | | `make migrate-down` | Rollback poslední migrace | | `make migrate-status` | Zobrazí stav migrací | | `make migrate-create NAME=...` | Vytvoří nový migrační soubor | ### CLI | Příkaz | Co dělá | |---|---| | `./bin/app serve` | HTTP server + in-process scheduler + durable-task worker (sdílí jeden ctx) | | `./bin/app worker` | Jen persistentní durable-task worker (bez HTTP serveru) | | `./bin/app seed` | Admin účet (heslo z `APP_SEED_ADMIN_PASSWORD`, povinné) + superadmin (jen když je `APP_SEED_SUPERADMIN_PASSWORD`); s multitenancy on založí adminovi vlastní tenant (`APP_SEED_ADMIN_TENANT`) | | `./bin/app create-user -n <nick> -p <pass> [-e <email>] [-r admin\|user] [--tenant-id <id> \| --tenant-name <name>]` | Vytvoří uživatele (default role `admin`). S multitenancy on je tenant **povinný** — buď existující `--tenant-id`, nebo nový `--tenant-name` | | `./bin/app create-superadmin -n <nick> -p <pass> [-e <email>]` | Vytvoří platformního **superadmina** (cross-tenant přístup). Přes API ho založit nelze; druhá (a jediná další) cesta je `seed` s `APP_SEED_SUPERADMIN_PASSWORD` | | `./bin/app create-tenant -n <name>` | Vytvoří tenant a vypíše jeho id (pro `create-user --tenant-id`) | > **Multitenancy** je celé popsané ve skillu `/gk-multitenancy` (přepínač, izolace, platformní rovina, tenant tooling). --- [← Architecture](/framework/architecture.md) | [Configuration →](/framework/configuration.md)