Tovább a tartalomhoz

Első alkalmazás létrehozása

  • Bun telepítve (bun --version ≥ 1.0)
  • Futó Racona példány (Docker-rel vagy lokálisan) — szükséges az alkalmazás feltöltéséhez és a Racona rendszeren belüli teszteléséhez (nem csak standalone módban). Lásd: Docker-alapú futtatás

A Racona-hoz elérhető CLI segítségével hozd létre az új alkalmazás projektet:

Terminál
bunx @racona/cli

Az interaktív wizard végigvezet a beállításokon:

  1. Alkalmazás ID — kebab-case azonosító (pl. my-app)
  2. Megjelenítési név — amit a felhasználók látnak
  3. Leírás — rövid leírás
  4. SzerzőNév <email> formátumban
  5. Funkciók — válaszd ki, mire van szükséged (lásd lent)
  6. Függőségek telepítése? — automatikusan futtatja a bun install-t

Fix template-ek helyett a CLI lehetővé teszi, hogy egyedi funkciókból rakd össze a projektedet:

FunkcióMit ad hozzá
sidebarOldalsáv navigáció (menu.json, AppLayout mód, több oldal komponens)
databaseSQL migrációk, sdk.data.query() támogatás, lokális dev adatbázis Docker-rel
remote_functionsserver/functions.ts, sdk.remote.call(), lokális dev szerver
notificationssdk.notifications.send() támogatás
i18nlocales/hu.json + locales/en.json, sdk.i18n.t() támogatás
datatableDataTable komponens insert formmal, sor akciókkal, teljes i18n

A struktúra a kiválasztott funkcióktól függ. Példa minden funkcióval engedélyezve:

my-app/
├── manifest.json # Alkalmazás metaadatok és jogosultságok (kötelező)
├── package.json
├── vite.config.ts
├── tsconfig.json
├── menu.json # (ha sidebar)
├── build-all.js # (ha sidebar) fő + összes komponens buildelése
├── dev-server.ts # (ha remote_functions) lokális dev szerver
├── docker-compose.dev.yml # (ha database) lokális Postgres
├── .env.example # (ha database)
├── src/
│ ├── App.svelte # Fő komponens / sidebar shell
│ ├── main.ts # Belépési pont, Mock SDK init
│ ├── plugin.ts # IIFE build belépési pont
│ └── components/ # (ha sidebar)
│ ├── Overview.svelte
│ ├── Settings.svelte
│ ├── Datatable.svelte # (ha datatable)
│ ├── Notifications.svelte # (ha notifications)
│ └── Remote.svelte # (ha remote_functions)
├── server/ # (ha remote_functions)
│ └── functions.ts
├── migrations/ # (ha database)
│ ├── 001_init.sql
│ └── dev/
│ └── 000_auth_seed.sql
├── locales/ # (ha i18n)
│ ├── hu.json
│ └── en.json
└── assets/
└── icon.svg

Ha a datatable + database + remote_functions mind be van kapcsolva, a generált Datatable.svelte tartalmazza:

  • Adattáblát sdk.data.query() hívással töltve
  • Beszúró űrlapot a táblázat alatt (name + value mezők), core CSS változókkal stílusozva
  • Sor akciókat: Duplikálás (elsődleges) és Törlés (másodlagos, destructive) — törlés sdk.ui.dialog() megerősítő modallal
  • Teljes i18n támogatást — minden szöveg t() hívással, fordítási kulcsok a locales/ mappában

A generált server/functions.ts exportálja:

export async function example(params, context) { ... }
export async function insertItem(params, context) { ... }
export async function deleteItem(params, context) { ... }
export async function duplicateItem(params, context) { ... }

Minden függvény az alkalmazás saját app__<id> adatbázis sémájára van korlátozva a context.pluginId alapján.

Ha a sidebar be van kapcsolva, az alkalmazás AppLayout módban fut — a Racona navigációs sávot jelenít meg az alkalmazás ablakának bal oldalán. A menu.json határozza meg a navigációs elemeket:

[
{ "labelKey": "menu.overview", "href": "#overview", "icon": "Info", "component": "Overview" },
{ "labelKey": "menu.settings", "href": "#settings", "icon": "Settings", "component": "Settings" }
]

Minden component érték a src/components/ mappában lévő fájlra mutat.

Ha a database be van kapcsolva, a projekt tartalmazza:

  • migrations/001_init.sql — kezdeti séma (a táblaneveket a Racona installer automatikusan prefixeli app__<id>-vel)
  • migrations/dev/000_auth_seed.sql — minimális auth séma lokális fejlesztéshez
  • docker-compose.dev.yml — lokális Postgres konténer
  • .env.exampleDATABASE_URL és PORT konfiguráció

Lokális fejlesztési workflow:

Terminál
cp .env.example .env
bun db:up # Lokális Postgres indítása
bun dev:server # Dev szerver indítása (automatikusan futtatja a migrációkat)
bun dev # Vite dev szerver indítása (külön terminálban)

Vagy egy lépésben:

Terminál
bun dev:full # dev:server + dev párhuzamosan
Terminál
cd my-app
bun install
Terminál
bun run build

Ez létrehozza a dist/index.iife.js fájlt (és a komponens bundle-öket, ha sidebar engedélyezve van) — ezeket tölti be a Racona.