תהליך העלאת מערכת fullstack מה-localhost לעולם האמיתי
-
אני מנסה לדעת מהם השלבים שעלי לבצע כדי להעלות אתר שבניתי לעולם האמיתי.
נתונים טכניים:
מדובר באתר פשוט ביותר (בסטייל hello world וזהו...) שבניתי באנגולר לצורך הדגמה זו.
יש לי צד שרת ב.net core (ראו כאן) המדגים תקשורת בסיסית בין הקליינט לשרת, וכמובן יש DB (גם זה מתואר בקישור לעיל).
ביצעתי על האנגולר ng build וקיבלתי תיקיית dist.
ביצעתי על צד השרת dotnet publish וזה הפלט שקיבלתיuploadProj -> C:\Users\yaakov\source\repos\uploadProj\uploadProj\bin\Debug\netcoreapp3.1\uploadProj.dll uploadProj -> C:\Users\yaakov\source\repos\uploadProj\uploadProj\bin\Debug\netcoreapp3.1\publish\
מקווה שתקין.
אני חדש בעניין אז ברשותכם כמה שאלות של מתחילים.
- איך והיכן אני קונה(?) שרת ברחבי הגלובוס?
- מאחסנים את כל המרכיבים על אותו שרת?
- יש עוד שלבים שלא ביצעתי?
אשמח לכל מידע והמלצה שיעזרו לפוגג את הערפל.
תודה רבה. -
ברוך הבא לעולם האמיתי,
השאלה הראשונה לפיתוח מערכת היכן ואיך זה ירוץ ב- production ?
הפתרונות שאני מכיר עבור netcore זה עם תשלום, אולי יש חידושים בעניין ואשכיל מחברי הפורום ויש פתרונות חינמיים.
הדרך שפעם מצאתי זה לארוז ל docker ולעלות לשרת אחסון ](תחליפי Heroku ) שתומך בכך. -
אוקיי משתף אתכם בתהליך ולמי שיש הערות - יתקבלו בברכה
ממה שבדקתי צריך שני דברים להשיג\לקנות- כתובת domain
- אתר אחסון קבצים
לגבי שלב 1 כאן אפשר לבדוק ולקנות domain.
לפני שאני לוחץ על תשלום אני רוצה לוודא איתכם שאני לא פשוט מדבר שטויות וסתם שורף כסף. האם אני בכיוון הנכון?
-
את התוכן של הdist אתה שופך לתיקיה הססטית של .net core (משהו כמו wwwroot נראה לי).
- אתה צריך לשלם או על שירות אירוח אתרים שתומך ב.net core או לשכור כל VPS שמריץ אובונטו.
מה לבחור מבין השניים? הראשון יקר יותר אבל יותר ממשק ויזואלי שמעלים את הקבצים והופה זה עובד. השני זול יותר, וגם מתאר נאמנה את העולם האמיתי או מצב הייצור שאליו אתה יום אחד תגיע.
שכירת VPS יש בהמון חברות, אני ממליץ על OVH אבל זו חברה שקשה לרישום (לוקח זמן עד שאתה מאושר). יש גם scalway, זה שני חברות זולות למרות שהם איכותיות יחסית.
כיון שאתה צריך לבחור דרך מהשניים, אני שומר את ההדרכה להמשך לשלב שבו תדע מה אתה עושה. - כן, בדרך כלל (החלק של האנגולר זה קבצים סטטיים, בעצם זה לא חייב להיות על אותו דומיין וגם לא על אותו שרת).
אתה אכן צריך דומיין, עדיף לך לא לקנות ישראלי מכמה סיבות (למשל זמן עדכון שרתים).
תוכל לקנות דומיין בcloudflare (אחרי רישום, תראה בצד שמאל domain register),
הדומיין פחות דחוף, אתה יכול לראות בד"כ את האתר עובד עם דומיין של החברה המארחת. - אתה צריך לשלם או על שירות אירוח אתרים שתומך ב.net core או לשכור כל VPS שמריץ אובונטו.
-
@dovid כתב בתהליך העלאת מערכת fullstack מה-localhost לעולם האמיתי:
הדומיין פחות דחוף, אתה יכול לראות בד"כ את האתר עובד עם דומיין של החברה המארחת.
או ישירות לכתובת IP או עם דומיין מותאם בhosts..
@dovid כתב בתהליך העלאת מערכת fullstack מה-localhost לעולם האמיתי:
אתה צריך לשלם או על שירות אירוח אתרים שתומך ב.net core או לשכור כל VPS שמריץ אובונטו.
לחילופין תחליפי heroku שתומכים בדוקר כמו @Aharon-0 כתב, למשל fly.io. מצרף מה שמצאתי מגוגל.
https://github.com/Arshu/ASP.NET-Core-In-Fly.io -
@dovid כתב בתהליך העלאת מערכת fullstack מה-localhost לעולם האמיתי:
את התוכן של הdist אתה שופך לתיקיה הססטית של .net core (משהו כמו wwwroot נראה לי).
2. כן, בדרך כלל (החלק של האנגולר זה קבצים סטטיים, בעצם זה לא חייב להיות על אותו דומיין וגם לא על אותו שרת).למה בעצם זה חשוב ל.net לדעת או לקחת אחריות על מיקום קבצי הקליינט? זה פשוט עניין של סדר וארגון או משהו יותר מהותי?
(אני מגיע מתפיסה שבה באמת אין שום קשר מהותי בין הקליינט לסרבר למעט ה-API)?אתה אכן צריך דומיין, עדיף לך לא לקנות ישראלי מכמה סיבות (למשל זמן עדכון שרתים).
מה כוונתך "לא ישראלי"? שלא יהיה עם סיומת IL?
הדומיין פחות דחוף, אתה יכול לראות בד"כ את האתר עובד עם דומיין של החברה המארחת.
כלומר הדומיין הנוסף שאתה יכול לקנות הוא פשוט עניין שיווקי?
איזה אתריים זולים ואיכותיים יש שתומכים ב-.net אוטומטי? (אני מעוניין להתרשם מפערי המחירים).
-
מנסה את OVH.
- הם דורשים הזדהות באמצעות אמצעי תשלום, האם בטוח להכניס שם מספר אשראי שלא באמצעות paypal? (דרך paypal יש גבייה ראשונית של 30$)
- ראיתי כאן (בתקווה שבכלל זה מה שאני צריך) שהם מציעים כמה תוכניות, העניין שאין שום רמז לכך שיש תמיכה ב.net core.
אני מבין שמדובר במכונה וירטואלית (יש כאן וכאן קצת מידע) ואלי רק בהמשך צריך להגדיר את זה אבל אשמח להבהרות.
-
@yyy כתב בתהליך העלאת מערכת fullstack מה-localhost לעולם האמיתי:
אם כן זה נראה שיש שם באמת אפשרות
זה נהדר לעבוד כשיש ככה אמון ושיתו"פ
אני לא מבין מה חסר בהודעתי הראשונה שאתה מייגע אותי בהרבה שאלות.
אני מצטט:אתה צריך לשלם או על שירות אירוח אתרים שתומך ב.net core או לשכור כל VPS שמריץ אובונטו.
מה לבחור מבין השניים? הראשון יקר יותר אבל יותר ממשק ויזואלי שמעלים את הקבצים והופה זה עובד. השני זול יותר, וגם מתאר נאמנה את העולם האמיתי או מצב הייצור שאליו אתה יום אחד תגיע.
שכירת VPS יש בהמון חברות, אני ממליץ על OVH אבל זו חברה שקשה לרישום (לוקח זמן עד שאתה מאושר). יש גם scalway, זה שני חברות זולות למרות שהם איכותיות יחסית -
@dovid כתב בתהליך העלאת מערכת fullstack מה-localhost לעולם האמיתי:
מזל טוב.
פרט יותר איפה אתה אוחז,
יש לך ביד שם וסיסמה, או שכבר הפלגת הלאה?ברוכים תהיו.
יש שם משתמש וסיסמה וחיבור באמצעות Power shell. עדכנתי את המערכת. יש WinSCP תקין. מה הלאה?
אם הכיוון הוא כאן
יש לי בעיה שאין שם תמיכה ב-DOTNET 3, השאלה האם למישהו יש נסיון עם זה. -
הלינק שהבאת מתייחס לאובונטו 16, לך יש ללא ספק משהו חדש יותר, הנה לינק ל23.
בקשר ל3, אני חושב שבVS אפשר לעדכן בכמה קליקים את הגירסה, אבל גם אם תישאר עם 3 אני חושב שהמדריך רלוונטי רק שבמקום לשים בפקודה dotnet-runtime-7.0 צריך לשים dotnet-runtime-3.1. -
@dovid כתב בתהליך העלאת מערכת fullstack מה-localhost לעולם האמיתי:
גם אם תישאר עם 3 אני חושב שהמדריך רלוונטי רק שבמקום לשים בפקודה dotnet-runtime-7.0 צריך לשים dotnet-runtime-3.1.
אז מה המשמעות של זה?
The following versions of .NET are no longer supported:
.NET 5
.NET Core 3.1
.NET Core 3.0
.NET Core 2.2
.NET Core 2.1
.NET Core 2.0
שאין תמיכה במקרה של תקלות אבל בעצם זה אמור לעבוד?
-
ניסיתי להתקין באמצעות
sudo apt-get install dotnet-sdk-3.1
ןקיבלתי את זה
Get:1 http://security.ubuntu.com/ubuntu lunar-security InRelease [109 kB] Hit:2 http://nova.clouds.archive.ubuntu.com/ubuntu lunar InRelease Hit:3 http://nova.clouds.archive.ubuntu.com/ubuntu lunar-updates InRelease Hit:4 http://nova.clouds.archive.ubuntu.com/ubuntu lunar-backports InRelease Fetched 109 kB in 1s (107 kB/s) Reading package lists... Done Reading package lists... Done Building dependency tree... Done Reading state information... Done E: Unable to locate package dotnet-sdk-3.1 E: Couldn't find any package by glob 'dotnet-sdk-3.1' E: Couldn't find any package by regex 'dotnet-sdk-3.1'
לכן ניסיתי את זה
ubuntu@vps-XXX:~$ sudo chmod +x ./dotnet-install.sh ubuntu@vps-XXX:~$ ./dotnet-install.sh --channel 3.1
אבל כשאני מריץ
dotnet --info
אני מקבל
Host: Version: 7.0.5 Architecture: x64 Commit: 8042d61b17 .NET SDKs installed: No SDKs were found. .NET runtimes installed: Microsoft.AspNetCore.App 7.0.5 [/usr/lib/dotnet/shared/Microsoft.AspNetCore.App] Microsoft.NETCore.App 7.0.5 [/usr/lib/dotnet/shared/Microsoft.NETCore.App] Other architectures found: None Environment variables: Not set global.json file: Not found Learn more: https://aka.ms/dotnet/info Download .NET: https://aka.ms/dotnet/download
עוד פלט רלוונטי
ubuntu@vps-XXX:~$ dotnet --list-sdks ubuntu@vps-XXX:~$ dotnet --list-runtimes Microsoft.AspNetCore.App 7.0.5 [/usr/lib/dotnet/shared/Microsoft.AspNetCore.App] Microsoft.NETCore.App 7.0.5 [/usr/lib/dotnet/shared/Microsoft.NETCore.App]
בקיצור הוא על גרסה 7. אמשיך לעדכן...
-
עכשיו הסרתי את גרסה 7 והנה כשאני מנסה שוב להריץ את הפקודה
./dotnet-install.sh --channel 3.1
הוא מודיע לי בחגיגיות ש
dotnet-install: .NET Core SDK with version '3.1.426' is already installed.
ואז כדי לוודא שיש לי dotnet 3 בהתרגשות אני כותב :
ubuntu@vps-XXX:~$ dotnet --info
והוא מחזיר לי:
-bash: /usr/bin/dotnet: No such file or directory
איך אפשר לוודא באמת מה מותקן ומה לא?