FastComments.com


אירוח FastComments באתר הלקוח

FastComments מספקת מספר פתרונות לפריסה. הנפוץ ביותר הוא שבו אנחנו מארחים את היישום בעבורך.

עם זאת, אנו מבינים שלקוחות מסוימים אינם יכולים לאחסן את המידע שלהם בענן, ודורשים לארח את כל הנתונים שלהם באתר הלקוח.

תיעוד זה מכסה את מקרה השימוש הזה.

מה נכלל Internal Link

FastComments On Prem מאפשר לך לפרוס את פתרון התגובות החיות שלנו, כולל כל כלי המודרציה והניהול, על החומרה שלך.

זה אומר שיש לך שליטה על הנתונים שלך, ומערכת התגובות יכולה להיות מוגבלת ל-LAN המקומי שלך או לרשת התאגידית.

אינסטנציות Internal Link

רכיבים נדרשים

עבור On-Prem, FastComments מורכב רק משרת אפליקציה וממאגר נתונים. פישרנו את הפריסה כך שהאפליקציה יכולה לשרת את כל התעבורה ישירות מבלי להוסיף רכיבים אחרים.

שרת האפליקציה מסופק בתמונת Docker וניתן לפרוס אותו עם כל פתרון ניהול קונטיינרים.

ממאגר הנתונים, MongoDB, ניתן להפעיל בעצמכם או לארח אצל ספק אחר כמו AWS DocumentDB או MongoDB Atlas.

FastComments נבדק כרגע עם MongoDB 7, אולם אנו שואפים להתאים גם ל-DocumentDB כדי להקל על הפריסה.

מידות מופעים

תגלו ש-FastComments מותאם די טוב ואינו דורש מכונות גדולות לאפליקציה עצמה כדי לשמור על P99s נמוכים.

כל עבודות ה-batch וה-cron משתמשות בזרימה (streaming) כדי להגביל את השימוש הכולל בזיכרון.

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

מופעי שרת אפליקציה

Concurrent UsersTotal Cluster CPUsTotal Cluster Memory
1001256mb
1K2512mb
10K81gb
100K328gb
1M6464gb

למשל, ליבה בודדת שמשרתת כ-100 שרשורים של תגובות בשנייה בדרך כלל לעולם לא צורכת יותר מ-250mb RSS.

מופעי שרת מאגר נתונים

גיזום (sizing) של מאגר הנתונים תלוי בגודל ה-working set, שהוא כמות הנתונים שאתם ניגשים אליה בנקודת זמן נתונה, וכן בבקשות בו-זמנית.

FastComments יחסית ידידותי ל-Mongo, בכך שעבור השאילתות החמות הוא משתמש ברמזי אינדקס, ב-cursors זורמים, ויש לו הגבלות תחרותיות באזורים שונים כדי למנוע עומס יתר על מערכות משניות.

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

Concurrent UsersComments StoredCPUs Per InstanceMemory Per Instance
1001k1256mb
1K5k2512mb
10K100k82gb
100K500k168gb
1M5M3232gb

הטבלאות שלעיל הן הערכות שמרניות. ייתכן שתגלו שהדרישות בפועל שונות בהתאם לתצורה הספציפית שלכם (גדלי עמודים, נפח תגובות וכו').

הגדרות Internal Link

FastComments משתמשת במשתני סביבה להגדרות. הרשימה הבאה מפרטת את כל המשתנים הנתמכים שרלוונטיים לפריסה מקומית (On-Prem).

VariableDefaultInfoRequiredExamples or Valid Values
NODE_ENVסוג הסביבה.כןproduction, dev
MONGO_URIURI לחיבור למסד הנתונים.כן
MONGO_ENABLE_SSLfalseמאפשר שימוש ב-SSL לחיבור למסד הנתונים.לאtrue, false
MONGO_ENABLE_SSL_VALIDATEfalseמאפשר אימות התעודה מול תעודת הרשות (CA) בעת חיבור ל-Mongo.לאtrue, false
MONGO_SSL_CAקובץ PEM של ה-CA ל-SSL של Mongo.לא/path/to/some-cert.pem
ADMIN_NOTIFICATIONS_EMAILדוא״ל שאליו יישלחו התראות מערכת חשובות.לאadmin-group@bigcorp.com
IP_HASH_SALTמלח (salt) להאשטת כתובות IP.כן
SESSION_SECRETהמפתח המשמש לחתימת סשנים.כן
SESSION_STORE_SECRETהמפתח המשמש לחתימה/האשת (hash) של סשנים באחסון. חייב להיות שונה מ-SESSION_SECRET.כן
HOSTNAMEשם המארח שבו FastComments פרוס (לוח ניהול וכו'). לא צריך לכלול פורט או פרוטוקול.כןexample.com
HOST_ADDRURI נגיש שבו FastComments פרוס (לוח ניהול וכו').כןhttps://example.com
EMAIL_CONFIG_PATHנתיב במערכת הקבצים המקומית שבו ממוקמת תצורת הדוא״ל (SMTP, התאמות דומיין/ספקים וכו׳).כן/my/config.json
EMAIL_DEFAULT_FROM_NAMEFastComments Robotכותרת "שם השולח" בהודעות דוא״ל.לאMy Company Name
EMAIL_DEFAULT_FOOTER_LOGO/images/logo-32-2020-01.pngלוגו בפוטר של הדוא״ל.לאhttps://exmaple.com/footer.png
EMAIL_DEFAULT_TRANSPORTהחלפה ל-"defaultTransport" בתוך EMAIL_CONFIG_PATH. שימושי לפריסת אותו קובץ קונפיג על פני סביבות שונות.לאmyTransportName
ON_PREM_TENANT_IDה-ID של החשבון שלכם ב-fastcomments.com. משמש להרשמת מפתח הרישיון.לא
ON_PREM_LICENSE_KEYמפתח רישיון לפריסה מקומית.לא
GIPHY_API_KEYמפתח API ל-Giphy. אם לא צויין, יש ליצור כלל בקונפיג שיבטל את בורר ה-GIF.לא
GIPHY_DEFAULT_RATINGpgמשמש באינטגרציה עם Giphy. ניתן גם להחליף באמצעות חוקי התאמת וידג'ט.לאg, pg, pg-13, r
OPENAI_SECRET_KEYמשמש לתכונות מבוססות OpenAI כגון זיהוי ספאם אופציונלי מבוסס GPT.לא
CDN_HOST_ADDRשם המארח ממנו יתאחזרו נכסים (assets). ברירת המחדל היא הערך של HOSTNAME.לאexample.com
LARGE_FILE_HOST_ADDRשם המארח ממנו ייטענו קבצים גדולים (כמו ייצוא). ברירת המחדל היא הערך של CDN_HOST_ADDR.לאexample.com
LARGE_FILE_LOCATION_TYPElocal_diskהיכן מאוחסנים קבצים גדולים, כגון ייצוא.לאlocal_disk, s3
FROM_EMAIL_HOSTשם המארח שממנו ישלחו הודעות דוא״ל.לאexample.com
COOKIE_IDfastcomments.sidשם העוגייה של fastcomments.לא
COOKIE_HOSTNAME.fastcomments.comהערך של שדה 'hostname' בעוגייה. מומלץ להקדים בנקודה.לא.example.com
S3_ACCESS_KEYמשמש להעלאות קבצים של משתמשים, אווטארים וכו'. אם לא מוגדר, ברירת המחדל היא מערכת הקבצים המקומית.לא
S3_SECRET_KEYמשמש להעלאות קבצים של משתמשים, אווטארים וכו'.לא
S3_REGIONאזור (region) לשימוש בהעלאות S3.לא
S3_BUCKETדלי (bucket) לשימוש בהעלאות קבצים.לא
S3_HOSTה-host של שירות S3.לא
CACHE_DIRמיקום לשמירת מטמון אופציונלי לא מקוון, לשימוש כאשר DB אינו זמין. מתרענן תקופתית עם 100 השרשורים המובילים של תגובות.לא
BACKUP_DIRמיקום לאחסון נתונים לשימוש כאשר DB אינו זמין. אם תגובה נשלחת כשה-DB אינו זמין היא תישמר כאן ותטופל מאוחר יותר.לא

שים לב שכל המשתנים הקשורים לדומיין משתמשים בסיומת _HOST או _ADDR. ההבדל הוא:

  • _HOST: example.com
  • _ADDR: https://example.com

המשתנה EMAIL_CONFIG_PATH צריך להכיל נתיב לקובץ JSON בפורמט הדוגמה הבא:

תצורת דוא"ל
Copy Copy
1
2{
3 "defaultDKIM": {
4 "domainName": "mycompany.org",
5 "keySelector": "2024",
6 "privateKey": "-----BEGIN PRIVATE KEY-----\nABCDEFG\n-----END PRIVATE KEY-----"
7 },
8 "providerTransports": {
9 "yahoo.com": "specialTransport"
10 },
11 "defaultTransport": "mailgun",
12 "transports": {
13 "mailgun": {
14 "host": "smtp.mailgun.org",
15 "port": 587,
16 "secure": false,
17 "auth": {
18 "user": "admin@somewhere.com",
19 "pass": "password"
20 },
21 "tls": {
22 "ciphers": "SSLv3"
23 }
24 },
25 "specialTransport": {
26 "host": "smtp.someplace.org",
27 "port": 587,
28 "secure": false,
29 "auth": {
30 "user": "admin@example.com",
31 "pass": "password"
32 },
33 "tls": {
34 "ciphers": "SSLv3"
35 }
36 }
37 }
38}
39

בדוגמה שלמעלה הגדרנו טרנספורט דוא״ל ברירת מחדל SMTP בשם mailgun. כמו כן הגדרנו טרנספורט מיוחד שאותו אנו משתמשים ספציפית עבור כתובות של @yahoo.com. במצבים מסוימים רצוי להשתמש בספק ספציפי או בכתובת IP שולחת עבור דומיין כדי לכוונן את מסירת ההודעות. זה אופציונלי.

DocumentDB

בעת חיבור ל-DocumentDB תרצו להגדיר MONGO_ENABLE_SSL=true MONGO_SSL_CA=/some/path.pem כדי להיות תואמים להגדרות ברירת המחדל.


השבתת מסד הנתונים ומצב תחזוקה Internal Link


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

בנוסף, במצב תחזוקה כל ההערות נשמרות ב-BACKUP_DIR. הן יעובדו (יבדקו ספאם, וכו') וישמרו ברגע שמערכת תחזור אונליין.

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

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

שימו לב שבמצב תחזוקה לא ניתן לבצע אימות נאות של שרשורי תגובות, ולכן מגובים רק השרשורים שנחשבים בבטחה לציבוריים.

במצב תחזוקה תכונות רבות אינן זמינות.

קוד הווידג'ט Internal Link


קטעי קוד וספריות בצד הלקוח עבור On-Prem זהים לאלו של מוצר ה-SaaS. עם זאת, עליך לציין את apiHost ואת נתיב הסקריפט הנכון:

קוד תגובות עבור On-Prem
Copy Copy
1
2<script async src="https://my.host.com/js/embed-v2-async.min.js"></script>
3<div id="fastcomments-widget"></div>
4<script>
5 window.fcConfigs = [{
6 target: '#fastcomments-widget',
7 tenantId: "demo",
8 apiHost: "https://my.host.com"
9 // ... ניתן גם להעביר מטען SSO וכו'.
10 }];
11</script>
12

זו דוגמה פשוטה מאוד. ניתן גם להשתמש בספריות רשמיות (React, Angular, Vue, Svelte וכו').


ממשק API Internal Link

ניתן לגשת ל-API בדיוק כמו למוצר ה-SaaS הרגיל בכך שתיכנסו ללוח המחוונים של On-Prem כדי ליצור מפתחות API ולהשתמש במפתחות אלה כדי לגשת ל-API. ה-API נקודות הקצה זהות ב-on-prem כפי שהן עבור מוצר ה-SaaS.

דומיינים מרובים Internal Link

התקנת FastComments On-Prem שלך יכולה להגיש תגובות לכתובות דומיין פנימיות מרובות, לדוגמה app.mycorp.org ו־hr.mycorp.org. ניתן להגדיר אותן בנפרד אך לארח אותן על אותה התקנת On-Prem על ידי יצירת כללי התאמה אישית נפרדים כדי להגדיר את ההתנהגויות האישיות שלהן.

אבטחה Internal Link

כברירת מחדל, FastComments מניחה ששרשורי התגובות הם ציבוריים. כדי להוסיף שכבת אבטחה, מומלץ ליצור כלל התאמה עם ה Requires SSO אפשרות מסומנת. זה יגרום שכל נקודות הקצה הקשורות לתגובות ידרשו אימות SSO.

לסיכום

הגעת לסוף התיעוד של On Prem. הודיעו לנו על הערות או שאלות נוספות למטה - ניתן גם לפנות אלינו דרך הדף התמיכה.