Scripts referencia
Az ElyOS egy Bun workspaces alapú monorepo. A root package.json tartalmazza a fő parancsokat, amelyek a workspace csomagok scriptjeit hívják meg.
Monorepo struktúra
Szekció neve “Monorepo struktúra”elyos-core/├── package.json # Root scripts (bun --filter használattal)├── apps/│ └── web/│ └── package.json # @elyos/core scripts└── packages/ └── database/ └── package.json # @elyos/database scriptsFontos: A root scripteket bárhonnan futtathatod a monorepo-ban. Az apps/web specifikus scriptjeit csak az apps/web könyvtárból.
Fejlesztés
Szekció neve “Fejlesztés”bun app:dev
Szekció neve “bun app:dev”Lokáció: Root
Futtatja: apps/web → dev script
Elindítja a SvelteKit dev szervert lokális .env fájllal (Varlock nélkül).
bun app:devMit csinál:
- Betölti a
../../.envfájlt (root.env) - Elindítja a Vite dev szervert (
http://localhost:5173) - Hot module replacement (HMR) engedélyezve
Mikor használd: Lokális fejlesztéshez, gyors iterációhoz.
bun app:dev:varlock
Szekció neve “bun app:dev:varlock”Lokáció: Root
Futtatja: apps/web → dev:varlock script
Elindítja a SvelteKit dev szervert Varlock-kal (Infisical secrets).
bun app:dev:varlockMit csinál:
- Varlock betölti a secreteket az Infisical-ból
- Validálja az env változókat
- Elindítja a Vite dev szervert
Mikor használd: Ha az éles környezethez hasonló konfigurációt szeretnél tesztelni.
Build és preview
Szekció neve “Build és preview”bun app:build
Szekció neve “bun app:build”Lokáció: Root
Futtatja: apps/web → build script
Production build készítése.
bun app:buildMit csinál:
- SvelteKit production build (
vite build) - Adapter-node kimenet:
apps/web/build/ - Statikus asszetek:
apps/web/build/client/
bun app:preview
Szekció neve “bun app:preview”Lokáció: apps/web
Futtatja: preview script
Elindítja a production build-et lokálisan.
cd apps/webbun previewMit csinál:
- Elindítja az Express + Socket.IO szervert (
server.js) - Kiszolgálja a build-elt alkalmazást
- Port:
process.env.PORTvagy3000
Előfeltétel: Előbb futtasd a bun app:build parancsot.
Típusellenőrzés
Szekció neve “Típusellenőrzés”bun app:check
Szekció neve “bun app:check”Lokáció: Root
Futtatja: apps/web → check script
TypeScript és Svelte típusellenőrzés.
bun app:checkMit csinál:
svelte-kit sync— generálja a SvelteKit típusokatsvelte-check— ellenőrzi a Svelte komponensekettsc— TypeScript típusellenőrzés
Mikor használd: Commit előtt, CI/CD-ben.
bun check:watch
Szekció neve “bun check:watch”Lokáció: apps/web
Folyamatos típusellenőrzés watch módban.
cd apps/webbun check:watchAdatbázis
Szekció neve “Adatbázis”bun db:init
Szekció neve “bun db:init”Lokáció: Root
Futtatja: packages/database → db:init script
Első indítás — teljes adatbázis inicializálás.
bun db:initMit csinál:
db:generate— migrációk generálásadb:migrate— migrációk futtatásadb:seed— seed adatok betöltése
Mikor használd: Első telepítéskor vagy teljes reset után.
bun db:generate
Szekció neve “bun db:generate”Lokáció: Root
Futtatja: packages/database → db:generate script
Drizzle migrációk generálása a séma változásokból.
bun db:generateMit csinál:
- Összehasonlítja a
src/schemas/fájlokat az adatbázissal - Generál SQL migrációs fájlokat a
drizzle/mappába
Mikor használd: Séma módosítás után (új tábla, oszlop, index, stb.).
bun db:migrate
Szekció neve “bun db:migrate”Lokáció: Root
Futtatja: packages/database → db:migrate script
Függőben lévő migrációk futtatása.
bun db:migrateMit csinál:
- Futtatja az összes új migrációt a
drizzle/mappából - Frissíti a
__drizzle_migrationstáblát
bun db:seed
Szekció neve “bun db:seed”Lokáció: Root
Futtatja: packages/database → db:seed script
Seed adatok betöltése.
bun db:seedMit csinál:
- Futtatja a
src/seeds/mappában lévő seed scripteket - Létrehozza az admin felhasználót (
ADMIN_USER_EMAILalapján) - Betölti az alapértelmezett alkalmazásokat, szerepköröket, stb.
bun db:studio
Szekció neve “bun db:studio”Lokáció: Root
Futtatja: packages/database → db:studio script
Drizzle Studio megnyitása.
bun db:studioMit csinál:
- Elindítja a Drizzle Studio web felületet
- Böngészőben megnyitja:
https://local.drizzle.studio - Vizuális adatbázis böngésző és szerkesztő
bun db:reset
Szekció neve “bun db:reset”Lokáció: Root
Futtatja: packages/database → db:reset script
Adatbázis teljes visszaállítása.
bun db:resetMit csinál:
- Eldobja az összes táblát
- Újra futtatja a migrációkat
- Betölti a seed adatokat
Figyelem: Minden adat elvész!
Docker
Szekció neve “Docker”bun docker:db
Szekció neve “bun docker:db”Lokáció: Root
Csak a PostgreSQL konténer indítása.
bun docker:dbMit csinál:
- Elindítja a
postgresszolgáltatást - Port:
5432 - Adatok:
docker/postgres-data/(perzisztens)
Mikor használd: Lokális fejlesztéshez, ha csak az adatbázisra van szükséged.
bun docker:up
Szekció neve “bun docker:up”Lokáció: Root
Teljes stack indítása (ElyOS + PostgreSQL).
bun docker:upMit csinál:
- Build-eli a Docker image-et
- Elindítja az
appéspostgresszolgáltatásokat - Detached módban (
-d)
Elérhető: http://localhost:3000
bun docker:rebuild
Szekció neve “bun docker:rebuild”Lokáció: Root
Teljes újraépítés cache nélkül.
bun docker:rebuildMit csinál:
--no-cachebuild- Újraindítja a konténereket
Mikor használd: Ha a cache-elt rétegek problémát okoznak.
bun docker:down
Szekció neve “bun docker:down”Lokáció: Root
Összes konténer leállítása.
bun docker:downMit csinál:
- Leállítja és eltávolítja a konténereket
- A volume-ok megmaradnak (adatok nem vesznek el)
bun docker:logs
Szekció neve “bun docker:logs”Lokáció: Root
Konténer naplók követése.
bun docker:logsMit csinál:
- Valós időben követi a konténerek naplóit
Ctrl+Ca kilépéshez
bun docker:build
Szekció neve “bun docker:build”Lokáció: Root
Docker image build (multi-platform).
bun docker:buildTag: elyos/core:latest
bun docker:build:amd64
Szekció neve “bun docker:build:amd64”Lokáció: Root
AMD64 (x86_64) platform specifikus build.
bun docker:build:amd64Tag: elyos/core:latest-amd64, elyos/core:0.1.0-amd64
bun docker:build:arm64
Szekció neve “bun docker:build:arm64”Lokáció: Root
ARM64 (Apple Silicon, ARM szerverek) platform specifikus build.
bun docker:build:arm64Tag: elyos/core:latest-arm64, elyos/core:0.1.0-arm64
bun docker:save:amd64 / bun docker:save:arm64
Szekció neve “bun docker:save:amd64 / bun docker:save:arm64”Lokáció: Root
Docker image mentése .tar fájlba.
bun docker:save:amd64Kimenet: docker/elyos-core.tar
Mikor használd: Offline telepítéshez, image megosztáshoz.
Tesztelés
Szekció neve “Tesztelés”bun test
Szekció neve “bun test”Lokáció: apps/web
Összes teszt futtatása egyszer.
cd apps/webbun testMit csinál:
- Vitest unit tesztek
--runmód (nem watch)
bun test:watch
Szekció neve “bun test:watch”Lokáció: apps/web
Tesztek watch módban.
cd apps/webbun test:watchMit csinál:
- Újrafuttatja a teszteket fájl változáskor
- Interaktív mód
bun test:pbt
Szekció neve “bun test:pbt”Lokáció: apps/web
Csak property-based tesztek futtatása.
cd apps/webbun test:pbtMit csinál:
- Csak a
Propertyszót tartalmazó teszteket futtatja - fast-check alapú tesztek
Kódminőség
Szekció neve “Kódminőség”bun lint
Szekció neve “bun lint”Lokáció: apps/web
Prettier és ESLint ellenőrzés.
cd apps/webbun lintMit csinál:
prettier --check .— formázás ellenőrzéseslint .— kód minőség ellenőrzés
bun format
Szekció neve “bun format”Lokáció: apps/web
Automatikus kód formázás.
cd apps/webbun formatMit csinál:
prettier --write .— formázza az összes fájlt
Egyéb
Szekció neve “Egyéb”bun package:update
Szekció neve “bun package:update”Lokáció: apps/web
Interaktív csomag frissítés.
cd apps/webbun package:updateMit csinál:
bun update -i— interaktív frissítő- Kiválaszthatod, melyik csomagokat frissíted
Gyakori workflow-k
Szekció neve “Gyakori workflow-k”Első indítás
Szekció neve “Első indítás”# 1. Függőségekbun install
# 2. Env fájlcp .env.example .env# Szerkeszd a .env fájlt
# 3. Adatbázisbun docker:dbbun db:init
# 4. Dev szerverbun app:devSéma módosítás
Szekció neve “Séma módosítás”# 1. Módosítsd a packages/database/src/schemas/ fájlokat
# 2. Generálj migrációtbun db:generate
# 3. Futtasd a migrációtbun db:migrate
# 4. (Opcionális) Seed újrafuttatásabun db:seedProduction build tesztelése
Szekció neve “Production build tesztelése”# 1. Buildbun app:build
# 2. Previewcd apps/webbun previewDocker telepítés
Szekció neve “Docker telepítés”# 1. Env fájl (csak bootstrap credentials)cp .env.example .env# INFISICAL_CLIENT_ID és INFISICAL_CLIENT_SECRET
# 2. Indításbun docker:up
# 3. Naplókbun docker:logsKövetkező lépések
Szekció neve “Következő lépések”- Környezeti változók → — Varlock és Infisical
- Adatbázis → — Drizzle ORM és migrációk
- Tesztelés → — Unit és property-based tesztek