Mattermost
צ'אט צוותי בסגנון Slack: ערוצים, הודעות ישירות, שרשורים, שיתוף קבצים, חיפוש, webhooks ו-slash commands, עם אפליקציות לדסקטופ ולנייד. Team Edition היא הגרסה החינמית ברישיון MIT לצוותים קטנים: עד 250 משתמשים פעילים ובלי SSO. ה-stack כולל את Mattermost ו-PostgreSQL, עם קבצים על הדיסק המקומי.
משאבים לפי רמת עומס
מה האפליקציה עצמה צריכה בכל רמה, לצד מה שאנחנו ממליצים לשרת שמריץ רק אותה.
| רמה | מה זה אומר | דרישות האפליקציה | מומלץ |
|---|---|---|---|
| קלהערכה | עד 25 משתמשים (צוות קטן אחד), כ-500 הודעות ביום, עד 25 MB של קבצים למשתמש בחודש. | 1.5 vCPU · 2 GiB RAM · 16 GiB דיסק | 1.92 vCPU · 3.9 GiB RAM · 27.83 GiB דיסק |
| בינוניהערכה | עד 100 משתמשים בכמה צוותים, כ-3,000 הודעות ביום, צילומי מסך ומסמכים עד 25 MB למשתמש בחודש. | 2 vCPU · 3 GiB RAM · 36.5 GiB דיסק | 2.52 vCPU · 5.1 GiB RAM · 51.405 GiB דיסק |
| כבדהערכה | עד 250 משתמשים (המגבלה של Team Edition), עד 200 מחוברים בו-זמנית, כ-12,500 הודעות ביום, עד 25 MB של קבצים למשתמש בחודש. | 4 vCPU · 8 GiB RAM · 123.5 GiB דיסק | 4.92 vCPU · 11.1 GiB RAM · 151.455 GiB דיסק |
מומלץ = דרישות האפליקציה + baseline של המערכת + מרווח ביטחון (headroom), לפי מדיניות ה-sizing 2026.10.0. האפשרויות נשארות בברירת המחדל. ״הערכה״ פירושה שהמקורות לא נותנים מספר למקרה הזה, ולכן הוא מחושב מהם בשיטה שמפורטת תחת רכיבים. איך המספרים נבנים
קבצים מוכנים להפעלה
רמת תמיכה נתמך
תבנית Compose מהמקורות הרשמיים; עוד לא נבדקה בהרצה.
רכיבים
מה כל רכיב צריך בכל רמת עומס, לפני baseline ו-headroom.
| רכיב | קל | בינוני | כבד | מקורות |
|---|---|---|---|---|
| Mattermost Team Edition (web app, API, WebSockets, jobs) (app) | 0.5 / 1 / 9.5 | 1 / 2 / 30 | 2 / 4 / 72 | [8][12][14][24][26] |
| PostgreSQL (database) | 1 / 1 / 6.5 | 1 / 1 / 6.5 | 2 / 4 / 51.5 | [14][18][29][30][31][32][33][34][35] |
איך ההערכות מחושבות
- Mattermost Team Edition (web app, API, WebSockets, jobs) · קל: התיעוד מגדיר לשרת יחיד של עד 1,000 משתמשים 1 vCPU ו-2 GB RAM, כולל מסד הנתונים; כש-PostgreSQL בקונטיינר משלו, Mattermost מקבל חצי מכל אחד (חלוקה של ANAROQ). Disk: image דחוס 448,271,026 B (0.417 GiB) ועוד 649,274,368 B פרוס (0.605 GiB), ה-containerd store שומר את שניהם = 1.022 GiB. קבצים: 25 משתמשים × 25 MB בחודש (הקצה העליון של טווח השימוש הבינוני בתיעוד) × 12 חודשים = 6.985 GiB. ועוד 1 GiB ל-plugins פרוסים, הגדרות ולוגים (הנחה) = 9.007, מעוגל ל-9.5.
- Mattermost Team Edition (web app, API, WebSockets, jobs) · בינוני: פי שניים מ-light, חצי משרת ה-app של 2 vCPU ו-4 GiB שהתיעוד נותן ל-200 משתמשים בו-זמנית: יותר WebSockets פתוחים, העלאות ותצוגות מקדימות של תמונות (העלאות של עד 100 MB מגדילות את צריכת הזיכרון). Disk: image דחוס 448,271,026 B (0.417 GiB) ועוד 649,274,368 B פרוס (0.605 GiB), ה-containerd store שומר את שניהם = 1.022 GiB. קבצים: 100 משתמשים × 25 MB בחודש (הקצה העליון של טווח השימוש הבינוני בתיעוד) × 12 חודשים = 27.940 GiB. ועוד 1 GiB ל-plugins, הגדרות ולוגים = 29.962, מעוגל ל-30.
- Mattermost Team Edition (web app, API, WebSockets, jobs) · כבד: vCPU ו-RAM: שרת ה-app בארכיטקטורת הייחוס של התיעוד לעד 200 משתמשים בו-זמנית (2 vCPU, 4 GiB). Disk: image דחוס 448,271,026 B (0.417 GiB) ועוד 649,274,368 B פרוס (0.605 GiB), ה-containerd store שומר את שניהם = 1.022 GiB. קבצים: 250 משתמשים × 25 MB בחודש (הקצה העליון של טווח השימוש הבינוני בתיעוד) × 12 חודשים = 69.849 GiB. ועוד 1 GiB ל-plugins, הגדרות ולוגים = 71.871, מעוגל ל-72.
- PostgreSQL · קל: הודעות, ערוצים, משתמשים ואינדקס החיפוש נשמרים ב-PostgreSQL: 500 הודעות ביום × הנחה של 2 KB להודעה עם האינדקסים ≈ 0.4 GB בשנה, בתוך מעטפת ה-light (עד 5 GB). ה-pool יכול לפתוח עד 100 חיבורים (MaxOpenConns), אבל 25 משתמשים מעסיקים הרבה פחות מ-20. שיטת ה-light: shared_buffers 25% מה-RAM, תקציב work_mem למקרה הגרוע, 0.5 GiB ל-image + 5 GiB נתונים + 1 GiB ל-WAL.
- PostgreSQL · בינוני: 3,000 הודעות ביום × הנחה של 2 KB להודעה עם האינדקסים ≈ 2.2 GB בשנה, בתוך מעטפת ה-light (עד 5 GB) לכשנתיים; 100 משתמשים מעסיקים פחות מ-20 חיבורים, אף שה-pool יכול לפתוח 100. שיטת ה-light: shared_buffers 25% מה-RAM, תקציב work_mem למקרה הגרוע, 0.5 GiB ל-image + 5 GiB נתונים + 1 GiB ל-WAL.
- PostgreSQL · כבד: 12,500 הודעות ביום × הנחה של 2 KB להודעה עם האינדקסים ≈ 9 GB בשנה, מעבר למעטפת ה-sidecar של 5 GB, ועד 200 משתמשים מחוברים יכולים להעסיק יותר מ-20 מתוך 100 החיבורים של ה-pool: preset ה-medium של פרופיל PostgreSQL (עד 50 GB, עד 100 חיבורים). שיטת medium: shared_buffers של 1 GiB = 25%, תקציב work_mem למקרה הגרוע, 0.5 GiB ל-image + 50 GiB נתונים + 1 GiB ל-WAL.
פורטים
פורטים ציבוריים נועדו לגישה מחוץ ל-stack, בדרך כלל דרך reverse proxy; פורטים פנימיים נשארים ברשת של ה-stack עצמו.
משתמש והרשאות (UID/GID)
המשתמש שהתהליך של כל קונטיינר רץ תחתיו, והנתיבים שהוא כותב אליהם. bind mount לאחד הנתיבים האלה חייב להיות ניתן לכתיבה על ידי ה-UID:GID הזה.
| רכיב | UID:GID | משתמש | מתחיל כ-root | כותב אל | מקורות |
|---|---|---|---|---|---|
| Mattermost Team Edition (web app, API, WebSockets, jobs) | 2000:2000 | mattermost | לא | /mattermost/config/mattermost/data/mattermost/logs/mattermost/plugins/mattermost/client/plugins/var/tmp | [4][6][7] |
| PostgreSQL | 999:999 | postgres | כן, מכין את התיקיות שלו ואז עובר למשתמש הזה | /var/lib/postgresql/var/run/postgresql | [27][28][34] |
צמיחת אחסון
בכמה הנתונים של כל רכיב גדלים בחודש בכל רמת עומס, מעבר לדיסק שבפרופיל. ערך שמסומן ״הנחה״ הוא הנחה מוצהרת של ANAROQ ולא מספר מהמקורות; ההערות מפרטות על מה היא נשענת.
| רכיב | קל | בינוני | כבד | מקורות |
|---|---|---|---|---|
| Mattermost Team Edition (web app, API, WebSockets, jobs)נגזר | 0.582 | 2.328 | 5.821 | [14][15] |
| PostgreSQLהנחה | 0.03 | 0.17 | 0.7 | [15] |
על מה מספרי הצמיחה נשענים
- Mattermost Team Edition (web app, API, WebSockets, jobs): קבצים שהועלו ל-/mattermost/data, בקצה העליון של טווח השימוש הבינוני בתיעוד, 25 MB למשתמש בחודש: 25, 100 ו-250 משתמשים = 625, 2,500 ו-6,250 MB בחודש. data retention היא יכולת compliance של התוכניות בתשלום (אפילו לא במצב Entry החינמי), ולכן שום דבר לא נמחק אוטומטית; הלוגים ב-/mattermost/logs נוספים על זה.
- PostgreSQL: 500, 3,000 ו-12,500 הודעות ביום × 30 יום × הנחה של 2 KB להודעה עם האינדקסים שלה = 30, 180 ו-750 MB בחודש. ההודעות נשמרות לתמיד: data retention היא יכולת compliance של התוכניות בתשלום. Mattermost לא מפרסם נתון להודעה.
שדרוג וחזרה לאחור
איך עוברים לגרסה חדשה בבטחה, ואיך חוזרים אחורה אם משהו נכשל.
קודם גיבוי
כש-Mattermost עצור: pg_dump של מסד mattermost, ועוד עותקים של ה-volume של config (config.json) ושל ה-volume של data (הקבצים שהועלו). [20][22]
שלבי השדרוג
- קראו את ה-important upgrade notes של כל גרסה בין הגרסה שלכם לגרסת היעד, ודאו ש-PostgreSQL עומד במינימום החדש, ועברו מ-ESR אחד לבא אחריו (למשל 10.11 ← 11.7); דילוג על שני ESR נתמך אבל לא נבדק. [12][17][18]
- גבו את מסד הנתונים, את config ואת data (ראו גיבוי), עדכנו את ה-tag המוצמד של mattermost/mattermost-team-edition בקובץ ה-Compose, ואז הריצו docker compose pull ו-docker compose up -d. [5][20]נגזרמדריך ה-Docker אומר לקבוע את MATTERMOST_IMAGE_TAG לגרסה מסוימת ולפרוס מחדש; pull ו-up -d הם הדרך שבה Compose מחיל tag חדש.
- ה-migrations של הסכמה רצים כשהשרת החדש עולה; המתינו עד שהקונטיינר healthy (mmctl system status) ובדקו את docker compose logs mattermost לפני שמחזירים את המשתמשים. [6][10][18]
חזרה לאחור
עוצרים את ה-stack, משחזרים את ה-dump של מסד הנתונים ואת העותקים של config ו-data מלפני השדרוג, מצמידים את ה-tag הקודם ומפעילים שוב. downgrade במקום דורש mattermost db downgrade עם ה-binary החדש, ומשתמשים שהתחברו ב-v11 ומעלה עלולים להזדקק לאיפוס סיסמה ב-v10. [16][18][21]נגזרמדיניות הגרסאות אומרת לשחזר את מסד הנתונים ואת הגרסה הקודמת כדי לבטל שדרוג; ה-downgrade של הסכמה ממדריך ה-downgrade לא מתועד בתוך קונטיינר של Docker, ולכן כאן השחזור הוא ה-rollback.
שינויים שוברים ידועים
- בגרסה 12.0.0: גרסת PostgreSQL המינימלית עולה ל-15 (ה-sidecar של התבנית מריץ 18). RHEL 7 ו-8 כבר לא נתמכים כמארחים; קונטיינרים לא מושפעים. [12]
- בגרסה 11.7.3: אל תשדרגו מ-10.11.17 ומעלה ל-11.7.2 ומטה: באג משבש את מספרי ה-migrations של מסד הנתונים. הוא תוקן ב-11.7.3, ולכן עוברים ישר ל-patch הנוכחי של 11.7. [18]
- בגרסה 11.0.0: MySQL כבר לא נתמך, ו-PostgreSQL 14 הוא המינימום. Team Edition מוגבלת ל-250 משתמשים ומאבדת את GitLab SSO, ו-Playbooks מפסיק לעבוד בה. חיפוש Bleve הוסר: אם Bleve היה פעיל, קבעו DisableDatabaseSearch ל-false לפני השדרוג. [18][19][20]
- בגרסה 11.0.0: הסיסמאות עוברות מ-bcrypt ל-PBKDF2 בכל התחברות, ולכן אחרי downgrade ל-10.x המשתמשים האלה צריכים איפוס סיסמה. השרת לא עולה עם ExperimentalViewArchivedChannels=false או ClientSideCertEnable=true. plugins שהותקנו ידנית כבר לא נתמכים; MaxOpenConns יורד מ-300 ל-100. [18]
מגבלות
- Team Edition נעצרת ב-250 משתמשים פעילים ואין בה SSO (GitLab SSO הוסר ב-v11.0). מעבר לזה, ה-image של Enterprise רץ בחינם כ-Mattermost Entry (מתאים לפחות מ-50 משתמשים, עם מגבלת היסטוריה של 10,000 הודעות) או עם רישיון בתשלום; התבנית לא מכסה אותו. [15][18][19]
- Calls (שיחות 1:1 ושיתוף מסך, עד 40 דקות ב-Team Edition) שולחות מדיה ב-UDP 8443 (ו-TCP 8443 כגיבוי) ישירות לשרת, אף פעם לא דרך ה-reverse proxy. התבנית לא מפרסמת את 8443, ולכן שיחות ממכונות אחרות נכשלות עד שתפתחו אותו בעצמכם. [3][11]
- צוות מכיל כברירת מחדל 50 משתמשים (MaxUsersPerTeam); לצוותים גדולים יותר מעלים את המספר ב-System Console. החיפוש רץ ב-PostgreSQL: כתובות מייל ומונחים עם מקף לא נמצאים, ורק 1 MB הראשון של הטקסט בקובץ נכנס לאינדקס. [8][12]
- Extended Support Release 11.7 מקבל תיקוני אבטחה ובאגים חמורים עד 15.5.2027, אבל לא יכולות חדשות; הגרסאות החודשיות החדשות (11.11, ואחריה 12.0) מוסיפות יכולות, וכל אחת נתמכת שלושה חודשים. [16][17]
אבטחה
- צרו את החשבון הראשון מיד אחרי ההפעלה הראשונה: הוא הופך למנהל המערכת. הרשמה פתוחה כבויה כברירת מחדל, ולכן כל מי שמגיע אחריו מצטרף דרך קישור הזמנה או דרך מנהל. [5][8]
- הגישו את Mattermost רק ב-HTTPS דרך ה-reverse proxy. מאחוריו התבנית קובעת את ה-Site URL ל-https://<domain>; הוא חייב להתאים לכתובת שהמשתמשים פותחים, אחרת קישורים, OAuth והאפליקציות לנייד נשברים. [4][5]
- ה-image מפעיל local mode: socket ב-/var/tmp נותן גישת admin מלאה של mmctl, בלי סיסמה, לכל מי שיכול להריץ פקודות בקונטיינר (ה-healthcheck משתמש בו). הגבילו את הגישה למארח ה-Docker למנהלים בלבד. [6][8]
- Team Edition מיועדת לצוותים קטנים, לחובבים ולשימוש אישי; Mattermost לא ממליצים עליה לעומסי עבודה ממשלתיים או מסחריים רגישים. התהליך רץ כ-uid 2000 על image מסוג distroless בלי shell. [6][15]
גיבוי
- גבו שלושה דברים יחד: pg_dump של PostgreSQL (הודעות, משתמשים, ערוצים), את ה-volume של config (config.json וכל תעודה) ואת ה-volume של data (הקבצים שהועלו). עצרו את Mattermost בזמן הגיבוי, אחרת מסד הנתונים והקבצים עלולים לצאת מסנכרון. [22]
- בשחזור מחזירים את מסד הנתונים, את config.json ואת הקבצים למקומות שמהם גובו, ומפעילים את אותו tag של ה-image שיצר את הגיבוי; משדרגים רק אחרי שהשחזור עובד. [20][22]
גרסה אחרונה
- הפרופיל נבדק מול
Mattermost 11.7.12
קיימת גרסה חדשה יותר מזו שהפרופיל נבדק מולה.
- נבדק ב-
- 14 באוק׳ 2026
- מצב
- נבדק ב-90 הימים האחרונים
- איפה הגרסאות מתפרסמות
- תגיות ב-Docker Hub
גרסה
- סטטוס הפרופיל
- פורסם
- נבדק מול גרסה
- Mattermost 11.7.12
- גרסת הפרופיל
- 1.0.0
- המספרים אומתו
- 14 באוק׳ 2026
- גרסת הקטלוג
- 2026.10.10
- מדיניות sizing
- 2026.10.0
- קובץ Compose
- לא אומת
הפרויקט וחלופות
- האתר הרשמי
- mattermost.com
- קוד מקור
- github.com/mattermost/mattermost
מקורות
- Docker Docs: Control startup order in Compose (pg_isready healthcheck, service_healthy) (תיעוד רשמי · נקרא 11 באוק׳ 2026)
- mattermost/docker docker-compose.yml (main at 4974146; the repo has no tags): postgres at /var/lib/postgresql, mattermost with config, data, logs, plugins, client/plugins and bleve-indexes volumes (Compose רשמי · נקרא 14 באוק׳ 2026)
- mattermost/docker docker-compose.without-nginx.yml: publishes APP_PORT:8065 and the Calls port 8443 over udp and tcp (Compose רשמי · נקרא 14 באוק׳ 2026)
- mattermost/docker env.example: postgres 18-alpine, mmuser/mattermost, DATASOURCE with sslmode=disable&connect_timeout=10, SITEURL https://${DOMAIN}, uid 2000, tag 11.7.0 (latest ESR) (Compose רשמי · נקרא 14 באוק׳ 2026)
- Mattermost docs: Deploy Mattermost on Docker (clone mattermost/docker, chown 2000:2000 for bind mounts, without-nginx file, pin specific version tags, create the first system admin) (תיעוד רשמי · נקרא 14 באוק׳ 2026)
- mattermost repository: server/build/Dockerfile at v11.7.12 (distroless, USER mattermost 2000, HEALTHCHECK mmctl system status --local every 30 s, EXPOSE 8065, five VOLUMEs, local mode on) (מאגר רשמי · נקרא 14 באוק׳ 2026)
- Registry config of mattermost-team-edition:11.7.12 (amd64): User mattermost, ports 8065 8067 8074 8075, 5 Volumes, Healthcheck mmctl system status --local 30 s; dirs owned 2000:2000 (מדידה · נקרא 14 באוק׳ 2026)
- mattermost repository: model/config.go at v11.7.12 (ListenAddress :8065, SiteURL http://localhost:8065, MaxOpenConns 100, MaxUsersPerTeam 50, EnableOpenServer false, socket in /var/tmp) (מאגר רשמי · נקרא 14 באוק׳ 2026)
- mattermost repository: channels/api4/system.go at v11.7.12 (GET /api/v4/system/ping) (מאגר רשמי · נקרא 14 באוק׳ 2026)
- mattermost repository: mmctl system status at v11.7.12 (full ping; non-zero exit when the server, database or file store is unhealthy) (מאגר רשמי · נקרא 14 באוק׳ 2026)
- Mattermost docs: Calls deployment guide (media on 8443 UDP, TCP fallback, opened directly on the server, not through NGINX; Team Edition: 1-1 calls and screen share up to 40 minutes) (תיעוד רשמי · נקרא 14 באוק׳ 2026)
- Mattermost docs: Software and hardware requirements (PostgreSQL 14.0+; v12.0 needs 15+; single server 1–1,000 users: 1 vCPU, 2 GB RAM; 1,000–2,000: 2 vCPU, 4 GB) (תיעוד רשמי · נקרא 14 באוק׳ 2026)
- Mattermost docs: Scaling for Enterprise (reference architectures by concurrent users; Enterprise search required beyond 5 million posts) (תיעוד רשמי · נקרא 14 באוק׳ 2026)
- Mattermost docs: Scale up to 200 users (app node 2 vCPU/4 GiB; files 1–5, 5–25 or 25–100 MB per user per month; start from 600–800 MB) (תיעוד רשמי · נקרא 14 באוק׳ 2026)
- Mattermost docs: Editions and offerings (Team Edition: MIT-licensed binary, under 250 activated users, no SSO; source under AGPLv3; Entry is a free mode of the Enterprise binary) (תיעוד רשמי · נקרא 14 באוק׳ 2026)
- Mattermost docs: Release policy (monthly feature releases; ESR every 9 months, supported 12 months; v11.7 ESR supported until 2027-05-15) (תיעוד רשמי · נקרא 14 באוק׳ 2026)
- Mattermost docs: Server releases (v11.11 newest listed, support to 2026-12-15; v11.7 Extended until 2027-05-15; upgrade ESR to ESR; v12.0 not listed on 2026-10-14) (תיעוד רשמי · נקרא 14 באוק׳ 2026)
- Mattermost docs: Important upgrade notes (v11.0: MySQL ended, PostgreSQL 14+, Bleve and GitLab SSO in Team Edition removed, PBKDF2 hashing, MaxOpenConns 100; v10.11.17+ to ≤ v11.7.2 blocked) (Release notes · נקרא 14 באוק׳ 2026)
- Mattermost docs: v11 changelog (v11.0: user limit lowered to the final threshold of 250 for Team Edition; v11.7 is the Extended Support Release) (Release notes · נקרא 14 באוק׳ 2026)
- Mattermost docs: Upgrade Mattermost Server (full backup of database and application first; config, logs, plugins, client/plugins and data are preserved) (תיעוד רשמי · נקרא 14 באוק׳ 2026)
- Mattermost docs: Downgrade Mattermost Server (back up first; mattermost db downgrade with the newer binary; not more than one major version back) (תיעוד רשמי · נקרא 14 באוק׳ 2026)
- Mattermost docs: Backup and disaster recovery (database dump, the config directory and the ./data files; stop Mattermost for a clean backup) (תיעוד רשמי · נקרא 14 באוק׳ 2026)
- Mattermost: Pricing (FAQ: Mattermost Cloud Enterprise, a single-tenant managed service run by Mattermost, Inc., through sales) (תיעוד רשמי · נקרא 14 באוק׳ 2026)
- Docker Hub manifest of mattermost/mattermost-team-edition:11.7.12 (linux/amd64): 448,271,026 B compressed; 31 layers decompressed and counted: 649,274,368 B (מדידה · נקרא 14 באוק׳ 2026)
- Docker Hub tags of mattermost/mattermost-team-edition (11.7.12 pushed 2026-10-08; 11.11.1 is latest; 12.0.0 pushed 2026-10-14 after rc5) (מאגר רשמי · נקרא 14 באוק׳ 2026)
- Docker: the containerd image store keeps image layers both compressed and uncompressed (תיעוד רשמי · נקרא 14 באוק׳ 2026)
- docker-library/postgres: 18/trixie Dockerfile (postgres uid/gid 999, VOLUME /var/lib/postgresql) (מאגר רשמי · נקרא 14 באוק׳ 2026)
- docker-library/postgres: 18/trixie docker-entrypoint.sh (chown PGDATA, then gosu postgres) (מאגר רשמי · נקרא 14 באוק׳ 2026)
- PostgreSQL 18 documentation: 19.4 Resource Consumption (תיעוד רשמי · נקרא 10 באוק׳ 2026)
- PostgreSQL 18 documentation: 19.3 Connections and Authentication (תיעוד רשמי · נקרא 10 באוק׳ 2026)
- PostgreSQL 18 documentation: 19.10 Vacuuming (autovacuum settings) (תיעוד רשמי · נקרא 10 באוק׳ 2026)
- PostgreSQL 18 documentation: 19.5 Write Ahead Log (max_wal_size) (תיעוד רשמי · נקרא 10 באוק׳ 2026)
- PostgreSQL 18 documentation: 51.2 How Connections Are Established (תיעוד רשמי · נקרא 10 באוק׳ 2026)
- Docker Official Image postgres: documentation (docker-library/docs) (תיעוד רשמי · נקרא 10 באוק׳ 2026)
- Docker Hub: library/postgres tag 18.6 (compressed image sizes) (מאגר רשמי · נקרא 10 באוק׳ 2026)