דלגו לתוכן

התחברות לשרת מרוחק

כל לקוח הוא מציג מעל cc_server שמחזיק בנתונים. שולחן העבודה יכול להריץ אחד בתוך עצמו; אפליקציית הווב ב-app.usectrl.dev לא יכולה, כי לשונית דפדפן אינה יכולה לארח שרת. כך או אחרת, המדריך הזה מכוון לקוח אל שרת שרץ במקום אחר — קופסה קטנה, מכונה וירטואלית בענן, שרת בנייה.

  • cc_server שרץ. אם אין לכם אחד, ראו הפעלת שרת ללא ממשק.
  • או שלושת ערכי הצימוד שהשרת הנפיק — כתובת השרת (ws://…/rpc או wss://…/rpc), מזהה מכשיר ומפתח צימוד — או קוד הזמנה חד־פעמי ממנהל סביבת עבודה. מימוש הזמנה מקצה את המשתמש שלכם, רושם את החברות שלכם ומנפיק לכם את האישור של הלקוח הזה, כך שלעולם אינכם מטפלים במזהה מכשיר או במפתח.

שרת מקומי אינו צריך דבר: ws://localhost:9030/rpc עובד גם משולחן העבודה וגם מהדפדפן, כי דפדפנים מתייחסים ללולאה המקומית כמקור מהימן.

שרת על מכונה אחרת הוא סיפור אחר. app.usectrl.dev מוגש דרך HTTPS, ולכן הדפדפן יפתח רק חיבור wss:// עם תעודה שהוא כבר סומך עליה — ו-cc_server מסרב מלכתחילה לאגד כתובת שאינה לולאה מקומית בלי TLS. תנו לו אחד מאלה:

  • תעודה ישירות, עם --tls-cert ו---tls-key
  • פרוקסי שמסיים TLS מלפנים, כשהשרת מופעל עם --insecure (טקסט גלוי מאחורי הפרוקסי, ברשת מהימנת בלבד)
  • מנהרה או VPN שמספקים את התעודה — Tailscale, cloudflared או דומה. בהגדרות ← שרת ← חיבור וסטטוס נמצאת ההצטרפות המובנית למנהרה תחת שתף שרת זה.

שתי הגדרות בצד השרת קל לפספס. מאחורי פרוקסי, NAT או מנהרה, הגדירו את --public-url לכתובת שלקוחות באמת אמורים לחייג אליה — ברירת המחדל שלה היא האגדה המקומית, ולכן בלעדיה לקוחות מנסים את המארח הלא נכון. ואם אתם מארחים עותק משלכם של בניית הווב, הוסיפו את המקור שלו ל---allowed-origins, שכברירת מחדל מכיל רק את https://app.usectrl.dev; לקוחות לולאה מקומית ולקוחות נייטיביים תמיד מותרים.

חיבור אפליקציית שולחן העבודה

קטע בשם “חיבור אפליקציית שולחן העבודה”

בהתקנה חדשה:

  1. הפעילו את Control Center. מסך ההפעלה הראשונה שואל כיצד להריץ את Control Center?
  2. במקום הרץ באפליקציה זו, מלאו את שדות ההתחברות: כתובת השרת, ובנוסף קוד הזמנה או מזהה מכשיר ומפתח צימוד.
  3. לחצו על התחבר. Control Center מחייג אל השרת ונוחת בדואר הנכנס של סביבת העבודה.

בשולחן עבודה שכבר מריץ שרת משל עצמו:

  1. פתחו את הגדרות ← שרת ← חיבור וסטטוס.
  2. לחצו על הוסף שרת. הזינו את כתובת השרת (wss://host:9030/rpc) ובנוסף קוד הזמנה או מזהה מכשיר ומפתח צימוד. כפתור הסיומת של שדה הכתובת מגלה מופעי cc_server ב-LAN או ב-tailnet שלכם.
  3. לחצו על התחבר, ואז על החלף בשורה של השרת החדש.

ההחלפה היא חיה: האפליקציה נבנית מחדש סביב הסשן החדש במקום, בלי הפעלה מחדש. אם ההתחברות נכשלת, אתם נשארים על השרת הנוכחי ורואים את השגיאה. בשורה של השרת שאתם נמצאים עליו אין פעולת החלף; השרת המקומי הוא השורה הראשונה, שכותרתה הרץ באפליקציה זו.

מרגע ההחלפה, לשולחן העבודה אין מסד נתונים משלו. כל מסך קורא וכותב דרך השרת המרוחק מעל WebSocket.

בניית הווב היא תמיד מרוחקת.

  1. פתחו את app.usectrl.dev, או עותק משלכם של בניית הווב.
  2. הזינו את כתובת השרת ובנוסף קוד הזמנה או מזהה מכשיר ומפתח צימוד.
  3. הלקוח מחייג אל השרת ומרנדר את אותו ממשק ששולחן העבודה מרנדר.

אם כתובת ה-URL מכילה קישור עמוק לצימוד, השדות ממולאים מראש. מפתח הצימוד נמצא בקטע ה-URL, שאותו דפדפנים לעולם אינם שולחים לשרת שמארח את הדף, ולכן המארח הסטטי לעולם אינו רואה אותו.

לקוח הווב קורא וכותב לאותו שרת כמו שולחן העבודה, אבל כמה משטחים זקוקים לחלון נייטיבי או להתקנים של המכונה עצמה:

  • אין התראות קופצות של מערכת ההפעלה, אין צלילי התראות ואין רצועת באנרים סביבתית (מרכז ההתראות שבתוך האפליקציה עדיין עובד)
  • אין גילוי שרתים ב-LAN או ב-tailnet בתיבת הדו-שיח הוסף שרת
  • אין קורא מאמרים בתוך האפליקציה — מאמרים בעדכוני החדשות נפתחים בכרטיסייה חדשה
  • אין הרצה חוזרת של סיכום פגישה ואין ביטול של סיכום שמעובד

שניים מתנהגים אחרת במקום להיות חסרים. הקלטה של פגישה עובדת בדפדפן, כשהיא קולטת את המיקרופון שלכם בתוספת שיתוף מסך שכולל רצועת אודיו. פתח ב-IDE עובד גם הוא, אבל מבקש מהשרת להפעיל את העורך על התצוגה של השרת עצמו, ולכן הכפתור מסתתר מול מארח ללא ממשק שבו לא מותקנים עורכים.

  • החיבור פג: השרת חייב להיות נגיש מהלקוח. בדקו את האגדה (--bind any), שהפורט פתוח ושה---public-url מציין את הכתובת שאליה הלקוח באמת יכול לחייג. מעל האינטרנט הפתוח, TLS הוא חובה — אגדה בטקסט גלוי שאינה לולאה מקומית נדחית בעלייה, אלא אם השרת הופעל עם --insecure מאחורי פרוקסי.
  • הדפדפן מסרב להתחבר אבל לקוח נייטיבי עובד: המקור של הדפדפן אינו ברשימת ה---allowed-origins של השרת. ברירת המחדל מתירה רק את https://app.usectrl.dev (בתוספת לולאה מקומית).
  • מפתח הצימוד נדחה: הריצו שוב cc_server pair בשרת כדי לסובב את המפתח של אותו מכשיר, ואז הזינו את החדש. מכשיר שבוטל מגלה שהאישור שלו נעלם ונכשל באופן סגור; ביטול מפיל סשן חי בתוך שניות.
  • סביבת עבודה שגויה: סביבת העבודה היא חלק מה-URL (/workspaces/:workspaceId/…) והיא נסחרת עם כל קריאה, ולכן החלפת סביבות עבודה בלקוח אחד משנה רק את התצוגה שלכם. אתם יכולים להגיע רק לסביבות עבודה שאתם חברים בהן — כל דבר אחר נדחה עם “Not a member of this workspace”. ראו סביבות עבודה ובידוד.