Title: LLM f%C3%A9in-%C3%B3st%C3%A1il: rith an stack t%C3%BA f%C3%A9in %E2%80%94 LLM EU Canonical: https://llmeu.com/ga/docs/self-hosting/ Markdown mirror: https://llmeu.com/ga/docs/self-hosting.md Machine-readable: https://llmeu.com/llms.txt (index) - https://llmeu.com/llms-full.txt (full catalogue) - https://llmeu.com/llms-catalogue.json Tosaigh - [T%C3%BAs tapa](/ga/docs/quickstart/) - [Cons%C3%B3l](/ga/docs/console/) - [Imirce](/ga/docs/migration/) - [Tagairt API](/ga/docs/api/) Tagairt - [F%C3%ADordheimhni%C3%BA](/ga/docs/authentication/) - [Cr%C3%ADochphoint%C3%AD](/ga/docs/endpoints/) - [Earr%C3%A1id%C3%AD](/ga/docs/errors/) - [Teorainneacha r%C3%A1ta](/ga/docs/rate-limits/) - [Sruth%C3%BA](/ga/docs/streaming/) - [Polasaithe](/ga/docs/policies/) - [R%C3%B3d%C3%BA agus beartas](/ga/docs/routing/) - [C%C3%B3naitheacht agus r%C3%A9igi%C3%BAin](/ga/docs/residency/) - [Fianaise agus f%C3%ADor%C3%BA](/ga/docs/evidence/) - [Comhoiri%C3%BAnacht OpenAI](/ga/docs/openai-compat/) Oibri%C3%BA - [F%C3%A9in-%C3%B3st%C3%A1il](/ga/docs/self-hosting/) # F%C3%A9in-%C3%B3st%C3%A1il Is %C3%A9 Node agus eolaire in-scr%C3%ADofa an t-aon riachtanas. L%C3%A9adh na r%C3%A1itis th%C3%ADos %C3%B3 na comhaid a ainmn%C3%ADtear ina dteannta; n%C3%ADl aon rud n%C3%A1r f%C3%A9idir a dhearbh%C3%BA anseo. ## Point%C3%AD iontr%C3%A1la - %C3%89il%C3%ADonn package.json Node >= 22.5. Is %C3%A9 an st%C3%B3r SQLite mod%C3%BAl node:sqlite Node f%C3%A9in. - N%C3%ADl aon liosta sple%C3%A1chas ar chor ar bith: ritheann aipeanna, pac%C3%A1ist%C3%AD, scripteanna agus t%C3%A1st%C3%A1lacha ar leabharlann chaighde%C3%A1nach Node, agus n%C3%AD shuite%C3%A1lann an Dockerfile aon rud. - T%C3%A1 tr%C3%AD phr%C3%B3iseas ann; oscla%C3%ADonn gach ceann acu an bunachar sonra%C3%AD agus ritheann s%C3%A9 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%C3%B3r Sonra%C3%AD N%C3%AD theasta%C3%ADonn freastala%C3%AD %C3%B3 DATABASE_URL=sqlite:./data/llmeu.db, agus crutha%C3%ADtear an eolaire agus an comhad ar an gc%C3%A9ad oscailt. Ritheann an l%C3%A1imhse%C3%A1il i m%C3%B3d WAL le heochracha coimhth%C3%ADocha ar si%C3%BAl agus am istigh gn%C3%B3thach 5 s. Is %C3%A9 packages/shared/src/db/schema.sql an sc%C3%A9imre. N%C3%ADl ann ach cruth%C3%BA agus t%C3%A1 s%C3%A9 ionannchumhachtach, mar sin t%C3%A1 s%C3%A9 s%C3%A1bh%C3%A1ilte %C3%A9 a rith ar%C3%ADs; caithfear col%C3%BAn a chuirtear le t%C3%A1bla at%C3%A1 ann cheana a dhearbh%C3%BA freisin sa ch%C3%A9im bhreise i packages/shared/src/db/index.mjs. T%C3%B3gann URL postgres:// brainse oiri%C3%BAnaitheora ar leith. Teasta%C3%ADonn an pac%C3%A1iste pg %C3%B3n mbrainse sin, nach bhfuil s%C3%A9 dearbhaithe mar sple%C3%A1chas, agus deir ceannt%C3%A1sc schema.sql gur cheart an cos%C3%A1n Postgres a mheas mar neamhfh%C3%ADoraithe go dt%C3%AD go mbeidh tiom%C3%A1na%C3%AD f%C3%ADor agus imirce th%C3%A1st%C3%A1ilte ann. Is %C3%A9 SQLite an cos%C3%A1n a ritheann an st%C3%B3r seo. ## CLI Oibreora L%C3%A9ann node scripts/db.mjs DATABASE_URL agus n%C3%AD theasta%C3%ADonn aon seirbh%C3%ADs%C3%AD. Orduithe: ## Timpeallacht Gr%C3%BAp%C3%A1ilte mar a ghr%C3%BAp%C3%A1lann .env.example iad. ## Docker T%C3%A1 Compose agus an %C3%ADomh%C3%A1 roghnach: n%C3%AD %C3%A9il%C3%ADonn sraith an st%C3%B3ir f%C3%A9in Docker, agus is pr%C3%B3iseas %C3%A1iti%C3%BAil gan aon seirbh%C3%ADs%C3%AD an pr%C3%ADomhchos%C3%A1n. - Ritheann an phr%C3%B3if%C3%ADl r%C3%A9amhshocraithe web: poirt 3000 agus 8088, SQLite ar an toirt llmeu-data ag /app/data, an API leabaithe, agus seice%C3%A1il shl%C3%A1inte ar /healthz. - Ritheann an %C3%ADomh%C3%A1 ch%C3%A9anna an t-oibr%C3%AD le node apps/worker/src/run.mjs, ag fanacht go n-%C3%A9ir%C3%ADonn web sl%C3%A1inti%C3%BAil agus ag roinnt an toirt llmeu-data. - T%C3%A1 dh%C3%A1 phr%C3%B3if%C3%ADl bhreise as de r%C3%A9ir r%C3%A9amhshocraithe: postgres (postgres:16-alpine) agus redis (redis:7-alpine, forchoime%C3%A1dta agus n%C3%AD l%C3%A9ann cos%C3%A1n c%C3%B3id v1 iad). - Ritheann an pr%C3%B3if%C3%ADl gpu vllm/vllm-openai le forchoime%C3%A1d feiste NVIDIA agus feist%C3%ADonn s%C3%A9 me%C3%A1chain inl%C3%A9ite amh%C3%A1in %C3%B3n %C3%B3stach; n%C3%ADl s%C3%A9 cumasaithe de r%C3%A9ir r%C3%A9amhshocraithe, mar bheadh s%C3%A9 br%C3%A9agach t%C3%A1tal AE a %C3%A9ileamh gan GPU. - Is %C3%A9 an Dockerfile FROM node:24-alpine le tini, gan c%C3%A9im t%C3%B3g%C3%A1la agus gan suite%C3%A1il sple%C3%A1chas, ritheann s%C3%A9 mar %C3%BAs%C3%A1ideoir node, n%C3%AD scr%C3%ADobhann s%C3%A9 ach faoi /app/data, nochtann s%C3%A9 3000 agus 8088, agus tosa%C3%ADonn s%C3%A9 apps/web/server/main.mjs. ## C%C3%BAltaca%C3%AD Scr%C3%ADobhann node scripts/backup.mjs gan aon bhratacha ./backups/llmeu- .db. D%C3%A9antar SQLite a ch%C3%B3ipe%C3%A1il le VACUUM INTO, n%C3%AD le cp, mar is f%C3%A9idir le bunachar WAL beo a ch%C3%B3ipe%C3%A1iltear le cp staid str%C3%B3icthe n%C3%B3 mharbh a thabhairt. ``` node scripts/backup.mjs # ./backups/llmeu-.db node scripts/backup.mjs --out /srv/backups/ # explicit destination node scripts/backup.mjs --verify ./backups/llmeu-.db node scripts/backup.mjs --restore ./backups/llmeu-.db --yes node scripts/backup.mjs --list ``` F%C3%ADora%C3%ADtear gach c%C3%BAltaca SQLite sula dtuairisc%C3%ADonn an script rath: athch%C3%B3ir%C3%ADtear %C3%A9 i gc%C3%B3ip shealadach, caithfidh PRAGMA integrity_check ok a thabhairt ar ais, cuirtear an sc%C3%A9imre i bhfeidhm ar%C3%ADs, agus priont%C3%A1iltear l%C3%ADon na r%C3%B3nna do mh%C3%BAnla%C3%AD, eagra%C3%ADochta%C3%AD agus %C3%BAs%C3%A1ideoir%C3%AD. Le URL postgres:// %C3%BAs%C3%A1ideann an script pg_dump --format=custom agus teasta%C3%ADonn pg_dump ar PATH; n%C3%AD f%C3%A9idir dump a oscailt mar bhunachar, mar sin teasta%C3%ADonn athch%C3%B3iri%C3%BA sealadach d%C3%A1 l%C3%ADon na r%C3%B3nna. ## R%C3%ADomhphost %C3%9As%C3%A1ideann r%C3%ADomhphost idirbheartach %E2%80%94 athshocr%C3%BA pasfhocail, f%C3%ADor%C3%BA seolta%C3%AD, cuir%C3%AD %E2%80%94 MAIL_SMTP_* n%C3%B3 MAIL_API_URL le MAIL_FROM. Roghna%C3%ADtear an t-iompr%C3%B3ir uair amh%C3%A1in ag am tosaithe agus tuairisc%C3%ADtear %C3%A9 ar gach leathanach a dteasta%C3%ADonn r%C3%ADomhphost uaidh. Is staid thacaithe %C3%A9 imscaradh gan ceachtar acu: oibr%C3%ADonn cl%C3%A1r%C3%BA, s%C3%ADni%C3%BA isteach, athr%C3%BA pasfhocail, foirne agus cuir%C3%AD, ach n%C3%AD f%C3%A9idir r%C3%ADomhphost athshocraithe pasfhocail n%C3%A1 f%C3%ADoraithe a phr%C3%B3ise%C3%A1il ansin. Deir na leathanaigh %C3%A9 sin, agus is %C3%A9 node scripts/db.mjs passwd an bealach t%C3%A9arnaimh. ## Innill ch%C3%BAil t%C3%A1tail Ainmn%C3%ADonn r%C3%B3 pointe deiridh am rite agus r%C3%A9igi%C3%BAn, agus roghna%C3%ADonn cl%C3%A1rlann na n-inneall c%C3%BAil an t-adapter de r%C3%A9ir r%C3%A9igi%C3%BAin, mar sin n%C3%AD f%C3%A9idir ach le meais%C3%ADn sa r%C3%A9igi%C3%BAn a ainmn%C3%ADtear freagra a thabhairt ar phointe deiridh. - Coime%C3%A1dann INFERENCE_MOCK=true an t-inneall c%C3%BAil forbartha cinntitheach, nach dteasta%C3%ADonn GPU n%C3%A1 me%C3%A1chain uaidh. - Coime%C3%A1dann GPU_ENABLED=false inneall c%C3%BAil bainistithe amach; le GPU_ENABLED=true, feidhm%C3%ADonn VLLM_BASE_URL don r%C3%A9igi%C3%BAn amh%C3%A1in a ainmn%C3%ADtear le VLLM_REGION. - Socra%C3%ADonn imscaradh le roinnt r%C3%A9igi%C3%BAn athr%C3%B3g amh%C3%A1in in aghaidh an r%C3%A9igi%C3%BAin, ainmnithe i ndiaidh sluga an r%C3%A9igi%C3%BAin (mar shampla VLLM_BASE_URL_DE_FRA). Di%C3%BAlta%C3%ADtear do phointe deiridh i r%C3%A9igi%C3%BAn gan inneall c%C3%BAil cumraithe, seachas %C3%A9 a sheirbhe%C3%A1il %C3%B3 mheais%C3%ADn i r%C3%A9igi%C3%BAn eile. - Tagann inneall c%C3%BAil p%C3%A1irt%C3%AD %C3%B3 PARTNER_BASE_URL_ agus glacann siad PARTNER_SOVEREIGNTY agus PARTNER_API_KEY; ceada%C3%ADonn an freastala%C3%AD %C3%BAs%C3%A1id ph%C3%A1irt%C3%AD nuair a bh%C3%ADonn PARTNER_BASE_URL socraithe. Gan GPU cumraithe, freagra%C3%ADonn an t-inneall c%C3%BAil forbartha cinntitheach agus deir a aschur nach rith me%C3%A1chain fh%C3%ADora ar bith agus go dteasta%C3%ADonn VLLM_BASE_URL agus an bhratach gpu_enabled %C3%B3 th%C3%A1tal c%C3%A9adph%C3%A1irt%C3%AD. Bheadh rath ionada%C3%ADoch a d'fh%C3%A9achfadh f%C3%ADor mar an t-aon rud n%C3%A1r cheart don t%C3%A1irge seo a sheoladh riamh.