לא מצליח לעבור את ה-bootstrapping

התקנתי עכשיו את Discourse על שני מכשירים וירטואליים שונים.
אני משתמש בהנחיות ההתקנה הרשמיות.
אחד רץ על Debian 12 במסגרת VMWare Fusion על Mac Pro, והשני הוא Ubuntu 24 במכונה וירטואלית שרצה ב־TrueNAS.
שניהם על שרתים ייעודיים הרצים על הרשת המקומית שלי עם רשתות מחוברות וכתובות IP ייחודיות שניתנות לגישה.
השרת TN מארח אפליקציות מרובות במכולות Docker והן פועלות וניתנות לגישה דרך LAN ואינטרנט, ה-Mac Pro אירח באופן מקומי ויקי.
בשני המקרים, פונקציית ההתחלה מושלמת, אבל אני לא מקבל אתר פעיל. רק ‘השרת לא מגיב’ בדפדפן.
לפי docker ps הקונטיינר “app” מריץ ועובד, מאזין על הפורטים 80 ו־443, ו־ufw מדווח שהפורטים האלה מותרות.
בכמה זמן האתר בדביאן הראה דף כניסה של nginx כברירת מחדל, אבל עכשיו זה גם לא מגיב.
אני לא מפתח או וואזב מקצועי so אני לא בטוח איך לתקן את הבעיה, ביקשתי עזרה מ־Grok אך עד כה כלום לא עזר.

אודה מאוד לכל עזרה שתינתן.

If they are not on the public internet with a domain name pointing at them then you can’t do a standard install.

You can look at Install Discourse on a residential internet with Cloudflare Tunnel

לייק 1

יש לי כתובת IP סטטית זמינה לציבור ושם דומיין שמצביע אל אותה כתובת. בדרך כלל אני משתמש ברשומת A כללית (wildcard) כדי להפנות כל מארח ל-IP הזה, אך בדרכי פתרון הבעיות נתקלתי בפרסום שאומר ש-Discourse עלול שלא לעבוד יפה עם כתובות המנוהלות דרך פרוקסי ב-Cloudflare DNS, ולכן יצרתי רשומת A ייעודית וכיביתי את הפרוקסי באותה רשומה.

[צטטה=“tknospdr, עמ’ 1, נושא 364284”]
בשני המקרים, פונקציית ההאכלה מסתיימת, אבל אני לא מקבל אתר פועל. רק ‘השרת לא מגיב’ בדפדפן.
[/צטטה]

הרצת את discourse-setup? האם זה עבר את בדיקת החיבור?

האם אני משתמש במונח “פונקציית אתחול” (bootstrap function) נכון?
רוצה רק להיות בטוח שאנחנו מדברים על אותו דבר.
./discourse-setup הוא ה- bootstrap, נכון?
אז אם אני אומר שזה אתחול, והקונטיינר רץ, אז מבחן החיבור, שמתרחש בהתחלה של ההגדרה, הושלם בהצלחה.

הכל מובן?

Well, sort of. It creates a app.yml and then runs ./launcher bootstrap app.

If you’ve run it a bunch of times without DNS working right then you’ve hit rate limits with let’s encrypt. The easy solutions are to wait a week or to use a different domain name.

And nothing else is running on that machine?

And when you ran discourse-setup it didn’t complain about not being able to connect to itself?

[ציטוט=“pfaffman, פוסט:6, נושא: 364284”]
אם הרצת את זה הרבה פעמים בלי שה-DNS יעבוד כראוי, כנראה הגעת להגבלות קצב עם Let’s Encrypt. הפתרונות הפשוטים הם לחכות שבוע או להשתמש בשם דומיין שונה.
[/ציטוט]
אני הרצת את זה רק פעם אחת על כל VM, ושימשתי שם דומיין שונה לכל אחד.

[ציטוט=“pfaffman, פוסט:6, נושא: 364284”]
וללא שום דבר אחר רץ על המחשב הזה?
[/ציטוט]
VMים חדשים לחלוטין בלי שום דבר אחר רץ עליהם. על החומרה הפיזית יש דברים אחרים שרצים. אך יש להם כתובות IP פנימיות נפרדות מהשרתים שלהם.

[ציטוט=“pfaffman, פוסט:6, נושא: 364284”]
וכאשר הרצת את הפקודה discourse-setup זה לא התלונן שאינו מסוגל להתחבר לעצמו?
[/ציטוט]
נכון.

הנה השגיאות שהמצאתי בהפעלת ההתקנה, אין אף אחת מהן שנראית כמו גורמת לבעיה:

690:M 30 Apr 2025 22:05:22.859 # אזהרה: לא ניתן ליצור סוקט קליטת TCP לשרת *:6379: קישור: הכתובת כבר בשימוש
690:M 30 Apr 2025 22:05:22.859 # נכשל בהאזנה על הפורט 6379 (TCP), מבטל.
109:M 30 Apr 2025 21:59:42.411 # אזהרה: יש להפעיל את אפשרות overcommit הזיכרון! בלעדיו, שמירת רקע או שכפול עלולים לכשל תחת מצב זיכרון נמוך...
2025-04-30 21:59:41.125 UTC [60] postgres@postgres שגיאה: בסיס הנתונים "discourse" כבר קיים
2025-04-30 21:59:41.274 UTC [63] postgres@discourse שגיאה: התפקיד "discourse" כבר קיים
אזהרה: סpecים לא פתורים או מעורפלים במהלך Gem::Specification.reset:
      stringio ( >= 0)
      גרסאות זמינות/מותקנות של הג'ם הזה:
      - 3.1.7
      - 3.1.5
      - 3.1.1
אזהרה: ניקוי של spceים לא פתורים. נסה 'gem cleanup '
בבקשה לדווח על באג אם זה גורם לבעיות.
ההגדרה 'staticAddonTrees' תותאם אוטומטית ל-true בגרסאת ההמשך של Embroider וללא אפשרות לכבותה. כדי להתכונן לכך, עליך להגדיר 'staticAddonTrees: true' בהגדרת ה-Embroider שלך.
ההגדרה 'staticAddonTestSupportTrees' תותאם אוטומטית ל-true בגרסאת ההמשך של Embroider וללא אפשרות לכבותה. כדי להתכונן לכך, עליך להגדיר 'staticAddonTestSupportTrees: true' בהגדרת ה-Embroider שלך.
הגבלת heap_size של Node.js נמוכה מ-2048MB. הגדר --max-old-space-size=2048 ו-CHEAP_SOURCE_MAPS=1
-e DISCOURSE_SMTP_DOMAIN=discourse.example.com
[BABEL] הערה: קוד המייצר לא אופטימיז את סגנון הקובץ /var/www/discourse/app/assets/javascripts/discourse/ember/ember-template-compiler.js מכיוון שהוא עובר את המקסימום של 500KB.
[ BABEL] הערה: קוד המייצר לא אופטימיז את סגנון הקובץ /var/www/discourse/app/assets/javascripts/discourse/ember/ember.js מכיוון שהוא עובר את המקסימום של 500KB.

מה המפרטים של ה-VMs שלך? למשל, כמה vCPUs/זיכרון מוקצים להם?

שניהם יש 2/2

לייק 1

האם ההגדלה ל-4 GB RAM מסייעת? אני חושב שהדרישות לזיכרון אולי עלו.

לייק 1

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

אני משתמש ב-NPM בפנים.

צעדים לגרום לדברים לעבוד:

  1. שנה את פורט צד השרת ל-7080 ל-http
  2. מכיוון שאני יעבור תעבורה דרך מנהל הפרוקסי שלי, פישטתי את חיי וכיביתי את סקריפטי ה-LE
  3. עדכנתי את היישום
  4. העברתי ‘ext IP:80’ ל-‘int IP:7080’ בפרוקסי ההפוך, ואז המכולה הפכה את הפורטים… ואז הם עשו הוקי פוקי והסתובבו.

עכשיו הכל נראה שעובד טוב עד כה.

2 לייקים