מדריך מעשי ל-n8n self-hosting: למה בכלל לארח לבד, איך מקימים עם Docker על VPS, איך מאבטחים ומגבים, ומתי ענן מנוהל הוא הבחירה החכמה יותר.
אחד הדברים הטובים ב-n8n הוא שאפשר להריץ אותו בעצמנו. בניגוד לרוב פלטפורמות האוטומציה, הוא קוד פתוח ובנוי ל-self-hosting - כלומר התהליכים והנתונים יכולים לחיות לגמרי על תשתית שבשליטתנו. במדריך n8n self-hosting הזה נעבור על הסיבות לעשות את זה, על אפשרויות ההקמה הריאליות, על התקנה מבוססת Docker שאפשר באמת לעקוב אחריה, ועל עבודת האבטחה והגיבוי שהופכת instance של תחביב למשהו שאפשר לסמוך עליו לעסק. נהיה גם כנים לגבי המצבים שבהם תשלום על ענן מנוהל הוא המהלך החכם יותר - כי self-hosting לא חינמי גם כשהתוכנה חינמית.
אני מריץ אוטומציה self-hosted ללקוחות באופן קבוע, אז זה התהליך שאני משתמש בו בפועל, לא תיאורטי. אם עדיין לא בטוחים שn8n הוא הכלי הנכון, כדאי להתחיל עם המדריך n8n למתחילים ועם הדעה הכנה שלי בn8n מול אוטומציה בקוד.
למה בכלל לארח את n8n לבד
שלוש סיבות חוזרות שוב ושוב.
- פרטיות ושליטה בנתונים. כשמארחים לבד, הנתונים שזורמים דרך התהליכים לא נוגעים בענן של אף אחד אחר. לכל דבר רגיש - רשומות לקוחות, נתונים פיננסיים פנימיים, מידע מוסדר - זה לרוב הגורם המכריע.
- עלות בקנה מידה. n8n cloud מנוהל וכלים כמו Zapier גובים לפי execution או operation. עלויות ספקי צד שלישי כאלה משולמות ישירות לספק ואינן חלק מהתמחור של יהונתן. instance self-hosted על שרת קטן מריץ executions ללא הגבלה בעלות קבועה של השרת, שיכולה להיות חלק קטן מהמחיר הנמדד ברגע שמריצים אלפי תהליכים ביום.
- גישה מלאה לפיצ'רים וחופש. שולטים בגרסה, במשתני הסביבה, בנודים מותאמים ובאינטגרציות. שום דבר לא נעול מאחורי תוכנית יקרה יותר.
אם אף אחת מהסיבות האלה לא רלוונטית - גם זו תשובה שימושית. היא אומרת שענן מנוהל כנראה מספיק ואפשר לדלג לגמרי על הנטל התפעולי.
אפשרויות ה-self-hosting
Self-hosting הוא ספקטרום, לא בחירה אחת. הנה האפשרויות הריאליות, בערך מהקלה למורכבת.
| אפשרות | מאמץ | הכי מתאים ל |
|---|---|---|
| Docker על VPS | בינוני | רוב האנשים - נקודת האיזון בין שליטה לפשטות |
| image בלחיצה אחת מ-marketplace | נמוך | להתחיל מהר, עם פחות שליטה על הסביבה |
| שרת ביתי / Raspberry Pi | בינוני | שימוש אישי, לימוד, תעבורה נמוכה |
| Kubernetes | גבוה | צוותים שכבר מריצים k8s וצריכים סקייל |
כמעט לכולם, Docker על VPS קטן הוא התשובה הנכונה. ניתן לשחזור, קל לגיבוי, וקל להעברה לשרת גדול יותר בהמשך. זה המסלול שנפרט להלן.
שלב ראשון: מקימים שרת
בוחרים ספק VPS שסומכים עליו. Hetzner, DigitalOcean, Vultr ו-Linode כולם עובדים היטב. ל-instance של n8n למשתמש יחיד עם שימוש בינוני, שרת קטן עם 2 ג'יגה RAM מספיק; עולים ל-4 ג'יגה אם מריצים תהליכים כבדים או payloads גדולים. עלויות השרת משולמות ישירות לספק האחסון ואינן חלק מהתמחור של יהונתן. יוצרים את השרת עם Ubuntu LTS עדכני, מפנים תת-דומיין (למשל n8n.yourdomain.com) ל-IP שלו עם רשומת A, ומתחברים ב-SSH. יוצרים משתמש שאינו root עם sudo במקום לעבוד כ-root.
שלב שני: מתקינים Docker
Docker הוא מה שהופך את זה לתחזיק. מתקינים עם הסקריפט הרשמי ומוסיפים את המשתמש לקבוצת docker:
curl -fsSL https://get.docker.com | sh
sudo usermod -aG docker $USER
# מתנתקים ומתחברים מחדש כדי שהשינוי בקבוצה ייכנס לתוקףDocker מודרני כולל Compose, כך שאפשר לתאר את כל הסביבה בקובץ אחד ולהעלות אותה בפקודה אחת.
שלב שלישי: קובץ ה-docker-compose
הנה הקמה מינימלית אך הגיונית ל-production: n8n על בסיס Postgres, עם volume קבוע ומשתני הסביבה המרכזיים. SQLite הוא ברירת המחדל, אבל מומלץ לעבור ל-Postgres ברגע שזה יותר מצעצוע - הוא מטפל ב-executions מקבילים ובהיסטוריות גדולות הרבה יותר טוב.
services:
n8n:
image: n8nio/n8n:1.x
restart: always
environment:
- N8N_HOST=n8n.yourdomain.com
- N8N_PROTOCOL=https
- WEBHOOK_URL=https://n8n.yourdomain.com/
- N8N_ENCRYPTION_KEY=your-long-random-secret
- DB_TYPE=postgresdb
- DB_POSTGRESDB_HOST=postgres
- GENERIC_TIMEZONE=Asia/Jerusalem
volumes:
- n8n_data:/home/node/.n8nהערך הכי חשוב כאן הוא N8N_ENCRYPTION_KEY. n8n משתמש בו להצפין את האישורים השמורים. אם מאבדים אותו, כל אישור שמור הופך לבלתי קריא. מייצרים מחרוזת אקראית ארוכה, שומרים אותה ב-password manager, ולעולם לא משנים אותה בין deployments.
שלב רביעי: HTTPS הוא לא אופציה
לא חושפים את n8n ישירות על HTTP רגיל. מציבים לפניו reverse proxy שמטפל ב-TLS אוטומטית. Caddy הוא האפשרות הקלה ביותר - קונפיג של שתי שורות מביא ומחדש תעודת Let's Encrypt. Nginx Proxy Manager הוא חלופה נוחה עם ממשק web. Webhooks, callbacks של OAuth והעורך כולם מניחים HTTPS, אז השלב הזה הוא חלק מהשגת instance עובד, לא תוספת נחמדה.
שלב חמישי: אבטחה וגיבויים
זה החלק שהקמות תחביב מדלגות עליו ומתחרטות. instance של n8n שמתארח לבד נגיש מהאינטרנט ומחזיק את המפתחות לכל שירות שהוא מתחבר אליו. מתייחסים אליו בהתאם:
- Firewall. מאפשרים רק פורטים 80, 443 ו-SSH. סוגרים את כל השאר.
- אימות. מדליקים את ניהול המשתמשים של n8n או basic auth כדי שהעורך לא יהיה פתוח לעולם.
- עדכונים. מקבעים את ה-image לגרסה מסוימת. קוראים את ה-changelog, בודקים, ואז משדרגים במודע - לא מריצים
latestונותנים לו להפתיע. - גיבויים. מתזמנים dump לילי של Postgres בתוספת עותק של ה-data volume לאחסון מחוץ לשרת (S3, Backblaze, שרת אחר). גיבוי שמעולם לא שוחזר הוא תקווה, לא גיבוי - כדאי לבדוק שחזור לפחות פעם אחת.
שום דבר מזה לא אקזוטי. זו המשמעת הסטנדרטית של החזקת שרת, שהיא העלות האמיתית של self-hosting שהמילה "חינם" מסתירה.
מתי ענן מנוהל הוא הבחירה הטובה יותר
אני מארח הרבה לבד, ועדיין אומר להמון אנשים לשלם על n8n cloud מנוהל במקום. בוחרים מנוהל כש:
- לא רוצים להיות אחראים על patching, ניטור וגיבוי של שרת.
- הנפח נמוך מספיק שתמחור נמדד זול יותר מ-VPS בתוספת הזמן לתחזוקה.
- אין נוחות פנימית עם Linux, Docker או DNS, ואין חשק ללמוד.
- השבתה יקרה ועדיף שמישהו אחר ישא בנטל ה-on-call.
החשבון הכן הוא זה: self-hosting מחליף חשבון תוכנה חוזר בעבודה תפעולית חוזרת. אם הזמן שווה יותר מההפרש, מנוהל מנצח. התלבטות זו לגבי השאלה הרחבה של לבנות מול לקנות מורחבת במאמר אוטומציה עסקית לעסקים קטנים.
מחברים הכול יחד
הקמת n8n self-hosted איתנה: VPS קטן, Docker Compose שמריץ n8n בתוספת Postgres, reverse proxy ל-HTTPS, firewall, אימות, מפתח הצפנה שמור, וגיבויים אוטומטיים מחוץ לשרת. כשעושים את זה נכון - יש שרת אוטומציה פרטי, זול להרצה בקנה מידה, ולגמרי בשליטתנו. מדלגים על חלקי האבטחה והגיבוי - ויש מחדל שמחכה לקרות.
אם רוצים instance של n8n self-hosted מוקם כמו שצריך, מוקשח, מגובה ומועבר כשהוא עובד, זה משהו שאני עושה ללקוחות כל הזמן. אני יכול להקים את השרת, להעלות את התהליכים, לנעול אותו ולארח אותו כך שלא יצטרכו לחשוב על התשתית. קובעים שיחה ומספרים מה רוצים להפוך לאוטומטי, או פונים דרך טופס יצירת הקשר ונאפיין יחד.
שאלות נפוצות
האם n8n חינמי אם מארחים אותו לבד?
התוכנה חינמית וקוד פתוח תחת רישיון fair-code ל-self-hosting, כך שלא משלמים דמי execution. אבל עדיין משלמים על השרת לספק האחסון, ומשקיעים זמן בהקמה, אבטחה, עדכונים וגיבויים. תוכנה חינמית לא אומרת חינמית לתפעול.
איזה גודל שרת צריך ל-n8n self-hosted?
למשתמש יחיד עם תהליכים בינוניים, VPS קטן עם 2 ג'יגה RAM מספיק. עולים ל-4 ג'יגה ומעלה אם מריצים תהליכים מקבילים כבדים, payloads גדולים, או queue mode. מתחילים קטן - קל לשנות גודל VPS בהמשך.
האם להשתמש ב-SQLite או Postgres עם n8n?
SQLite הוא ברירת המחדל ומתאים לבדיקות או שימוש קל מאוד. ברגע ש-n8n עובד בפועל עם executions מקבילים והיסטוריה שגדלה, עוברים ל-Postgres. הוא מטפל במקביליות ובמערכי נתונים גדולים הרבה יותר טוב, וזה מה שאני מטמיע בכל instance של production.
מה זה N8N_ENCRYPTION_KEY ולמה זה חשוב?
זה הסוד ש-n8n משתמש בו להצפין את האישורים השמורים. אם מאבדים אותו או משנים אותו בין deployments, כל אישור שמור הופך לבלתי קריא והתהליכים נשברים. מייצרים ערך אקראי ארוך פעם אחת, שומרים אותו ב-password manager, ושומרים שהוא זהה בין שחזורים והעברות.
לארח n8n לבד או להשתמש בענן המנוהל?
מארחים לבד כשצריך שליטה בנתונים, מריצים נפח גבוה שבו עלות קבועה עדיפה על תמחור נמדד, ויש נוחות עם Linux ו-Docker. משתמשים בענן מנוהל כשלא רוצים להחזיק שרת, הנפח נמוך, או שהשבתה יקרה ועדיף שמישהו אחר יטפל ב-on-call.
להמשך קריאה
שירות רלוונטי
אוטומציה לעסקים
אני בונה אוטומציות מותאמות שמורידות עבודה חוזרת מקצה לקצה.
על הכותב
יהונתן סעדיה
מהנדס פרילנסר לאוטומציה, אתרים ו-MVP
אני יהונתן סעדיה, מהנדס בכיר שבונה אוטומציה עסקית, אתרים מותאמים ומוצרי MVP לעסקים קטנים ובינוניים בארה"ב, אירופה וישראל. המדריכים האלה נכתבים מתוך עבודה אמיתית עם לקוחות, לא מתיאוריה.
בוא נעבוד יחדיש לך פרויקט דומה?
ספר לי מה אתה מנסה להפוך לאוטומטי או לבנות, ואומר לך מהי הדרך המהירה והאמינה ביותר ליישם את זה.
