מעבר אלינוRailway

מעבר מ-Railway אל Emilion Cloud

מעבירים את האפליקציות והמסדים מ-Railway אלינו. אותו ריפו, משתני סביבה, ואז חיתוך DNS. בלי הבטחה לייצוא אוטומטי מ-API.

מה תלמדו

  • איך מושגי Railway ממופים ל-Emilion Cloud
  • איך יוצרים מחדש שירותים ומסדים אצלנו
  • איך מעבירים Postgres או Redis וחותכים DNS

למה לעבור

חשבון וחשבונית בישראל

חיוב בשקלים, חשבונית מס, ותמיכה בעברית. האזור הראשי הוא ישראל, לא רק Frankfurt או US-West.

מסלול קבוע במקום חיוב לפי שימוש

Hobby חינם, Shared ב-59 שקלים, או VPS ייעודי. אתם בוחרים מסלול, לא מנחשים חשבון בסוף החודש.

WordPress ו-Git באותו לוח

אתר וורדפרס ואפליקציית Node יכולים לחיות באותו חשבון. מיגרציית cPanel אוטומטית זמינה אם יש לכם גם אתרי שיתוף.

Shared תמיד ער

מסלול Shared לא נרדם. Hobby החינמי נרדם אחרי רבע שעת חוסר פעילות. זה מפורש, לא הפתעה.

מיפוי מושגים

חישוב
RailwayEmilion Cloud
Serviceאפליקציה
Usage-based vCPU / RAMמסלול Hobby, Shared או VPS
Service with public domainאפליקציית Git או תבנית עם דומיין
Service without public domainאפליקציה שנייה או שירות ב-Compose
Cron jobמשימת cron באפליקציה
Service / shared variablesמשתני סביבה בלוח
פריסה
RailwayEmilion Cloud
Railpack / custom build commandפקודת build, Dockerfile או nixpacks
Start command / Procfile webפקודת start באפליקציה
Pre-deploy commandחלק מפקודת ה-build או סקריפט בריפו
Healthcheck endpointהאפליקציה חייבת לענות על PORT
GitHub auto-deployפריסה אוטומטית מ-Git
PR / staging environmentsכתובת תצוגה לכל אפליקציה, בלי תצוגות PR
אחסון
RailwayEmilion Cloud
Volumesדיסק של המסלול, לא Volume נפרד לכל שירות
רשת
RailwayEmilion Cloud
*.railway.internalשירותים באותו שרת דרך שם ופורט פנימיים
*.railway.appכתובת תצוגה של האפליקציה
Custom domainsדומיין במסלול Shared או VPS, DNS ידני
מסדים
RailwayEmilion Cloud
PostgreSQL templateמשאב PostgreSQL
Redis templateמשאב Redis
MySQL / MariaDB templateמשאב MySQL או MariaDB
הגדרה
RailwayEmilion Cloud
railway.toml / railway.jsonהגדרות בלוח הבקרה. אין קובץ IaC עדיין

הכנה

  1. יוצרים חשבון Emilion Cloud

    ההרשמה חינם. Hobby מספיק לבדיקה. לאתר עם דומיין משלכם צריך Shared או VPS.

  2. רושמים מה יש ב-Railway

    לכל שירות: סוג (web / worker / cron), פקודות build ו-start, משתני סביבה כולל ${{ }} reference, ומסדים מחוברים. כל process ב-Procfile הופך אצלנו לאפליקציה נפרדת או לשירות ב-Compose.

שחזור אצלנו

  1. יוצרים מסדים קודם

    בלוח: מסדים, ואז PostgreSQL או Redis. מעתיקים את כתובת החיבור הפנימית. עדיין לא מעבירים נתונים, רק מכינים יעד.

  2. מחברים את אותו ריפו

    במסך Git בוחרים את הריפו והענף. מזינים את אותן פקודות build ו-start שהיו ב-Railway. אם Railpack זיהה אותן לבד, כאן כותבים אותן במפורש.

  3. מעתיקים משתני סביבה

    מחליפים reference כמו ${{ Postgres.DATABASE_URL }} בכתובת האמיתית של המסד אצלנו. DATABASE_URL ו-REDIS_URL נקבעים ידנית. המסך Env דורש אפליקציית Git.

חיתוך

  1. החיתוך דורש השבתה קצרה

    קבעו חלון שקט. עצרו את שירותי Railway אחרי שהאפליקציה אצלנו עולה ובודקים שהיא עונה.

  2. מייצאים Postgres מ-Railway

    הפעילו TCP Proxy ב-Postgres, העתיקו את DATABASE_PUBLIC_URL, וצרו dump.

    pg_dump "<RAILWAY_DATABASE_PUBLIC_URL>" -F c -f railway_backup.dump
  3. מייבאים ל-Postgres אצלנו

    השתמשו בכתובת החיצונית של המסד ממסך המסדים. למסד גדול אפשר להוסיף --jobs 4.

    pg_restore --verbose --no-acl --no-owner -d <EMILION_POSTGRES_URL> railway_backup.dump
  4. Redis

    אם יש Redis ב-Railway, ייצאו והעלו ליעד Redis אצלנו.

    redis-cli -u <RAILWAY_REDIS_PUBLIC_URL> --rdb railway_redis.rdb
    redis-cli -u <EMILION_REDIS_URL> --pipe < railway_redis.rdb
  5. מעדכנים DNS

    במסך דומיינים מחברים את השם הקיים. DNS נשאר אצלכם. אחרי ההפצה תונפק תעודת SSL. זה לוקח זמן קצר, לא מיידי.

תקלות נפוצות

  1. החיבור למסד נכשל

    בדקו שלא נשאר ${{ Postgres.DATABASE_URL }}. צריך כתובת מלאה ממשאב המסד אצלנו.

  2. ה-build נכשל

    Railway לעיתים מזהה פקודה לבד. כאן כותבים npm ci או pip install במפורש.

  3. האפליקציה לא מקבלת תעבורה

    האפליקציה חייבת להאזין למשתנה PORT שאנחנו מספקים.

הצעד הבא

אחרי שהאתר חי: בדקו cron, שיתוף צוות, וגיבויים במסלול Shared או VPS. אם נשאר אתר וורדפרס ב-cPanel, האשף במסך מיגרציות מעביר אותו אוטומטית.

נתקעתם? כתבו אלינו: support@emilion.co.il