הבוט הוא פרויקט קוד פתוח. ניתן להריץ מופע פרטי משלך — שימושי אם אתה רוצה שליטה מלאה, ניתוח מותאם, או הרחבת הפונקציונליות.
דרישות מקדימות
- Node.js 22+ — nodejs.org
- Telegram Bot Token — צור בוט חדש דרך @BotFather ב-Telegram
- Telegram Channel/Group ID — המספר השלילי של ערוץ/קבוצה שהבוט הוסף אליה
- Mapbox Access Token (אופציונלי) — לmapbox.com ליצירת מפות; ללא זה ההתראות נשלחות כטקסט בלבד
- Proxy URL (נדרש מחוץ לישראל) — ה-API של פיקוד העורף מוגבל גיאוגרפית
התקנה מהירה
git clone https://github.com/yonatan2021/pikud-haoref-bot.git
cd pikud-haoref-bot
npm install
cp .env.example .env
# ערוך .env — מלא TELEGRAM_BOT_TOKEN, TELEGRAM_CHAT_ID ועוד
npm run build
npm start
לאחר ההפעלה הבוט יתחיל לסקור את ה-API של פיקוד העורף ולשלוח התראות לערוץ שהגדרת.
הפעלה עם Docker
# בנה את ה-image
docker build -t pikud-haoref-bot:local .
# הרץ עם mount לתיקיית data/ עבור SQLite
docker run \
--env-file .env \
-v $(pwd)/data:/app/data \
pikud-haoref-bot:local
קובץ SQLite נשמר ב-data/bot.db — עשה mount כדי שהנתונים ישרדו הפעלות מחדש.
ב-Docker, קבע גם PUPPETEER_EXECUTABLE_PATH=/usr/bin/chromium אם אתה מפעיל WhatsApp.
Wizard CLI — התקנה אינטראקטיבית
אם אינך רוצה לערוך את .env ידנית, הרץ את ה-Wizard:
npx @haoref-boti/pikud-haoref-bot
האשף מנחה אותך שלב אחרי שלב — בחירת פלטפורמה (Telegram / WhatsApp / שניהם),
הזנת הטוקנים, ובחירת פרופיל הגדרות (מינימלי / מומלץ / מלא).
בסיום הוא יוצר .env ואופציונלית מבצע git clone של הפרויקט.
Dashboard ניהולי
הבוט כולל ממשק ניהול React. להפעלה, הגדר בקובץ .env:
DASHBOARD_SECRET=your-admin-password
DASHBOARD_PORT=4000 # ברירת מחדל
לאחר הפעלת הבוט, גש ל- http://localhost:4000 בדפדפן.
Health Check
שרת ה-health רץ בנפרד:
GET http://localhost:3000/health
מחזיר: uptime, lastAlertAt, lastPollAt, alertsToday.
משתני סביבה עיקריים
| משתנה | חובה? | תיאור |
|---|---|---|
TELEGRAM_BOT_TOKEN |
כן | טוקן הבוט מ-BotFather |
TELEGRAM_CHAT_ID |
כן | מספר שלילי לערוץ/קבוצה |
MAPBOX_ACCESS_TOKEN |
לא | ליצירת מפות סטטיות; ללא זה — טקסט בלבד |
PROXY_URL |
מחוץ לישראל | פרוקסי לגישה ל-API של פיקוד העורף |
DASHBOARD_SECRET |
לא | סיסמת Dashboard; ללא זה הממשק מושבת |
WHATSAPP_ENABLED |
לא | true להפעלת לקוח WhatsApp (QR נדרש בהפעלה ראשונה) |
לרשימה המלאה של כל משתני הסביבה, ראה README.md בגיטהאב.