Synaplan
开源 AI 软件平台,面向企业:自托管 AI 代理,符合 GDPR 的聊天机器人小部件,RAG 知识库,WhatsApp 与 Outlook AI,MCP,多模型路由。支持 Docker、Kubernetes 或在 Germ 托管。
AI 翻译
尚未检测到更新。GitHub 发布版本后会显示在这里。
个人 GitHub 账号下公开仓库的所有者可以登录并验证所有权,自行管理介绍,无需管理员批准。
登录并生成验证文件,在 30 分钟内将其提交到此仓库的默认分支。其他分支或分叉仓库中的文件无效。然后在下方检查文件,即可无需管理员批准直接管理项目。请保留文件以维持管理权限。
如需登录,将前往登录页面。登录后请回到此处,再次点击所选的验证按钮。
在项目文件夹中运行 /nomorevibe verify,即可验证所有权并自行管理介绍。
一分钟完成验证正在加载完整 README。 以下为已保存的摘录。
מאור - ניהול בית כנסת (לוח דיגיטלי חכם) — Next.js + Firebase הקמה (פעם אחת) 1. Firebase Console → צרו פרויקט. תחת Authentication → Sign-in method הפעילו Email/Password ו-Anonymous (המסך בטלוויזיה נכנס אנונימית). 2. Firestore Database → Create database (production mode). 3. Project settings → Your apps → Web app → העתיקו את ה-config לקובץ .env.local (תבנית ב-.env.local.example). 4. Firestore → Rules → הדביקו את firestore.rules ולחצו Publish. 5. במחשב: npm install ואז npm run dev (או העלו ל-Vercel והגדירו שם את אותם משתני סביבה). 6. הירשמו ב-/login.查看完整 README ↗
.env.local (תבנית ב-.env.local.example).firestore.rules ולחצו Publish.npm install ואז npm run dev (או העלו ל-Vercel והגדירו שם את אותם משתני סביבה)./login. ב-Firestore Console פתחו users/<uid> ושנו: role = super_admin, status = approved. מעכשיו /super-admin שלכם./login ← מצב pending ← אתם ב-/super-admin משייכים בית כנסת, בוחרים חבילה ומאשרים./super-admin לכל בית כנסת: כניסה כגבאי (שליטה מלאה ב-/admin?s=<id>), הקפא/הפשר (הגבאי חסום והמסך מציג הודעת השהיה), מחק (מוחק את כל הנתונים)./admin; כפתור תצוגה מקדימה פותח חלון חי של המסך. הטלוויזיה (Fully Kiosk) פותחת: /display?s=<synagogueId>&screen=main-hallusers/{uid}: uid, email, role (super_admin|gabbai|sub_gabbai), status (pending|approved|rejected|suspended), synagogueId, createdAtsynagogues/{sid}: name, city, street, location{lat,lng,elevation}, plan{planTier,maxScreens,features,subscriptionStatus,validUntil}, settings{...}/report לדיווח תקלות ע״י מתפללים (QR) ובוט וואטסאפ.index.המסך מציג מיד עותק שמור, ואם אין תשובה חיה תוך 4 שניות הוא קורא את הנתונים בקריאה חד-פעמית וממשיך לנסות ברקע. Firestore מוגדר לזיהוי אוטומטי של Long Polling. לכפיית Long Polling בסטרימר מסוים פתחו פעם אחת /display?...&lp=1 (נשמר במכשיר; lp=0 מבטל), או הגדירו NEXT_PUBLIC_FORCE_LONG_POLLING=1.
public/manifest.json, אייקונים ב-public/icons/ ו-public/sw.js כבר כלולים (הקישור ב-app/layout.js). לאחר פריסה ל-HTTPS הדביקו את כתובת האתר ב-PWABuilder.com ← Package for stores ← Android.
persistentLocalCache, כולל מספר לשוניות), ועותק נוסף ב-localStorage. מסך שנפתח ללא רשת מציג מיד את המידע האחרון (סימון בפינה: "אופליין").kosher-zmanim לפי הקואורדינטות השמורות, לכן הם מדויקים גם בלי רשת./display?... פעם אחת עם חיבור (ה-service worker שומר את האפליקציה)./login → /api/auth/forgot-password)phone ב-users/{uid}). הבקשה נשלחת למייל FORGOT_PASSWORD_NOTIFY_TO (ברירת מחדל [email protected]) עם האימייל, הטלפון, התאריך והשעה, ה-IP ותוצאת ההתאמה.users – נשלח גם מייל האיפוס הסטנדרטי של Firebase (PASSWORD_RESET). התשובה למשתמש זהה בכל מקרה (למניעת בדיקת קיום חשבונות)..env.local.example): שליחת מייל – SMTP_HOST/SMTP_PORT/SMTP_USER/SMTP_PASS (למשל Gmail עם סיסמת אפליקציה) או RESEND_API_KEY; ולאימות מול Firestore – FIREBASE_SERVICE_ACCOUNT (JSON של Service Account). בלי מייל מוגדר הטופס מחזיר שגיאה; בלי Service Account נשלחת התראה למנהל בלבד (ללא איפוס אוטומטי).phone ולכן לא יותאמו אוטומטית – ההתראה למנהל תגיע ואפשר לאפס ידנית, או להוסיף להם phone ב-Firestore.[email protected] (לא נשלחים אליה מיילים) – הסיסמאות מוצפנות ומנוהלות ע״י Firebase, בלי JWT עצמי./api/admin/reset-password, דורש FIREBASE_SERVICE_ACCOUNT) ומוסרים בטלפון סיסמה זמנית. המשתמש מחליף אותה ב"הגדרות מערכת ← שינוי סיסמה"./api/auth/onboard (Admin SDK, דורש FIREBASE_SERVICE_ACCOUNT) יוצר את בית הכנסת / מממש את הקוד וכותב users/{uid}.synagogueId – בלי עריכה ידנית ב-Firestore.AUTO_APPROVE_NEW_SYNAGOGUES=1.joinCodes, חוקי Firestore כבר מעודכנים – צריך לפרסם אותם בקונסולה). המצטרף הופך לגבאי משנה (הודעות בלבד) ומאושר מיידית.