האתר של יוחאי

מוזמנים להכנס (:

הקמת תת-דומיין לשרת N8N בענן Oracle Cloud: אתגרים ופתרונות

נכתב על ידי AI כמעט לגמרי!

רקע ומניע

הסיבה שבחרתי להקים את הפרויקט הזה היא פשוטה: זה כיף לשחק עם סאבדומיינים, ליצור לעצמי שירותים חדשים, ולהתנסות בטכנולוגיות עדכניות. כל קהילת האוטומציה מדברת לאחרונה על N8N, אז רציתי לנסות בעצמי. מכיוון שאין אפשרות להריץ N8N על אחסון בסיסי בדרימהוסט, החלטתי להרים שרת ייעודי ב-Oracle Cloud.

ניהול רשומת DNS ב-DreamHost

השלב הראשון היה להגדיר רשומת DNS ב-DreamHost. למרות שהממשק נראה פשוט, גיליתי ששדה ה-Host מוגבל ולא מאפשר עריכה חופשית של שם תת-הדומיין. לאחר עיון בתיעוד, הבנתי שהמערכת משלימה אוטומטית את הדומיין הראשי לכל תת-דומיין, ולכן צריך להתאים את ההגדרות לחשיבה הזו.

אתגרי Docker ו-Nginx על השרת

המעבר להגדרות בשרת עצמו הביא איתו אתגרים חדשים: השרת כבר הריץ Nginx מערכתי על פורט 80, מה שמנע מ-nginx-proxy של Docker לפעול כמתוכנן. במקום להילחם במצב, החלטתי לנצל את Nginx הקיים ולשלב אותו כ-reverse proxy מול קונטיינרים של Docker, תוך שמירה על סכמה ניהולית מסודרת.

פתרון אינטגרציה עם Nginx

כדי לאפשר אינטגרציה חלקה, קבעתי שקונטיינר ה-Node.js יאזין ל-localhost על פורט 3000, ויצרתי server block ייעודי בקובץ התצורה של Nginx (/etc/nginx/sites-available/subdomains). כך ניצלתי את המבנה הקיים של השרת, שמאפשר ניהול מספר תת-דומיינים בקלות יחסית. למידע נוסף על Reverse Proxy ב-Nginx, אפשר לעיין בתיעוד הרשמי.

שימוש בכלי AI בתהליך

במהלך הדרך נעזרתי בכלי AI (Cascade) שסייע לי לאתר קונפליקטים בין השירותים השונים ולהציע פקודות מדויקות לפתרון. השימוש בעוזר AI תרם רבות לקיצור תהליכים ולדיוק בבחירת הפתרון הטכני, במיוחד בזיהוי התנגשות בין nginx-proxy ל-Nginx המובנה.

בדיקות ואימות הצלחת ההגדרה

לאחר השלמת ההגדרות, ביצעתי בדיקות באמצעות פקודת curl עם כותרת Host מתאימה, ואימתתי שהתוכן נשלף כראוי מהשרת. כעת, לאחר הפצת רשומת ה-DNS, ניתן להתחבר לשרת האוטומציה מכל מקום, ללא תלות במחשב מקומי.

מסקנות ותיעוד

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


הפרומפט שבו השתמשתי:

מעולה, עכשיו תכתוב בלוג פוסט בנושא
הוא צריך להיות ענייני, אבל גם אישי
מספר על הבעיות שנתקלתי בהן, ואין פתרתי אותן
אם השתמשי בכלי AI אז לציין את זה
אפשר לציין את הדומיין עצמו ואת הסיבה שעשיתי את זה – כדי שיהיה לי שרת אוטומציוצ מבוסס N8N בענן
תכתוב את זה יחסית יבש, אני אוסיף צבע אחר כך
שיהיה באורך של בין 5 ל-8 פסקאות
שיהיה בשפה עברית יחסית גבוהה וטכנית

וחפרתי וקשקשתי עוד קצת עם ה-AI של דיה בדפדפן לדייק עוד כמה דברים


נכתב בהתחלה בעורך הקוד Windsurf, ואז קצת ליטושים בדפדפן החדש Dia