Féin-óstáil
Is é Node agus eolaire in-scríofa an t-aon riachtanas. Léadh na ráitis thíos ó na comhaid a ainmnítear ina dteannta; níl aon rud nár féidir a dhearbhú anseo.
Pointí iontrála
- Éilíonn package.json Node >= 22.5. Is é an stór SQLite modúl node:sqlite Node féin.
- Níl aon liosta spleáchas ar chor ar bith: ritheann aipeanna, pacáistí, scripteanna agus tástálacha ar leabharlann chaighdeánach Node, agus ní shuiteálann an Dockerfile aon rud.
- Tá trí phróiseas ann; osclaíonn gach ceann acu an bunachar sonraí agus ritheann sé an imirce ag am tosaithe.
node apps/web/server/main.mjs # hub + console + embedded API
API_EMBED=false node apps/api/src/main.mjs # API only, no pages
node apps/worker/src/run.mjs # probes, latency, rollup, housekeeping
Stór Sonraí
Ní theastaíonn freastalaí ó DATABASE_URL=sqlite:./data/llmeu.db, agus cruthaítear an eolaire agus an comhad ar an gcéad oscailt. Ritheann an láimhseáil i mód WAL le heochracha coimhthíocha ar siúl agus am istigh gnóthach 5 s.
Is é packages/shared/src/db/schema.sql an scéimre. Níl ann ach cruthú agus tá sé ionannchumhachtach, mar sin tá sé sábháilte é a rith arís; caithfear colún a chuirtear le tábla atá ann cheana a dhearbhú freisin sa chéim bhreise i packages/shared/src/db/index.mjs.
Tógann URL postgres:// brainse oiriúnaitheora ar leith. Teastaíonn an pacáiste pg ón mbrainse sin, nach bhfuil sé dearbhaithe mar spleáchas, agus deir ceanntásc schema.sql gur cheart an cosán Postgres a mheas mar neamhfhíoraithe go dtí go mbeidh tiománaí fíor agus imirce thástáilte ann. Is é SQLite an cosán a ritheann an stór seo.
CLI Oibreora
Léann node scripts/db.mjs DATABASE_URL agus ní theastaíonn aon seirbhísí. Orduithe:
| Ordú | Cad a dhéanann sé |
|---|---|
| node scripts/db.mjs migrate | Cuireann sé schema.sql i bhfeidhm agus tuairiscíonn sé líon na ráiteas. |
| node scripts/db.mjs seed | Ionsáíonn nó athnuann sé an catalóg agus an eagraíocht taispeána, agus scríobhann sé an eochair taispeána chuig data/demo-key.txt le mód 0600. |
| node scripts/db.mjs reset | Do SQLite amháin: baintear an comhad bunachar sonraí agus a chompánaigh -wal agus -shm, ansin déantar imirce agus síolú. Ar Postgres diúltaíonn sé. |
| node scripts/db.mjs status | Priontálann sé an t-inneall, líon na dtáblaí agus líon na rónna de gach tábla neamhfholamh. |
| node scripts/db.mjs demo-key | Eisíonn sé eochair úr don eagraíocht taispeána agus priontálann sé í uair amháin. |
| node scripts/db.mjs passwd <email> | Socraíonn sé pasfhocal úsáideora ón bhfreastalaí agus scriosann sé gach seisiún den úsáideoir sin. Is é seo an cosán téarnaimh nuair nach bhfuil aon iompar poist cumraithe. Gan --password gineann sé ceann agus priontálann sé uair amháin é. |
Timpeallacht
Grúpáilte mar a ghrúpálann .env.example iad.
| Grúpa | Athróga | Nótaí |
|---|---|---|
| URLanna agus poirt | APP_URL, API_URL, WEB_PORT, API_PORT, API_EMBED, PUBLIC_API_URL | Is é 8088 an port API réamhshocraithe, ní 8080. Tá API_EMBED=false le haghaidh imscartha a ritheann an API mar phróiseas dá chuid féin; is é PUBLIC_API_URL an bonn a thaispeántar i sleachta doiciméad. |
| Stór Sonraí | DATABASE_URL, REDIS_URL | Roghnaíonn DATABASE_URL an stór; tá REDIS_URL curtha in áirithe don scuaine jabanna agus ní léann cosán cód v1 é. |
| Tátal | INFERENCE_MOCK, GPU_ENABLED, VLLM_BASE_URL, VLLM_REGION, VLLM_MODEL_VERSION, VLLM_BASE_URL_<REGION>, DEFAULT_REGION, PARTNER_* | Féach ar an gcuid tátal thíos; clúdaíonn PARTNER_* bun-URL an pháirtí, an réigiún, an aicme ceannasachta agus an eochair API. |
| Billeáil | FX_EUR_USD | Coinnítear an leabhar mór i micrea USD agus díorthaítear EUR le haghaidh taispeána ag FX_EUR_USD. |
| Ríomhphost | MAIL_FROM, MAIL_SMTP_HOST, MAIL_SMTP_PORT, MAIL_SMTP_SECURE, MAIL_SMTP_USER, MAIL_SMTP_PASS, MAIL_TIMEOUT_MS, MAIL_API_URL, MAIL_API_KEY | Socraigh MAIL_SMTP_HOST le haghaidh SMTP, nó MAIL_API_URL le MAIL_FROM le haghaidh athsheoltóra HTTP, nó ná socraigh ceachtar acu. |
| Slándáil | NODE_ENV, LLMEU_IP_SALT, LLMEU_DEMO_PASSWORD, LLMEU_KEY_ENV | Cuireann NODE_ENV=production marc Secure ar fhianáin seisiúin. Salannann LLMEU_IP_SALT an IP cliaint haisithe agus ba cheart é a athrú de réir gach imscartha. Cuireann LLMEU_KEY_ENV réimír le heochracha ginte: llmeu_live_ nó llmeu_test_. |
| Ilghnéitheach | LOG_LEVEL | Socraíonn LOG_LEVEL an t-íosleibhéal loga. |
Docker
Tá Compose agus an íomhá roghnach: ní éilíonn sraith an stóir féin Docker, agus is próiseas áitiúil gan aon seirbhísí an príomhchosán.
- Ritheann an phróifíl réamhshocraithe web: poirt 3000 agus 8088, SQLite ar an toirt llmeu-data ag /app/data, an API leabaithe, agus seiceáil shláinte ar /healthz.
- Ritheann an íomhá chéanna an t-oibrí le node apps/worker/src/run.mjs, ag fanacht go n-éiríonn web sláintiúil agus ag roinnt an toirt llmeu-data.
- Tá dhá phróifíl bhreise as de réir réamhshocraithe: postgres (postgres:16-alpine) agus redis (redis:7-alpine, forchoimeádta agus ní léann cosán cóid v1 iad).
- Ritheann an próifíl gpu vllm/vllm-openai le forchoimeád feiste NVIDIA agus feistíonn sé meáchain inléite amháin ón óstach; níl sé cumasaithe de réir réamhshocraithe, mar bheadh sé bréagach tátal AE a éileamh gan GPU.
- Is é an Dockerfile FROM node:24-alpine le tini, gan céim tógála agus gan suiteáil spleáchas, ritheann sé mar úsáideoir node, ní scríobhann sé ach faoi /app/data, nochtann sé 3000 agus 8088, agus tosaíonn sé apps/web/server/main.mjs.
Cúltacaí
Scríobhann node scripts/backup.mjs gan aon bhratacha ./backups/llmeu-<stamp>.db. Déantar SQLite a chóipeáil le VACUUM INTO, ní le cp, mar is féidir le bunachar WAL beo a chóipeáiltear le cp staid stróicthe nó mharbh a thabhairt.
node scripts/backup.mjs # ./backups/llmeu-<stamp>.db
node scripts/backup.mjs --out /srv/backups/ # explicit destination
node scripts/backup.mjs --verify ./backups/llmeu-<stamp>.db
node scripts/backup.mjs --restore ./backups/llmeu-<stamp>.db --yes
node scripts/backup.mjs --list
Fíoraítear gach cúltaca SQLite sula dtuairiscíonn an script rath: athchóirítear é i gcóip shealadach, caithfidh PRAGMA integrity_check ok a thabhairt ar ais, cuirtear an scéimre i bhfeidhm arís, agus priontáiltear líon na rónna do mhúnlaí, eagraíochtaí agus úsáideoirí.
Le URL postgres:// úsáideann an script pg_dump --format=custom agus teastaíonn pg_dump ar PATH; ní féidir dump a oscailt mar bhunachar, mar sin teastaíonn athchóiriú sealadach dá líon na rónna.
Ríomhphost
Úsáideann ríomhphost idirbheartach — athshocrú pasfhocail, fíorú seoltaí, cuirí — MAIL_SMTP_* nó MAIL_API_URL le MAIL_FROM. Roghnaítear an t-iompróir uair amháin ag am tosaithe agus tuairiscítear é ar gach leathanach a dteastaíonn ríomhphost uaidh.
Is staid thacaithe é imscaradh gan ceachtar acu: oibríonn clárú, síniú isteach, athrú pasfhocail, foirne agus cuirí, ach ní féidir ríomhphost athshocraithe pasfhocail ná fíoraithe a phróiseáil ansin. Deir na leathanaigh é sin, agus is é node scripts/db.mjs passwd <email> an bealach téarnaimh.
Innill chúil tátail
Ainmníonn ró pointe deiridh am rite agus réigiún, agus roghnaíonn clárlann na n-inneall cúil an t-adapter de réir réigiúin, mar sin ní féidir ach le meaisín sa réigiún a ainmnítear freagra a thabhairt ar phointe deiridh.
- Coimeádann INFERENCE_MOCK=true an t-inneall cúil forbartha cinntitheach, nach dteastaíonn GPU ná meáchain uaidh.
- Coimeádann GPU_ENABLED=false inneall cúil bainistithe amach; le GPU_ENABLED=true, feidhmíonn VLLM_BASE_URL don réigiún amháin a ainmnítear le VLLM_REGION.
- Socraíonn imscaradh le roinnt réigiún athróg amháin in aghaidh an réigiúin, ainmnithe i ndiaidh sluga an réigiúin (mar shampla VLLM_BASE_URL_DE_FRA). Diúltaítear do phointe deiridh i réigiún gan inneall cúil cumraithe, seachas é a sheirbheáil ó mheaisín i réigiún eile.
- Tagann inneall cúil páirtí ó PARTNER_BASE_URL_<REGION> agus glacann siad PARTNER_SOVEREIGNTY agus PARTNER_API_KEY; ceadaíonn an freastalaí úsáid pháirtí nuair a bhíonn PARTNER_BASE_URL socraithe.
Gan GPU cumraithe, freagraíonn an t-inneall cúil forbartha cinntitheach agus deir a aschur nach rith meáchain fhíora ar bith agus go dteastaíonn VLLM_BASE_URL agus an bhratach gpu_enabled ó thátal céadpháirtí. Bheadh rath ionadaíoch a d'fhéachfadh fíor mar an t-aon rud nár cheart don táirge seo a sheoladh riamh.