⚙️ מדריך למנהל — ניגי
מידע על הכלים הזמינים במסך "מנהל מערכת" ובתפעול השרת. לא מיועד למשתמש הרגיל של האפליקציה.
סיסמת המנהל
נשלטת על ידי משתנה הסביבה ADMIN_PASSWORD ב-.env (ברירת מחדל: 01020304). שינוי דורש עריכת .env ו-docker compose up -d --build app מחדש.
📦 נוהל התקנה
עמוד נפרד (install-guide.html) עם הוראות מדויקות להתקנה על שרת נוסף ולעדכון גרסה, כולל פקודות עם כפתור "העתקה". היעד הנוכחי: root@10.100.102.105:/home/user/help-me.
קיצורי דרך להתקנה/עדכון בלחיצה
שני קבצים בתיקיית הפרויקט (/home/nigi/help-me/) מריצים בשבילכם את הפקודות מ-"נוהל התקנה":
install-remote.sh— התקנה ראשונה בשרת המרוחק.update-remote.sh— עדכון גרסה בשרת קיים.install-remote.desktop/update-remote.desktop— לחיצה כפולה עליהם פותחת טרמינל ומריצה את הסקריפט המתאים. אם לחיצה כפולה לא עובדת בפעם הראשונה — לחצו קליק ימני על הקובץ ← מאפיינים ← הרשאות ← סמנו "אפשר הרצה כתוכנית" (או "Allow Launching"), נדרש פעם אחת בלבד (זו התנהגות ברירת מחדל של סביבות שולחן עבודה בלינוקס, לא באג).
שני הסקריפטים משתמשים ב-ssh/rsync רגילים — יבקשו את סיסמת המשתמש root בשרת המרוחק (או שיעבדו בלי סיסמה אם כבר הגדרתם מפתח SSH).
מפתח Gemini API בזמן ריצה
שינוי מפתח מפאנל ⚙️ הגדרות (זמין לכל משתמש, לא רק למנהל) נשמר ב-data/runtime-config.json וגובר על GEMINI_API_KEY שב-.env. השרת מוודא מול Google שהמפתח תקין לפני השמירה. כדי לחזור למפתח שמוגדר ב-.env, מחקו את data/runtime-config.json והפעילו מחדש את הקונטיינר.
יכולות (skills) שעדיין דורשות הגדרה
- control_device (בית חכם) — דורש רכזת כמו Home Assistant, או API ספציפי ליצרן ההתקן. אין היום פתרון גנרי.
- play_spotify — דורש אפליקציית מפתחים אישית ב-Spotify for Developers (Client ID) וחשבון Premium.
- search_flights — דורש מפתח API אמיתי (Amadeus for Developers או Kiwi.com Tequila).
- generate_image — כבר מחובר בפועל ל-Gemini, אך התוכנית החינמית של מפתח ה-API מוגבלת ל-0 בקשות ליום למודל התמונות. יש להפעיל חיוב (billing) בפרויקט Google כדי שיעבוד (עלות נמוכה לתמונה).
הוספת תחנת רדיו
ב-skills/radio.js יש מפה קטנה של תחנות. לפני הוספת תחנה — לוודא שהקישור באמת עובד:
curl -I "<stream-url>" — אמור להחזיר 200 ו-Content-Type: audio/mpeg. תחנות שנמצאו ברשת ולא עברו את הבדיקה הזו לא הוכנסו בכוונה.
הוספת יכולת (skill) חדשה
קובץ חדש ב-skills/ שמייצא { name, description, parameters, execute(args, ctx) } — נטען אוטומטית, בלי צורך לרשום אותו בשום מקום. פירוט מלא ב-README.md.