פורסם

Umami

אנליטיקה לאתרים ששומרת על פרטיות ולא משתמשת ב-cookies: צפיות בעמודים, מקורות הפניה, אירועים מותאמים, משפכים, יעדים, שימור ולוחות לאתרים רבים, עם הקלטות sessions ו-heatmaps כאפשרות. הפריסה העצמית כוללת קונטיינר Next.js אחד ו-PostgreSQL, ששומר כל אירוע.

משאבים לפי רמת עומס

מה האפליקציה עצמה צריכה בכל רמה, לצד מה שאנחנו ממליצים לשרת שמריץ רק אותה.

רמהמה זה אומרדרישות האפליקציהמומלץ
קלהערכהעד 5 אתרים וכ-100,000 אירועים במעקב בחודש (צפיות בעמודים ואירועים מותאמים), כמה אנשים בלוח הבקרה; הקלטות ו-heatmaps כבויים.1.5 vCPU · 1.5 GiB RAM · 7.75 GiB דיסק1.92 vCPU · 3.3 GiB RAM · 18.343 GiB דיסק
בינוניהערכהעד 20 אתרים וכמיליון אירועים בחודש (כ-4 בשנייה בשעת שיא), צוות שעובד עם דוחות, משפכים ולוחות כל יום.3 vCPU · 5 GiB RAM · 52.75 GiB דיסק3.72 vCPU · 7.5 GiB RAM · 70.093 GiB דיסק
כבדהערכהעשרות אתרים וכ-3 מיליון אירועים בחודש (כ-12 בשנייה בשעת שיא), עם טווחי תאריכים ארוכים בדוחות וכמה משתמשים בלוח הבקרה בו-זמנית.3.5 vCPU · 6 GiB RAM · 52.75 GiB דיסק4.32 vCPU · 8.7 GiB RAM · 70.093 GiB דיסק

מומלץ = דרישות האפליקציה + baseline של המערכת + מרווח ביטחון (headroom), לפי מדיניות ה-sizing ‏2026.10.0. האפשרויות נשארות בברירת המחדל. ״הערכה״ פירושה שהמקורות לא נותנים מספר למקרה הזה, ולכן הוא מחושב מהם בשיטה שמפורטת תחת רכיבים. איך המספרים נבנים

לחישוב ב-Stack Sizer

קבצים מוכנים להפעלה

רמת תמיכה נתמך

תבנית Compose מהמקורות הרשמיים; עוד לא נבדקה בהרצה.

צור docker-compose

רכיבים

מה כל רכיב צריך בכל רמת עומס, לפני baseline ו-headroom.

vCPU / GiB RAM / GiB דיסק
רכיבקלבינוניכבדמקורות
Umami (dashboard, API, tracker and collector) (app)0.5 / 0.5 / 1.251 / 1 / 1.251.5 / 2 / 1.25[3][4][16][29][34]
PostgreSQL (database)1 / 1 / 6.52 / 4 / 51.52 / 4 / 51.5[13][23][25][36][39][40][41][42][43][44][45]
איך ההערכות מחושבות
  • Umami (dashboard, API, tracker and collector) · קל: אין sizing רשמי. תהליך Node אחד (‏start-docker.sh מבצע exec ל-node server.js) מגיש את לוח הבקרה ואת ‎/api/send; ‏100,000 אירועים בחודש הם כ-0.04 בשנייה בממוצע. ‏RAM: ‏0.5 GiB ל-Next.js ולמסד GeoLite2 City של 63 MiB שהוא פותח; ‏vCPU: חצי ליבה (הערכה של ANAROQ). Disk: ‏image של 1,105,421,824 B אחרי פריסה (1.03 GiB), מעוגל ל-1.25 GiB; ‏Umami לא שומר קבצים.
  • Umami (dashboard, API, tracker and collector) · בינוני: מיליון אירועים בחודש הם כ-0.4 בשנייה בממוצע וכ-4 בשיא של פי 10, כל אחד insert קטן ובדיקת GeoIP, בזמן שהדוחות בלוח הבקרה רצים ב-PostgreSQL. ליבה שלמה ו-1 GiB ‏RAM לתהליך ה-Node היחיד (הערכה של ANAROQ). Disk: רק ה-image, ‏1.25 GiB.
  • Umami (dashboard, API, tracker and collector) · כבד: כ-1.2 אירועים בשנייה בממוצע וכ-12 בשיא של פי 10. ‏1.5 vCPU: ‏event loop עמוס אחד ועוד threads של GC ו-I/O, בערך מה שתהליך Node יחיד מנצל; ‏2 GiB ‏RAM לתשובות דוחות במקביל (הערכה של ANAROQ). התיעוד מציע Redis לתעבורה גבוהה; התבנית רצה בלעדיו. Disk: רק ה-image, ‏1.25 GiB.
  • PostgreSQL · קל: לכל אירוע: שורה ב-website_event ‏(כ-250 B: ארבעה UUIDs, ‏timestamp, נתיב, ‏referrer, כותרת, ‏hostname) ועוד 14 אינדקסי B-tree שלה (כ-600 B) וחלק משורת ה-session ו-11 האינדקסים שלה (כ-150 B), כ-1 KB בסך הכול (הערכה של ANAROQ לפי prisma/schema.prisma). בהתקנה עצמית הנתונים נשמרים ללא הגבלת זמן. ‏100,000 אירועים בחודש מוסיפים כ-0.1 GB, ולכן 5 GB של ה-sidecar מספיקים לכ-4 שנים. ‏@prisma/adapter-pg משתמש ב-pool של node-postgres, ‏10 חיבורים כברירת מחדל. שיטת ה-light: ‏shared_buffers ‏25% מה-RAM, ‏0.5 GiB ל-image ‏+ 5 GiB נתונים + 1 GiB ל-WAL.
  • PostgreSQL · בינוני: כ-1 KB לאירוע עם האינדקסים שלו (הערכה של ANAROQ לפי prisma/schema.prisma, השיטה ב-preset ה-light), נשמר ללא הגבלת זמן. מיליון אירועים בחודש מוסיפים כ-1 GB ועוברים את 5 GB של ה-sidecar תוך 5 חודשים, ולכן זה ה-preset ה-medium של פרופיל PostgreSQL ‏(עד 50 GB נתונים, כ-4 שנים). ‏@prisma/adapter-pg משתמש ב-pool של node-postgres, ‏10 חיבורים כברירת מחדל. שיטת ה-medium: ‏shared_buffers של 1 GiB הם 25% מ-4 GiB, ‏0.5 GiB ל-image ‏+ 50 GiB נתונים + 1 GiB ל-WAL.
  • PostgreSQL · כבד: כ-1 KB לאירוע עם האינדקסים שלו (הערכה של ANAROQ לפי prisma/schema.prisma, השיטה ב-preset ה-light), נשמר ללא הגבלת זמן. ‏3 מיליון אירועים בחודש מוסיפים כ-3 GB וממלאים את 50 GB של ה-preset ה-medium בתוך כ-16 חודשים; תכננו דיסק נוסף לפי ops.storageGrowth או מחקו נתונים ישנים. ‏@prisma/adapter-pg משתמש ב-pool של node-postgres, ‏10 חיבורים כברירת מחדל. שיטת ה-medium: ‏shared_buffers של 1 GiB הם 25% מ-4 GiB, ‏0.5 GiB ל-image ‏+ 50 GiB נתונים + 1 GiB ל-WAL.

פורטים

פורטים ציבוריים נועדו לגישה מחוץ ל-stack, בדרך כלל דרך reverse proxy; פורטים פנימיים נשארים ברשת של ה-stack עצמו.

רכיבפורטחשיפהשימושמקורות
Umami (dashboard, API, tracker and collector)3000/tcpציבורי, דרך proxyDashboard, API, tracker script and the /api/send collector (HTTP; put behind TLS)[2][3]
PostgreSQL5432/tcpפנימי בלבדPostgreSQL connections from Umami[2][44]

כל הפורטים בקטלוג, עם התנגשויות בין אפליקציות

משתמש והרשאות (UID/GID)

המשתמש שהתהליך של כל קונטיינר רץ תחתיו, והנתיבים שהוא כותב אליהם. ‏bind mount לאחד הנתיבים האלה חייב להיות ניתן לכתיבה על ידי ה-UID:GID הזה.

רכיבUID:GIDמשתמשמתחיל כ-rootכותב אלמקורות
Umami (dashboard, API, tracker and collector)נגזר1001:65533nextjsלא—[3][9][10]
PostgreSQL999:999postgresכן, מכין את התיקיות שלו ואז עובר למשתמש הזה/var/lib/postgresql/var/run/postgresql[37][38][44]
  • Umami (dashboard, API, tracker and collector): ה-Dockerfile מסתיים ב-USER nextjs ‏(uid 1001, נוצר עם adduser --system, ולכן הקבוצה הראשית שלו היא nogroup, ‏65533). שום דבר קבוע לא נכתב: כל המצב נמצא ב-PostgreSQL. רק COLLECT_API_ENDPOINT גורם לסקריפט ההפעלה לשכתב את ‎/app/public/script.js, שנמצא בבעלות nextjs.

צמיחת אחסון

בכמה הנתונים של כל רכיב גדלים בחודש בכל רמת עומס, מעבר לדיסק שבפרופיל. ערך שמסומן ״הנחה״ הוא הנחה מוצהרת של ANAROQ ולא מספר מהמקורות; ההערות מפרטות על מה היא נשענת.

GiB לחודש
רכיבקלבינוניכבדמקורות
PostgreSQLהנחה0.0930.9312.794[13][15][23]
על מה מספרי הצמיחה נשענים
  • PostgreSQL: ‏100,000, מיליון ו-3 מיליון אירועים בחודש × הנחה של כ-1 KB לאירוע עם האינדקסים שלו. ‏Umami בהתקנה עצמית לא מוחק כלום בעצמו, ולכן זה מצטבר כל חודש. הקלטות sessions (כבויות כברירת מחדל) מתווספות לזה ונשמרות 30 יום.

שדרוג וחזרה לאחור

איך עוברים לגרסה חדשה בבטחה, ואיך חוזרים אחורה אם משהו נכשל.

קודם גיבוי

ה-migrations רצים לבד בהפעלה ואי אפשר לבטל אותם: קחו קודם pg_dump של מסד umami ושמרו עותק של ה-.env ‏(APP_SECRET, ‏TWO_FACTOR_ENCRYPTION_KEY, סיסמת מסד הנתונים). [12][22]נגזרבעמוד העדכונים אין שלב גיבוי; הוא נגזר מכך ש-check-db.js מריץ prisma migrate deploy בכל הפעלה, בלי migrations לאחור.

שלבי השדרוג

  1. קראו את ה-release notes ואת פוסט הבלוג של כל גרסה בין הגרסה שלכם לחדשה; ‏breaking changes, כמו הסרת MySQL ב-v3, מתפרסמים שם. [12][19]
  2. שנו את ה-tag המוצמד של umami, ואז הריצו docker compose pull ו-docker compose up -d. בהפעלה, ‏check-db.js מריץ prisma migrate deploy לפני שהשרת מאזין; עקבו אחרי docker compose logs -f umami עד שהוא עולה. [4][12][22]
  3. אחרי שדרוג major הריצו ANALYZE במסד הנתונים (docker compose exec postgres psql -U umami umami), כדי ששאילתות לוח הבקרה יקבלו סטטיסטיקות עדכניות. זה בטוח על מסד נתונים פעיל. [12]

חזרה לאחור

שחזרו את ה-dump של מסד הנתונים מלפני השדרוג והצמידו את ה-image חזרה ל-tag הקודם. צריך את שניהם: גרסה ישנה לא מכירה schema שמיגרציה חדשה יותר שינתה. [22][35]נגזר‏upstream לא מתעד rollback; זה נגזר מ-migrations של Prisma שרצים רק קדימה ומה-tags המוצמדים לפי semver ב-GHCR.

שינויים שוברים ידועים

  • בגרסה 3.3.0: נוסף אימות דו-שלבי, שדורש TWO_FACTOR_ENCRYPTION_KEY ‏(64 תווי hex) לפני שמישהו יכול להפעיל אותו. ה-image מתחיל עכשיו ב-sh scripts/start-docker.sh במקום npm run start-docker, ולכן command מותאם צריך להתעדכן בהתאם. [14][20][32][33]
  • בגרסה 3.0.0: ‏MySQL כבר לא נתמך, רק PostgreSQL; משתמשי MySQL עוברים קודם לפי המדריך הרשמי. ה-tags של ה-image השתנו מ-postgresql-v2.x ו-postgresql-latest ל-tags פשוטים של 3.x, ואחרי ה-migrations של ה-schema מומלץ להריץ ANALYZE. [12][19][31][35]

מגבלות

  • ‏Umami בהתקנה עצמית שומר כל אירוע ללא הגבלת זמן ואין לו הגדרת retention, ולכן PostgreSQL רק גדל; תכננו דיסק לפי נתוני הגדילה או מחקו נתונים ישנים בעצמכם. ‏PostgreSQL הוא מסד הנתונים היחיד (12.14 ומעלה); התמיכה ב-MySQL הסתיימה ב-v3. [8][13][19]
  • גם הקלטות sessions (לכל אתר בנפרד, 15% מה-sessions כברירת מחדל, עד 5 דקות כל אחת, נשמרות 30 יום) נשמרות ב-PostgreSQL; ה-presets מניחים שהן כבויות. ‏Redis אופציונלי ולא נמצא בתבנית: התיעוד מציע אותו לתעבורה גבוהה או לכמה instances של Umami. [15][16]
  • המיקום של המבקרים מגיע ממסד GeoLite2 City שמובנה ב-image (כ-66 MB), ולכן הוא עדכני רק כמו ה-image; מאחורי CDN ששולח headers של מיקום, הם קודמים. [10][29]

אבטחה

  • ההפעלה הראשונה יוצרת מנהל admin עם הסיסמה umami. התחברו ושנו אותה מיד, לפני שלוח הבקרה נגיש מהאינטרנט, ואז הפעילו אימות דו-שלבי. [8][11][24]
  • ‏Umami לוקח את ה-IP של המבקר מ-CLIENT_IP_HEADER אם הוגדר, ואחרת מהראשון ברשימת headers ‏(True-Client-IP, ‏CF-Connecting-IP, ‏X-Real-IP ועוד) לפני X-Forwarded-For, ומבקר יכול לשלוח אותם בעצמו. הגדירו את CLIENT_IP_HEADER ל-header שה-proxy שלכם דורס; זה משפיע על המיקום ועל IGNORE_IP. [7][27]
  • לוח הבקרה טוען פיקסל טלמטריה אנונימי מ-i.umami.is ובודק ב-api.umami.is אם יש גרסה חדשה. ‏DISABLE_TELEMETRY=1 ו-DISABLE_UPDATES=1 מכבים אותם; ‏PRIVATE_MODE=1 חוסם כל קריאה חיצונית, כולל אייקונים של אתרים. [7][28]

גיבוי

  • הכול נמצא ב-PostgreSQL (משתמשים, אתרים, אירועים, דוחות, הקלטות), ולכן pg_dump של מסד umami ועותק של ה-.env הם כל הגיבוי; הקונטיינר של Umami לא מחזיק נתונים. [2][3][23]
  • שמרו את APP_SECRET יחד עם ה-dump: ערך חדש מנתק את כולם וגוזר מזהי מבקרים ו-sessions אחרים, כך שמבקרים חוזרים נראים חדשים. בלי ה-TWO_FACTOR_ENCRYPTION_KEY הישן כל משתמש צריך לרשום מחדש את ה-2FA. [7][14][26]

גרסה אחרונה

הגרסה האחרונה של הפרויקט
Umami 3.4.0 [21][35]
הפרופיל נבדק מול

Umami 3.4.0

הפרופיל נבדק מול הגרסה האחרונה.

נבדק ב-
14 באוק׳ 2026
מצב
נבדק ב-90 הימים האחרונים
איפה הגרסאות מתפרסמות
GitHub Releases

הגרסאות האחרונות של כל האפליקציות

גרסה

סטטוס הפרופיל
פורסם
נבדק מול גרסה
Umami 3.4.0
גרסת הפרופיל
1.0.0
המספרים אומתו
14 באוק׳ 2026
גרסת הקטלוג
2026.10.10
מדיניות sizing
2026.10.0
קובץ Compose
לא אומת
האתר הרשמי
umami.is

מקורות

  1. Docker Docs: Control startup order in Compose (pg_isready healthcheck, service_healthy) (תיעוד רשמי · נקרא 11 באוק׳ 2026)
  2. umami repository: docker-compose.yml at v3.4.0 (umami:latest on 3000, init: true, curl /api/heartbeat healthcheck every 5s; postgres:15-alpine with umami/umami and /var/lib/postgresql/data) (Compose רשמי · נקרא 14 באוק׳ 2026)
  3. umami repository: Dockerfile at v3.4.0 (node:22-alpine, apk add curl, user nextjs uid 1001, USER nextjs, EXPOSE 3000, HOSTNAME 0.0.0.0, CMD sh scripts/start-docker.sh, no HEALTHCHECK) (מאגר רשמי · נקרא 14 באוק׳ 2026)
  4. umami repository: scripts/start-docker.sh at v3.4.0 (check-db.js, update-tracker.js, then exec node server.js so it is PID 1) (מאגר רשמי · נקרא 14 באוק׳ 2026)
  5. umami repository: src/app/api/heartbeat/route.ts at v3.4.0 (GET /api/heartbeat returns {ok: true}) (מאגר רשמי · נקרא 14 באוק׳ 2026)
  6. umami repository: src/lib/two-factor/crypto.ts at v3.4.0 (TWO_FACTOR_ENCRYPTION_KEY must match /^[0-9a-fA-F]{64}$/, AES-256-GCM) (מאגר רשמי · נקרא 14 באוק׳ 2026)
  7. Umami Docs: Environment variables (DATABASE_URL the only required one; APP_SECRET and TWO_FACTOR_ENCRYPTION_KEY from openssl rand -hex 32; CLIENT_IP_HEADER, DISABLE_TELEMETRY, PRIVATE_MODE) (תיעוד רשמי · נקרא 14 באוק׳ 2026)
  8. Umami Docs: Installation (PostgreSQL minimum v12.14, UTC recommended; Docker Compose with the app and PostgreSQL on port 3000; default login admin / umami) (תיעוד רשמי · נקרא 14 באוק׳ 2026)
  9. GHCR image config of ghcr.io/umami-software/umami:3.4.0 (linux/amd64): User nextjs, ExposedPorts 3000/tcp, Entrypoint docker-entrypoint.sh, no Healthcheck (מאגר רשמי · נקרא 14 באוק׳ 2026)
  10. Layers of ghcr.io/umami-software/umami:3.4.0 unpacked: nextjs is 1001:65533 (nogroup), /app/geo/GeoLite2-City.mmdb 65,921,355 B, Next 16.3.4 start-server handles SIGTERM (מדידה · נקרא 14 באוק׳ 2026)
  11. Umami Docs: Login (default administrator admin / umami; change the password first, then enable 2FA) (תיעוד רשמי · נקרא 14 באוק׳ 2026)
  12. Umami Docs: Getting updates (docker compose pull, docker compose up --force-recreate -d; run ANALYZE after a major upgrade such as v3) (תיעוד רשמי · נקרא 14 באוק׳ 2026)
  13. Umami Docs: FAQ (PostgreSQL minimum v12.14 only; self-hosted data is retained indefinitely unless you delete it; no cookies) (תיעוד רשמי · נקרא 14 באוק׳ 2026)
  14. Umami Docs: Two-factor authentication (since v3.3.0; needs a 64-hex TWO_FACTOR_ENCRYPTION_KEY; losing it forces re-enrolment) (תיעוד רשמי · נקרא 14 באוק׳ 2026)
  15. Umami Docs: Replays (since v3.1.0, per-website toggle, sample rate 0.15, up to 5 min per recording, stored for 30 days) (תיעוד רשמי · נקרא 14 באוק׳ 2026)
  16. Umami Docs: Enable Redis (optional cache and server-side sessions via REDIS_URL, for high traffic or several instances) (תיעוד רשמי · נקרא 14 באוק׳ 2026)
  17. Umami Docs: Cloud overview (Umami Cloud is the hosted version run by the creators of Umami; same analytics features as self-hosted) (תיעוד רשמי · נקרא 14 באוק׳ 2026)
  18. Umami: Pricing (Umami Cloud plans by monthly events, websites and data retention) (תיעוד רשמי · נקרא 14 באוק׳ 2026)
  19. Umami blog: Umami v3 (breaking change: MySQL is no longer supported, only PostgreSQL; migration guide) (Release notes · נקרא 14 באוק׳ 2026)
  20. Umami blog: Umami v3.3 (two-factor authentication for self-hosters; Docker image hardened and slimmed down) (Release notes · נקרא 14 באוק׳ 2026)
  21. Umami blog: Umami v3.4 (annotations, MCP endpoint off by default on self-hosted via MCP_ENABLED, account API keys) (Release notes · נקרא 14 באוק׳ 2026)
  22. umami repository: scripts/check-db.js at v3.4.0 (refuses PostgreSQL below 9.4.0, then runs prisma migrate deploy unless SKIP_DB_MIGRATION) (מאגר רשמי · נקרא 14 באוק׳ 2026)
  23. umami repository: prisma/schema.prisma at v3.4.0 (website_event with 14 indexes, session with 11; PostgreSQL datasource) (מאגר רשמי · נקרא 14 באוק׳ 2026)
  24. umami repository: prisma/migrations/01_init/migration.sql at v3.4.0 (inserts the admin user with role admin and a bcrypt hash) (מאגר רשמי · נקרא 14 באוק׳ 2026)
  25. umami repository: src/lib/prisma.ts at v3.4.0 (one PrismaPg adapter on DATABASE_URL, optional DATABASE_REPLICA_URL) (מאגר רשמי · נקרא 14 באוק׳ 2026)
  26. umami repository: src/lib/crypto.ts at v3.4.0 (secret() hashes APP_SECRET, or DATABASE_URL when unset; uuid() derives ids from it) (מאגר רשמי · נקרא 14 באוק׳ 2026)
  27. umami repository: src/lib/ip.ts at v3.4.0 (CLIENT_IP_HEADER first, else true-client-ip, cf-connecting-ip, ... x-real-ip, then x-forwarded-for) (מאגר רשמי · נקרא 14 באוק׳ 2026)
  28. umami repository: src/lib/constants.ts at v3.4.0 (UPDATES_URL api.umami.is/v1/updates, TELEMETRY_PIXEL i.umami.is/a.png) (מאגר רשמי · נקרא 14 באוק׳ 2026)
  29. umami repository: src/lib/detect.ts at v3.4.0 (location from CDN headers, else the local GeoLite2-City.mmdb opened with maxmind) (מאגר רשמי · נקרא 14 באוק׳ 2026)
  30. umami repository: LICENSE at v3.4.0 (MIT, Umami Software, Inc.) (מאגר רשמי · נקרא 14 באוק׳ 2026)
  31. umami repository: docker-compose.yml at v2.20.2 (image umami:postgresql-latest, DATABASE_TYPE postgresql) (Compose רשמי · נקרא 14 באוק׳ 2026)
  32. umami repository: Dockerfile at v3.2.0 (CMD ["npm", "run", "start-docker"]) (מאגר רשמי · נקרא 14 באוק׳ 2026)
  33. umami repository: Dockerfile at v3.3.0 (CMD ["sh", "scripts/start-docker.sh"]) (מאגר רשמי · נקרא 14 באוק׳ 2026)
  34. GHCR manifest of ghcr.io/umami-software/umami:3.4.0 (linux/amd64): 322,703,350 B compressed in 19 layers; layers decompressed and counted: 1,105,421,824 B (מדידה · נקרא 14 באוק׳ 2026)
  35. GHCR tags of ghcr.io/umami-software/umami (newest release 3.4.0, same digest as latest; postgresql-* tags end at 3.0.0, plain 3.x tags since) (מאגר רשמי · נקרא 14 באוק׳ 2026)
  36. node-postgres Docs: pg.Pool (max clients in the pool: 10 by default) (תיעוד רשמי · נקרא 14 באוק׳ 2026)
  37. docker-library/postgres: 18/trixie Dockerfile (postgres uid/gid 999, VOLUME /var/lib/postgresql) (מאגר רשמי · נקרא 14 באוק׳ 2026)
  38. docker-library/postgres: 18/trixie docker-entrypoint.sh (chown PGDATA, then gosu postgres) (מאגר רשמי · נקרא 14 באוק׳ 2026)
  39. PostgreSQL 18 documentation: 19.4 Resource Consumption (תיעוד רשמי · נקרא 10 באוק׳ 2026)
  40. PostgreSQL 18 documentation: 19.3 Connections and Authentication (תיעוד רשמי · נקרא 10 באוק׳ 2026)
  41. PostgreSQL 18 documentation: 19.10 Vacuuming (autovacuum settings) (תיעוד רשמי · נקרא 10 באוק׳ 2026)
  42. PostgreSQL 18 documentation: 19.5 Write Ahead Log (max_wal_size) (תיעוד רשמי · נקרא 10 באוק׳ 2026)
  43. PostgreSQL 18 documentation: 51.2 How Connections Are Established (תיעוד רשמי · נקרא 10 באוק׳ 2026)
  44. Docker Official Image postgres: documentation (docker-library/docs) (תיעוד רשמי · נקרא 10 באוק׳ 2026)
  45. Docker Hub: library/postgres tag 18.6 (compressed image sizes) (מאגר רשמי · נקרא 10 באוק׳ 2026)

כל אפליקציות ה-self-hosted