nodebb-plugin-insurance-reminder
v1.0.2
Published
Insurance renewal reminder plugin for NodeBB - date field + notification/email reminder
Readme
nodebb-plugin-insurance-reminder — מדריך התקנה מדויק
תזכורת אוטומטית לחידוש ביטוח רכב: שדה תאריך בעריכת פרופיל, ותזכורת (התראה + באנר) כשנותרו 14 יום או פחות.
דרך א' (מומלצת) — התקנה דרך ACP, בלי SSH בכלל
גילינו שב-ACP → Extend → Plugins → "מצא תוספים" יש כפתור "התקנה" ליד כל תוסף - NodeBB מתקין אותו בעצמו מ-npm, בלי צורך בגישת שרת. וב-Extend → Plugins יש גם כפתורי "הפעלה מחדש" / "בניה מחדש והפעלה מחדש". כלומר כל התהליך אפשרי מתוך הפאנל בלבד - בתנאי שהפלאגין קודם מפורסם ל-npm הציבורי.
פרסום ל-npm נעשה מהמחשב שלך (לא מהשרת של הפורום!) - כל מחשב עם Node.js מספיק, אין צורך בשום גישה לשרת של rechavimzelaze.ovh בשלב הזה:
- וודא ש-Node.js מותקן במחשב שלך: פתח טרמינל (Mac: Terminal, Windows: PowerShell) ותריץ
node -v. אם לא מותקן - הורד מ-nodejs.org (גרסת LTS), התקנה רגילה של תוכנה, כמה קליקים. - פתח חשבון npm חינמי: ב-https://www.npmjs.com/signup (מייל + שם משתמש + סיסמה, בלי כרטיס אשראי).
- מתוך תיקיית הריפו הזה במחשב שלך, בטרמינל:
(יבקש שם משתמש/סיסמה/מייל מה-npm שיצרת בשלב 2, ואולי קוד אימות אם הפעלת 2FA).cd nodebb-plugin-insurance-reminder npm login - פרסום בפועל:
בדקתי מראש שהשםnpm publish --access publicnodebb-plugin-insurance-reminderפנוי ב-npm. אם בכל זאת תקבל שגיאת "name already taken" (למשל מישהו תפס אותו בינתיים) - שנה את השדה"name"ב-package.jsonלשם ייחודי יותר (למשלnodebb-plugin-insurance-reminder-rz) ונסה שוב. - חזרה ל-ACP: Extend → Plugins → "מצא תוספים" → תחפש
insurance-reminder→ כפתור "התקנה". - אחרי ההתקנה - לך ל-"מותקן" (Installed), תחפש את התוסף ותלחץ Activate.
- בסיידבר: "הפעלה מחדש" (Restart) - כדי שהפלאגין ייטען בפועל.
- תמשיך לסעיף "בדיקה" למטה - הכל זהה בין שתי הדרכים.
אם משהו בתהליך הזה נכשל (למשל כפתור "התקנה" נותן שגיאת הרשאות בשרת) - זה הזמן לעבור לדרך ב' (SSH) למטה.
דרך ב' — התקנה ידנית עם SSH
אם דרך א' לא עבדה, או שתרצה שליטה ידנית מלאה:
שני חלקים, שני מקומות שונים:
plugin.json+library.js+package.json— קוד שרת. דורש SSH (זה הדבר היחיד בכל המדריך שדורש שורת פקודה).static/lib/insurance-reminder-client.js— קוד לקוח. נדבק ב-Admin Control Panel, בדיוק כמו הסקריפט הקיים של אשף הרכב. לא דורש SSH.
אם בסופו של דבר יתברר שאין לך גישת SSH בפועל (רק כניסת מנהל לפורום עצמו) — עצור אחרי שלב 0 ותגיד לי, כי אז חלק 1 לא ניתן לביצוע בלעדיי/בלעדי מי שכן יש לו גישה לשרת.
שלב 0: לוודא שיש גישה, ולזהות את סוג ההתקנה
התחבר לשרת ב-SSH ותריץ:
which node && node -vאם זה נכשל (command not found) — כנראה שאין לך גישה לסביבה הנכונה, או שזה לא אותו שרת שמריץ את NodeBB. תגיד לי מה קרה ונברר יחד.
אחר כך תמצא איפה NodeBB מותקן בפועל. בד"כ זה תיקייה בשם nodebb בתוך home directory של המשתמש, או תחת /var/www. נסה:
find / -maxdepth 4 -iname "nodebb" -type d 2>/dev/nullתעבור לתיקייה שנמצאה (למשל cd ~/nodebb), ותוודא שזו באמת התקנת NodeBB:
cat package.json | grep '"name"'אמור להציג "name": "nodebb". מכאן והלאה בכל הפקודות, <NODEBB_DIR> = התיקייה הזו.
שלב 1: להעלות את תיקיית הפלאגין לשרת
מהמחשב שלך (לא מתוך השרת), תעלה את כל התיקייה nodebb-plugin-insurance-reminder (יש בריפו הזה, ב-branch claude/forum-improvement-ideas-6e439a) לתוך <NODEBB_DIR>/node_modules/.
הכי פשוט עם scp (תריץ מהמחשב שלך, לא מהשרת):
scp -r nodebb-plugin-insurance-reminder USER@YOUR_SERVER:<NODEBB_DIR>/node_modules/(תחליף USER@YOUR_SERVER בפרטי ה-SSH האמיתיים שלך, ו-<NODEBB_DIR> בנתיב שמצאת בשלב 0.)
חלופה אם אין לך scp/נוח יותר ב-git: לעשות git clone של הריפו הזה איפשהו בשרת, ואז:
cp -r /path/to/P0/nodebb-plugin-insurance-reminder <NODEBB_DIR>/node_modules/nodebb-plugin-insurance-reminderשלב 2: להתקין את התלות (node-cron) ולרשום את הפלאגין
בתוך השרת, מתוך <NODEBB_DIR>:
cd <NODEBB_DIR>
npm install ./node_modules/nodebb-plugin-insurance-reminder --no-saveזה יתקין את node-cron (התלות היחידה של הפלאגין) לתוך node_modules הראשי של NodeBB.
אם הפקודה נכשלת עם שגיאת הרשאות (
EACCES) — תריץ עם המשתמש שבבעלותו רץ NodeBB (לרוב לאroot), למשלsudo -u nodebb npm install ...— תלוי איך השרת שלך מוגדר. אם אתה לא בטוח מי המשתמש, תגיד לי מה קורה כשאתה מריץls -la <NODEBB_DIR>ונזהה יחד.
שלב 3: להפעיל את הפלאגין דרך פאנל הניהול
- היכנס ל-Admin Control Panel → Extend → Plugins.
- לך ללשונית Installed (לא Find Plugins — הוא כבר מותקן ידנית, לא דרך ה-Marketplace).
- חפש "Insurance Renewal Reminder" ולחץ Activate.
אם הוא לא מופיע ברשימה בכלל — סימן שהעתקת הקבצים בשלב 1 לא הצליחה, או שהנתיב לא נכון. תריץ בשרת:
ls <NODEBB_DIR>/node_modules/nodebb-plugin-insurance-reminderאמור להראות את plugin.json, library.js, package.json, static/. אם התיקייה ריקה/לא קיימת — חזור לשלב 1.
שלב 4: להפעיל מחדש את NodeBB
הפלאגין נטען רק באתחול השרת. תלוי איך NodeBB רץ אצלך:
# אם רץ עם pm2:
pm2 restart nodebb
# אם רץ עם הסקריפט המובנה של NodeBB:
cd <NODEBB_DIR>
./nodebb restartלא בטוח איזה מהשניים? תריץ pm2 list — אם רואה שם nodebb ברשימה, זה pm2. אם לא, השתמש ב-./nodebb restart.
איך לוודא שזה עלה בהצלחה: תריץ מיד אחרי:
# pm2:
pm2 logs nodebb --lines 50
# ./nodebb:
cd <NODEBB_DIR> && ./nodebb logאתה אמור לראות בלוג את השורה:
[nodebb-plugin-insurance-reminder] נטען בהצלחה, הבדיקה היומית תרוץ ב-08:00אם רואה שגיאה אדומה (Error, Cannot find module, וכו') במקום זה — תעתיק לי את השורות המדויקות מהלוג, ואני אתקן את הקוד בהתאם (יש כמה API-ים פנימיים ב-NodeBB שמשתנים קצת בין גרסאות, ואני לא יכול לבדוק את זה מראש בלי גישה לשרת שלך בעצמו).
שלב 5: להדביק את קוד הלקוח
Admin Control Panel → Appearance → Custom → Custom JavaScript:
פתח את הקובץ static/lib/insurance-reminder-client.js מהתיקייה, העתק את כל התוכן, והדבק אותו בסוף התיבה הקיימת (אחרי הסקריפט של אשף הרכב, לא במקומו — אפשר כמה סקריפטים ברצף בתיבה אחת). ודא שה-checkbox "Enable Custom JS" מסומן, ולחץ Save.
שלב 6: בדיקה (בלי לחכות עד השעה 08:00 של מחר)
- בדיקת השדות: היכנס לעמוד עריכת הפרופיל שלך (
/user/<שם-משתמש>/edit). אמורה להופיע כרטיסייה "ביטוח רכב" בראש העמוד. מלא תאריך תוקף שהוא בעוד 5 ימים מהיום, לחץ שמירה. - בדיקת הבאנר: רענן את הדף (או נווט לעמוד אחר). אמור להופיע באנר כתום למעלה: "נותרו 5 ימים לחידוש ביטוח הרכב שלכם".
- בדיקת ההתראה (בלי לחכות ל-cron): פתח את קונסולת המפתחים בדפדפן (F12) בזמן שאתה מחובר כמנהל, ותריץ:
זה מריץ את הבדיקה היומית מיידית לכל המשתמשים (לא רק לך). תראה בקונסולהsocket.emit('plugins.insuranceReminder.testRun', {}, console.log){checked: N, notified: 1}(או יותר, אם יש עוד משתמשים עם תאריך קרוב). לך לפעמון ההתראות ב-NodeBB — אמורה להופיע התראה חדשה "נותרו 5 ימים לחידוש ביטוח הרכב שלך".
אם שלב 1-2 עובדים אבל שלב 3 לא (אין התראה בפעמון) — תעתיק לי מה הודפס בקונסולה, כנראה ה-API של notifications.create/push שונה מעט בגרסת NodeBB שלך ואני אתאים.
נסיגה (rollback) אם צריך
- לכבות רק את הבאנר/כרטיסייה: להסיר את הקטע שהודבק בשלב 5 מתיבת ה-Custom JS ולשמור.
- לכבות גם את השרת: Admin Control Panel → Plugins → Installed → Deactivate על הפלאגין, ואז
./nodebb restart/pm2 restart nodebb. - שום דבר כאן לא נוגע בטבלאות/נתונים קיימים של NodeBB - רק מוסיף שני שדות חדשים לאובייקט המשתמש, כך שאין סיכון לנתונים קיימים.
