תוכנית הקמה מינימלית וניתנת להרחבה
המלצה סופית להתחלה
החלטה שלי בשבילך
להתחיל עם תשתית נקייה, מינימלית ומהירה: שרת VPS אחד בלבד שמריץ את ה־Frontend, ה־API וה־Database. לא מעבירים את הנתונים הקיימים. מתחילים מדף חלק עם Owner ראשון, משחקים והגדרות בסיסיות.
הטכנולוגיות: Ubuntu 24.04, Docker Compose, Caddy, Node.js 22, Fastify, PostgreSQL 16, Prisma, JWT, bcrypt.
למה זו הדרך הכי טובה להתחלה
- עלות נמוכה: רק שרת אחד בהתחלה.
- פחות תקלות: אין הרבה שירותים לחבר ולתחזק.
- הקמה מהירה: אפשר להתחיל לפתח ולבדוק מהר.
- לא ננעלים: בעתיד אפשר לפצל Database, API ו־Frontend בלי לבנות מחדש.
- מתאים למשחקים ולניהול קרדיטים כי כל הפעולות החשובות עוברות דרך API מסודר.
מבנה התחלתי
| חלק | בחירה | תפקיד |
|---|---|---|
| שרת | VPS אחד, 2 vCPU, 4GB RAM, 80GB SSD | מריץ הכל בהתחלה |
| מערכת הפעלה | Ubuntu 24.04 LTS | בסיס יציב לשרת |
| ניהול שירותים | Docker Compose | מריץ API, DB ו־Caddy בצורה מסודרת |
| HTTPS / Proxy | Caddy | SSL אוטומטי וניתוב לאפליקציה ול־API |
| Backend | Node.js 22 + Fastify | שרת API מהיר ופשוט |
| Database | PostgreSQL 16 | שומר שחקנים, קרדיטים, ספינים ודוחות |
| ORM | Prisma | ניהול טבלאות ושינויים בצורה מסודרת |
| Auth | JWT + bcrypt | Login והרשאות בלי תלות חיצונית |
| Frontend | React/Vite הקיים | משאירים את האפליקציה והמשחקים, מחליפים רק שכבת נתונים |
מה מקימים בפועל — לפי סדר
- רוכשים או משתמשים בדומיין קיים.
- מקימים VPS אחד אצל Hetzner או DigitalOcean.
- מתקינים Ubuntu 24.04.
- מאבטחים SSH עם מפתח בלבד.
- פותחים Firewall רק ל־22, 80, 443.
- מתקינים Docker ו־Docker Compose.
- יוצרים Docker Compose עם שלושה שירותים: API, PostgreSQL, Caddy.
- מגדירים Caddy עבור app.yourdomain.com ו־api.yourdomain.com.
- בונים API בסיסי עם Fastify ו־endpoint /v1/health.
- מחברים PostgreSQL ו־Prisma.
- יוצרים migrations לטבלאות הבסיס.
- מכניסים Seed נקי: Owner ראשון, 12 משחקים והגדרות מערכת.
- בונים Login לשחקן ו־Admin עם JWT.
- בונים Players API.
- בונים Admins API.
- בונים GameConfig API.
- בונים Credit API עם transactions מלאים.
- בונים Spins API.
- בונים Transactions ו־Reports API.
- מחברים את האפליקציה הקיימת ל־API החדש.
- בודקים Login, יצירת שחקן, טעינת קרדיטים, Spin, Bonus, Redeem ודוחות.
- מעלים Production נקי.
הטבלאות שצריך בהתחלה
- players — שחקנים, סיסמה מוצפנת, קרדיטים, סטטיסטיקות וסטטוס.
- admin_accounts — אדמינים, Owner, קרדיטים והרשאות.
- game_configs — 12 משחקים, RTP, active, min/max bet.
- spin_results — כל ספין, הימור, זכייה, משחק ו־RTP.
- token_transactions — כל תנועת קרדיטים בין Owner, Admin ושחקן.
- app_settings — הגדרות מערכת כמו api_mode, max_credit_warning ו־starting credits.
- audit_logs — פעולות רגישות לצורך בדיקה ואבטחה.
החלק הכי חשוב: קרדיטים
כל שינוי קרדיטים חייב לקרות רק בשרת, בתוך database transaction. זה כולל טעינת שחקן, מימון Admin, Redeem, הורדת הימור ועדכון זכייה.
ה־Frontend לא משנה קרדיטים ישירות. הוא רק מבקש מה־API לבצע פעולה, והשרת מחליט אם מותר ומעדכן את כל הטבלאות יחד.
נתיב Scale Up עתידי
- שלב גדילה ראשון: להעביר PostgreSQL ל־Managed Database. משנים רק DATABASE_URL.
- שלב גדילה שני: להעביר את ה־Frontend ל־Cloudflare Pages או CDN.
- שלב גדילה שלישי: להריץ כמה שרתי API מאחורי Load Balancer.
- שלב גדילה רביעי: להוסיף Redis/cache לדוחות אם יש עומס.
בהתחלה לא עושים את כל זה. רק מתכננים את הקוד נכון כדי שהמעבר יהיה אפשרי.
סיכום סופי
מתחילים עם: VPS אחד + Docker Compose + Caddy + Node/Fastify + PostgreSQL + Prisma.
הגישה: דף חלק, בלי העברת נתונים קיימים, עם מערכת נקייה שאפשר להגדיל בעתיד.