AnythingLLM
סביבת עבודה באירוח עצמי לשיחה עם המסמכים שלכם (RAG) ולהרצת סוכני AI, לאדם או לצוות שמביאים מפתח API של LLM או שרת מודלים משלהם. container אחד מכיל את האפליקציה, embedder שרץ על CPU ואת מאגר הווקטורים LanceDB.
משאבים לפי רמת עומס
מה האפליקציה עצמה צריכה בכל רמה, לצד מה שאנחנו ממליצים לשרת שמריץ רק אותה.
| רמה | מה זה אומר | דרישות האפליקציה | מומלץ |
|---|---|---|---|
| קלהערכה | עד 5 משתמשים, עד 50 MB טקסט שחולץ ממסמכים (כ-51,000 chunks) שמוטמע ב-embedder המובנה על CPU ל-LanceDB; LLM דרך API או שרת חיצוני. | 2 vCPU · 2 GiB RAM · 5.2 GiB דיסק | 2.52 vCPU · 3.9 GiB RAM · 15.295 GiB דיסק |
| בינוניהערכה | עד 20 משתמשים (מצב רב-משתמשים), עד 250 MB טקסט שחולץ ממסמכים (כ-255,000 chunks) שמוטמע ב-embedder המובנה על CPU ל-LanceDB; LLM דרך API או שרת חיצוני. | 3 vCPU · 4 GiB RAM · 7.7 GiB דיסק | 3.72 vCPU · 6.3 GiB RAM · 18.17 GiB דיסק |
| כבדהערכה | עד 50 משתמשים (מצב רב-משתמשים), עד 1 GB טקסט שחולץ ממסמכים (כמיליון chunks) שמוטמע ב-embedder המובנה על CPU ל-LanceDB; LLM דרך API או שרת חיצוני. | 4 vCPU · 8 GiB RAM · 17.7 GiB דיסק | 4.92 vCPU · 11.1 GiB RAM · 29.67 GiB דיסק |
מומלץ = דרישות האפליקציה + baseline של המערכת + מרווח ביטחון (headroom), לפי מדיניות ה-sizing 2026.10.0. האפשרויות נשארות בברירת המחדל. ״הערכה״ פירושה שהמקורות לא נותנים מספר למקרה הזה, ולכן הוא מחושב מהם בשיטה שמפורטת תחת רכיבים. איך המספרים נבנים
קבצים מוכנים להפעלה
רמת תמיכה נתמך
תבנית Compose מהמקורות הרשמיים; עוד לא נבדקה בהרצה.
רכיבים
מה כל רכיב צריך בכל רמת עומס, לפני baseline ו-headroom.
| רכיב | קל | בינוני | כבד | מקורות |
|---|---|---|---|---|
| AnythingLLM (app) | 2 / 2 / 5.2 | 3 / 4 / 7.7 | 4 / 8 / 17.7 | [1][5][13][24][25][26][27][28][31] |
איך ההערכות מחושבות
- AnythingLLM · קל: vCPU ו-RAM: המינימום המתועד, CPU של 2 ליבות עם AVX2 ו-2GB RAM (נלקח כ-2 GiB), "מספיק כדי לשמור כמה מסמכים ולשלוח צ'אטים". Disk: image של 4.2 GiB (1.027 דחוס ועוד 3.148 פרוס, ה-containerd store שומר את שניהם). נתונים לכל 1 MB טקסט שחולץ (כ-1,021 chunks של 1,000 תווים, חפיפה 20): JSON של המסמך 1 MB, vector-cache ב-JSON (384 מספרים כטקסט, כ-7.7 KB ועוד 1.5 KB טקסט ו-metadata ל-chunk) 9.4 MB, ו-LanceDB (וקטור 1,536 B ועוד 1.5 KB) 3.1 MB, בסך הכול כ-13.5 MB, נלקח ×14. 50 MB × 14 = 0.65 GiB ועוד מודל של 23MB ו-SQLite ← 1 GiB ועוד 4.2 GiB ל-image.
- AnythingLLM · בינוני: אין מספר רשמי מעל המינימום. ה-embedder (ONNX, CPU בלבד, 25 chunks בכל מעבר), LanceDB, השרת וה-collector רצים כולם ב-container הזה; RAM 2 GiB × 2 ← 4 GiB, וליבה נוספת על 2 המתועדות (2 + 1 = 3) כדי שהטמעת העלאות לא תעכב צ'אטים. Disk: השיטה של light (×14 לכל MB טקסט ועוד 4.2 GiB ל-image): 250 MB × 14 = 3.26 GiB ← 3.5 ועוד 4.2 ל-image.
- AnythingLLM · כבד: המינימום המתועד מוכפל שוב לעומת medium, בגלל משתמשים במקביל ועבודות הטמעה גדולות באותו תהליך: RAM 2 GiB × 4 = 8 GiB, vCPU 2 × 2 = 4. upstream מציעים embedder חיצוני לכמויות נתונים גדולות. Disk: השיטה של light: 1,000 MB × 14 = 13.04 GiB ← 13.5 ועוד 4.2 ל-image.
פורטים
פורטים ציבוריים נועדו לגישה מחוץ ל-stack, בדרך כלל דרך reverse proxy; פורטים פנימיים נשארים ברשת של ה-stack עצמו.
משתמש והרשאות (UID/GID)
המשתמש שהתהליך של כל קונטיינר רץ תחתיו, והנתיבים שהוא כותב אליהם. bind mount לאחד הנתיבים האלה חייב להיות ניתן לכתיבה על ידי ה-UID:GID הזה.
| רכיב | UID:GID | משתמש | מתחיל כ-root | כותב אל | מקורות |
|---|---|---|---|---|---|
| AnythingLLM | 1000:1000 | anythingllm | לא | /app/server/storage/app/server/.env/app/collector/hotdir | [3][9][14][27] |
- AnythingLLM: ה-Dockerfile יוצר את המשתמש anythingllm (1000:1000) ועובר ל-USER anythingllm לפני ה-entrypoint, ולכן השרת וה-collector אף פעם לא רצים כ-root. הוא כותב ל-volume של האחסון, ל-/app/server/.env (הגדרות הממשק) ול-/app/collector/hotdir (העלאות בעיבוד). תיקייה מהמארח חייבת להיות בבעלות 1000:1000.
צמיחת אחסון
בכמה הנתונים של כל רכיב גדלים בחודש בכל רמת עומס, מעבר לדיסק שבפרופיל. ערך שמסומן ״הנחה״ הוא הנחה מוצהרת של ANAROQ ולא מספר מהמקורות; ההערות מפרטות על מה היא נשענת.
על מה מספרי הצמיחה נשענים
- AnythingLLM: upstream לא מפרסמים קצב גידול, ומסמכים, vector-cache ווקטורים נשמרים עד שמוחקים אותם. ההנחה: נתוני ה-preset (1 GiB) מתמלאים תוך 12 חודשים: 1 / 12 = 0.083. היסטוריית הצ'אטים ב-SQLite קטנה לעומתם.
- AnythingLLM: אותה הנחה של 12 חודשים: 3.5 GiB נתוני preset, 3.5 / 12 = 0.292.
- AnythingLLM: אותה הנחה של 12 חודשים: 13.5 GiB נתוני preset, 13.5 / 12 = 1.125.
שדרוג וחזרה לאחור
איך עוברים לגרסה חדשה בבטחה, ואיך חוזרים אחורה אם משהו נכשל.
קודם גיבוי
כשה-container עצור, להעתיק את כל ה-volume של האחסון (anythingllm.db, documents, vector-cache, lancedb, models), ואת /app/server/.env שנשמר ואת קובץ ה-.env של ה-Compose (SIG_KEY, SIG_SALT). [8][22][27]נגזרupstream מתעדים שמירה של תיקיית האחסון וה-.env במארח בין עדכונים, לא נוהל גיבוי; העתקה כשה-container עצור נובעת מכך ש-SQLite ו-LanceDB נמצאים שם.
שלבי השדרוג
- לקרוא את ה-release notes של כל גרסה בין הנוכחית ליעד; להשתמש ב-tag עם גרסה (למשל 1.18.0) ולא ב-latest, שמתעדכן בכל commit. [17][30]
- קודם לשמור את הגדרות הממשק: docker compose exec -T anythingllm cat /app/server/.env > anythingllm-settings.env (הקובץ מכיל מפתחות API; לשמור אותו פרטי). container חדש עולה בלעדיהן. [1][9]נגזרupstream מחזיקים את הקובץ במארח עם bind mount; בתבנית אין mount כזה, ולכן מעתיקים אותו ידנית.
- לגבות את ה-volume של האחסון, להגדיר את ה-tag המוצמד החדש, ואז docker compose pull ו-docker compose up -d. ה-entrypoint מריץ prisma migrate deploy בהפעלה. [5][15]
- להחזיר את ההגדרות: docker compose exec -T anythingllm sh -c 'cat > /app/server/.env' < anythingllm-settings.env, ואז docker compose restart anythingllm ולבדוק את /api/ping. [4][9]נגזרהשרת טוען את /app/server/.env עם dotenv בהפעלה; ערכים שמוגדרים בסביבה של ה-Compose גוברים על הקובץ.
חזרה לאחור
לעצור את ה-container, לשחזר את גיבוי האחסון שנלקח לפני השדרוג, להפעיל את ה-tag המוצמד הקודם ולהחזיר את קובץ ההגדרות שנשמר. [5][15]נגזרupstream לא מתעדים downgrade. migrations של מסד הנתונים רצות קדימה בהפעלה, ולכן ה-tag הקודם בטוח רק על הנתונים שגובו לפניהן.
שינויים שוברים ידועים
מגבלות
- אין LLM בפנים: לגרסת ה-Docker אין ספק LLM מובנה. צ'אט דורש מפתח API או שרת מודלים משלכם (למשל Ollama), והמשאבים שלו לא כלולים במספרים האלה. ה-embedder המובנה ו-LanceDB כן כלולים. [13][16]
- ה-CPU חייב לחשוף AVX2: LanceDB, ברירת המחדל, קורס בלעדיו עם Illegal instruction. ב-Proxmox/QEMU יש להגדיר את סוג ה-CPU של ה-VM ל-host; סוגים גנריים כמו kvm64 מסתירים את AVX2. [13][14]
- ייבוא אתרים וקישורים משתמש ב-Chromium, ש-upstream מריצים עם cap_add SYS_ADMIN. הקובץ שנוצר אף פעם לא מוסיף אותה, ולכן הייבוא נכשל אלא אם האפשרות chromium-no-sandbox מופעלת. [6][15]
- הגדרות שנשמרות בממשק (LLM, embedder, מפתחות API) נמצאות ב-/app/server/.env בתוך ה-container ואובדות כשהוא נוצר מחדש, למשל בשדרוג; יש להעתיק את הקובץ קודם. instance אחד בלבד: SQLite לא מתאים להרחבה אופקית. [9][15]
אבטחה
- בלי סיסמה או מצב רב-משתמשים, ה-API והממשק לא דורשים התחברות. התבנית מגדירה את סיסמת ה-instance (AUTH_TOKEN) מ-.env; למשתמשים עם תפקידים יש לעבור למצב רב-משתמשים (אי אפשר לחזור ממנו). [7][18]
- לא לחשוף את פורט 3001 ישירות: להגיש אותו דרך reverse proxy עם HTTPS שמעביר WebSocket upgrades לסוכנים (/api/agent-invocation). [15]
- האפשרות chromium-no-sandbox מריצה את Chromium בלי sandbox על כל דף שהוא סורק; להפעיל אותה רק אם צריך ייבוא אתרים. בנוסף, יש telemetry אנונימי (DISABLE_TELEMETRY מבטל אותו). [6][15][21]
גיבוי
- לגבות את ה-volume של האחסון (/app/server/storage: anythingllm.db, documents, vector-cache, lancedb, models) כשה-container עצור; הוא מכיל כל workspace, צ'אט, משתמש ווקטור. [14][22][27]
- לשמור גם עותק של /app/server/.env (הגדרות הממשק ומפתחות API) ושל SIG_KEY ו-SIG_SALT: בלי אותו key ו-salt, נתונים ש-AnythingLLM הצפין לא ניתנים לקריאה אחרי שחזור. [8][9]
גרסה אחרונה
- הפרופיל נבדק מול
AnythingLLM 1.18.0
הפרופיל נבדק מול הגרסה האחרונה.
- נבדק ב-
- 14 באוק׳ 2026
- מצב
- נבדק ב-90 הימים האחרונים
- איפה הגרסאות מתפרסמות
- GitHub Releases
גרסה
- סטטוס הפרופיל
- פורסם
- נבדק מול גרסה
- AnythingLLM 1.18.0
- גרסת הפרופיל
- 1.0.0
- המספרים אומתו
- 14 באוק׳ 2026
- גרסת הקטלוג
- 2026.10.10
- מדיניות sizing
- 2026.10.0
- קובץ Compose
- לא אומת
הפרויקט וחלופות
- האתר הרשמי
- anythingllm.com
- חלופות
- Open WebUILibreChat
מקורות
- docker/HOW_TO_USE_DOCKER.md at v1.18.0: docker run and Compose example (port 3001, cap_add SYS_ADMIN, STORAGE_DIR, storage volume; at least 2GB RAM, 10GB disk) (Compose רשמי · נקרא 14 באוק׳ 2026)
- docker/docker-compose.yml at v1.18.0 (build from source, user 1000:1000, .env and storage bind mounts, cap_add SYS_ADMIN) (Compose רשמי · נקרא 14 באוק׳ 2026)
- docker/Dockerfile at v1.18.0: USER anythingllm (1000:1000), HEALTHCHECK every 1m (timeout 10s, start period 1m) via docker-healthcheck.sh (מאגר רשמי · נקרא 14 באוק׳ 2026)
- docker/docker-healthcheck.sh at v1.18.0 (curl http://localhost:3001/api/ping, 200 = up) (מאגר רשמי · נקרא 14 באוק׳ 2026)
- docker/docker-entrypoint.sh at v1.18.0 (warns without STORAGE_DIR; prisma migrate deploy, then server and collector) (מאגר רשמי · נקרא 14 באוק׳ 2026)
- docker/.env.example at v1.18.0 (STORAGE_DIR, SIG_KEY/SIG_SALT 32+ chars, JWT_SECRET, ANYTHINGLLM_CHROMIUM_ARGS instead of SYS_ADMIN) (מאגר רשמי · נקרא 14 באוק׳ 2026)
- server/utils/middleware/validatedRequest.js at v1.18.0 (no auth when AUTH_TOKEN or JWT_SECRET is unset, outside multi-user mode) (מאגר רשמי · נקרא 14 באוק׳ 2026)
- server/utils/EncryptionManager/index.js at v1.18.0 (random SIG_KEY/SIG_SALT written to .env when unset) (מאגר רשמי · נקרא 14 באוק׳ 2026)
- server/utils/helpers/updateENV.js at v1.18.0 (dumpENV writes UI settings and keys to /app/server/.env) (מאגר רשמי · נקרא 14 באוק׳ 2026)
- server/utils/boot/markOnboarded.js at v1.18.0 (AUTH_TOKEN or JWT_SECRET set = onboarding marked complete) (מאגר רשמי · נקרא 14 באוק׳ 2026)
- server/utils/collectorApi/index.js at v1.18.0 (ANYTHINGLLM_CHROMIUM_ARGS passed to the collector's Chromium) (מאגר רשמי · נקרא 14 באוק׳ 2026)
- server/endpoints/system.js at v1.18.0 (GET /ping under /api, no auth) (מאגר רשמי · נקרא 14 באוק׳ 2026)
- AnythingLLM docs: System Requirements (2GB RAM, 2-core CPU with AVX2, 5GB storage; AVX2 required by LanceDB, Proxmox CPU type host) (תיעוד רשמי · נקרא 14 באוק׳ 2026)
- AnythingLLM docs: Local Docker (storage volume required; image runs as UID/GID 1000; Illegal instruction without AVX2) (תיעוד רשמי · נקרא 14 באוק׳ 2026)
- AnythingLLM docs: Deploy to Cloud VM (SYS_ADMIN needed to scrape web pages, SQLite not for horizontal scaling, reverse proxy with WebSocket for agents) (תיעוד רשמי · נקרא 14 באוק׳ 2026)
- AnythingLLM docs: Docker installation overview (no built-in LLM provider on Docker; multi-user, password protection) (תיעוד רשמי · נקרא 14 באוק׳ 2026)
- AnythingLLM docs: Docker Images (latest per commit; versioned images per release; pg image for PostgreSQL + PGVector) (תיעוד רשמי · נקרא 14 באוק׳ 2026)
- AnythingLLM docs: Security & Access (single-user password, multi-user mode cannot be reverted, roles) (תיעוד רשמי · נקרא 14 באוק׳ 2026)
- AnythingLLM docs: AnythingLLM Cloud (private managed instances by Mintplex Labs) (תיעוד רשמי · נקרא 14 באוק׳ 2026)
- LICENSE at v1.18.0: MIT License, Mintplex Labs Inc. (מאגר רשמי · נקרא 14 באוק׳ 2026)
- README.md at v1.18.0 (telemetry on by default, DISABLE_TELEMETRY opt-out) (מאגר רשמי · נקרא 14 באוק׳ 2026)
- .dockerignore at v1.18.0 (server/storage data: documents, vector-cache, *.db, lancedb) (מאגר רשמי · נקרא 14 באוק׳ 2026)
- server/storage/models/README.md at v1.18.0 (native embedder all-MiniLM-L6-v2, 384 dimensions; local Whisper) (מאגר רשמי · נקרא 14 באוק׳ 2026)
- server/utils/EmbeddingEngines/native/constants.js at v1.18.0 (all-MiniLM-L6-v2: 23MB, 25 chunks per pass, 1,000-char chunks) (מאגר רשמי · נקרא 14 באוק׳ 2026)
- server/utils/TextSplitter/index.js at v1.18.0 (default chunkSize 1000, chunkOverlap 20, metadata header per chunk) (מאגר רשמי · נקרא 14 באוק׳ 2026)
- server/utils/vectorDbProviders/lance/index.js at v1.18.0 (each row: vector, chunk text and metadata; result cached to vector-cache) (מאגר רשמי · נקרא 14 באוק׳ 2026)
- server/utils/files/index.js at v1.18.0 (vector-cache stores each document's chunks and vectors as JSON) (מאגר רשמי · נקרא 14 באוק׳ 2026)
- Registry manifest of mintplexlabs/anythingllm:1.18.0 (linux/amd64): 1,102,229,449 B compressed; 20 layers decompressed and counted: 3,379,698,176 B (מדידה · נקרא 14 באוק׳ 2026)
- Docker Hub tags of mintplexlabs/anythingllm (1.18.0 pushed 2026-10-13, newest versioned tag on 2026-10-14) (מאגר רשמי · נקרא 14 באוק׳ 2026)
- GitHub releases: v1.18.0 (13 Oct, Latest), v1.17.0, v1.16.2 (agent web browsing on by default), v1.16.0 (workspace profile pictures removed) (Release notes · נקרא 14 באוק׳ 2026)
- Docker: containerd image store is the default on fresh Engine 29+ installs and keeps images compressed and uncompressed (תיעוד רשמי · נקרא 14 באוק׳ 2026)