Skip to main content

Első fejlesztői setup

A setupot a motherrepo gyökerében futtasd, ahol a 0daysetup.sh és a compose.yaml található. A programok Docker-konténerekben futnak. A tmux a konténerek terminálját jeleníti meg, nem indít külön Node- vagy .NET-alkalmazásokat.

Ha a Git, a Docker vagy a repository hiányzik, kövesd az első installation útmutatót. Egy már működő gépen a napi parancsokat használd. A sima újraindítás nem építi újra a production artifactokat, és nem futtat sémainicializálást. Lefordított kódmódosítás esetén használd a külön, explicit production publikálási eljárást.

Olvasd el a dokumentációt a setup előtt​

bash docsStarter.sh

Ehhez Docker szükséges, .env fájl nem. Nyisd meg a kiírt localhost URL-t. A Ctrl+C csak ezt az eldobható dokumentációs konténert távolítja el. Egy független Architecture checkout ugyanezt a parancsot támogatja.

Készítsd elő a konfigurációt és a hozzáférést​

  1. Szerezz hozzáférést a privát motherrepo-hoz és a szükséges submodule repository-khoz. Minden submodule-nak külön jogosultsága van.
  2. Állítsd vissza az ellenőrzött konfigurációs archívumot a környezeti titkok mentése és visszaállítása útmutatón keresztül. A visszaállítás a hiányzó fájlokat pótolja, a meglévőket megtartja.
  3. Új, üres példány esetén másold a .env.example fájlt .env néven, és töltsd ki a kötelező értékeket. A sablont soha ne másold egy meglévő konfiguráció fölé.
  4. Új példányhoz tarts meg egyedi ECS_INSTANCE_ID azonosítót. A megtartott adatokhoz őrizd meg a régi azonosítót és a titkosítási kulcsokat.
  5. Töltsd ki a Cloudflare-bemeneti és tulajdonosi előfeltételeket. Készítsd elő a fiókbejelentkezést, valamint a Microsoft Graph vagy a Google Cloud hozzáférést.

A gyökér .env rejtett szövegfájl. Ne adj neki .txt kiterjesztést, és ne futtasd source .env paranccsal. A runtime a kiválasztott beállításokat átadja az egyes fogyasztóknak. Ne szerkeszd a generált ECS_EFFECTIVE_* értékeket.

A setup előtt válassz egyértelmű memóriakeretet. A standard teljes kiválasztás ECS_MEMORY_GIB=40 értéket használ. A teljes Microsoft-, Google- és FormGen-kiválasztás 44 GiB-ot használ. A host- és build-tartalék ezen felül van. Olvasd el a kapacitási előfeltételeket.

Válaszd ki az infrastruktúra-elhelyezést​

KonfigurációEredmény
ECS_DEPLOYMENT_MODE=fulllocal, ECS_REMOTE_SIMULATION=falseA kiválasztott infrastruktúra helyben fut. A hiányzó kiválasztók megtartják ezt az alapértelmezést.
ECS_DEPLOYMENT_MODE=partialRemote, ECS_REMOTE_SIMULATION=trueA remote konfigurációs útvonal valódi helyi szolgáltatásokat és értékeket használ.
ECS_DEPLOYMENT_MODE=partialRemote, ECS_REMOTE_SIMULATION=falseCsak a Kafka, a ClamAV, a Collabora, a Tika és a Qdrant használ távoli szolgáltatásokat.

A fulllocal a true szimulációs értékkel érvénytelen. A szimuláció nem csökkenti a helyi erőforrásigényt.

A valódi remote módhoz három elérhető Kafka advertised endpoint, cluster-azonosító, app- és admin hitelesítő adatok, valamint előkészített szolgáltatás-endpointok kellenek. Szükség van hitelesített scanner- és extractor-átvitelre, valamint egy korlátozott Office callbackre. A laptopos setup nem provisionálja a Coolify-szolgáltatásokat, és nem másol Kafka- vagy Qdrant-adatokat. Először végezd el a remote előkészítést.

Ellenőrizd a kapacitást, és futtasd a setupot​

Hideg indítás előtt ellenőrizd a meglévő terhelést:

uptime
docker ps
tmux list-sessions
bash memmonitor.sh

Linuxon és WSL-en nézd meg a free -h kimenetét is. macOS-en ellenőrizd a Docker Desktop erőforrásait és az Activity Monitort. Ha nincs tmux-session, az nem alkalmazáshiba. A monitorból a Ctrl+C billentyűvel lépj ki.

Válaszd ki, melyik egyetlen teljes MailGen stack maradhat aktív a hideg bootstrap előtt. Őrizd meg a nem kapcsolódó szolgáltatásokat. A setup nem állítja le helyetted a másik futó MailGen-példányt, hanem hibával leáll.

A kész gyökérkonfigurációval futtasd:

bash 0daysetup.sh
bash devstack.sh status

A setup előkészíti a host-eszközöket és a kiválasztott submodule-okat. A recGen submodule (VoiceNextWeb) része a submodule-készletnek: a clone-submodules.sh a mentett vagy alapértelmezett main ágon inicializálja és frissíti, mint a többi repository-t; a 0daysetup.sh hiány esetén klónozza, a pusher.sh pedig felveszi a push-listába. A recGen/.env az envzipper.sh archívumának része. A docker/runtime/setup.py megőrzi a meglévő hitelesítő adatokat, hozzáadja a számított URL-eket és a hiányzó generált titkokat, ellenőrzi a tulajdonost és a memóriát, és előkészíti a proxy- és kliensroutingot.

Ezután production végrehajtással építi és indítja a szolgáltatásokat, beleértve a FormGen- és a docs-mcp profilokat. A provider-jelölők további szolgáltatásokat választanak ki. Az elhelyezést a két környezeti kiválasztó adja.

Ez nem reset. Ha a setup leáll, javítsd a jelentett előfeltételt, majd futtasd újra. A Setup complete és a Stack ready indítási ellenőrzőpontok. Nyisd meg a kiírt Account- és BFF-URL-eket is, és ellenőrizd az első bejelentkezést. Egy futó konténer nem bizonyítja a mailboxok szinkronizálását.

A host-tanúsítvány-beállítás arra a gépre vonatkozik, amelyen a setup fut. A WSL megbízhatósága nem állítja be automatikusan a Windowst vagy más böngészős hostot. Ehhez az útvonalhoz nincs szükség külön host pnpm dev futtatásra, kézi backend tmux-folyamatra vagy kötelező kézi certgen.sh lépésre.

A régi --profiles-only segédprogram nem készít elő Dockert. Ne használd az elavult --chbranch vagy --pinned opciókat.

Folytasd a fejlesztést​

A sikeres setup production végrehajtást tart meg. A normál újraindítás a mentett módokat folytatja. Friss development indításhoz használd a bash startDevServers.sh parancsot --prod nélkül. Egy működő setup módosítása előtt olvasd el a végrehajtási módokat.

Ha az ECS_APPLICATION_SOURCE_ROOT egy átnézett pillanatképet választ, a runtime azt a forrást használja. A munkamásolat szerkesztése nem feltétlenül változtatja meg az alkalmazást. Tarts meg production forrásrögzítést (pin), amíg egy jóváhagyott kiadás nem váltja le.

Használd a napi parancsokat a célzott helyreállításhoz, a naplókhoz és a változatlan konténerek folytatásához. Egy környezeti archívum nem helyettesíti az adatbázis-, objektumtároló- vagy kulcsmentéseket. Remote módban a reset akkor is tiltott, ha szimuláció fut. Ne válts elhelyezést a védelem megkerülésére.