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
- 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.
- Á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.
- Új, üres példány esetén másold a
.env.examplefájlt.envnéven, és töltsd ki a kötelező értékeket. A sablont soha ne másold egy meglévő konfiguráció fölé. - Új példányhoz tarts meg egyedi
ECS_INSTANCE_IDazonosítót. A megtartott adatokhoz őrizd meg a régi azonosítót és a titkosítási kulcsokat. - 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=false | A 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=true | A remote konfigurációs útvonal valódi helyi szolgáltatásokat és értékeket használ. |
ECS_DEPLOYMENT_MODE=partialRemote, ECS_REMOTE_SIMULATION=false | Csak 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.