שליטה מרחוק

שליטה מרחוק מאפשרת לדפדפן או ללקוח שולחן עבודה מצומד להשתמש בשרת הקצה הפועל של CodeNomad בלי לפתוח יציאת רשת נכנסת. אין צורך בסיסמת שרת, ב־--host שאינו loopback או ב־VPN. זהו נתיב גישה נפרד מ־חיבורים ישירים.

הפעלה וצימוד

  1. במארח, פתחו הגדרות → גישה מרוחקת.
  2. בחרו הפעל שליטה מרחוק. המתינו ל־מוכן לחיבורים מרחוק; בשימוש ראשון הקצאת זהות המנהרה והתעודה עשויה לקחת זמן.
  3. תחת חיבור מכשיר נוסף, סרקו את קוד ה־QR או בחרו העתק קישור, ואז פתחו את הקישור החד־פעמי במכשיר המיועד.
  4. שמרו את נתוני האתר בדפדפן המצומד. פתחו שוב את כתובת המנהרה כדי להתחבר מחדש בזמן ששרת הקצה פועל.

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

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

ניהול מכשירים מצומדים

  1. במארח, חזרו אל הגדרות → גישה מרוחקת → שליטה מרחוק.
  2. בדקו מכשירים מצומדים ואת זמן נראה לאחרונה שלהם. כל מכשיר נקרא על שם הפלטפורמה והדפדפן שצימדו אותו, כגון iPhone · Safari.
  3. בחרו בטל גישה למכשיר שכבר לא אמור להתחבר.

ביטול גישה מסיים את חיבורי HTTP/SSE הנוכחיים של המכשיר וגם גישה עתידית. בצעו צימוד מחדש בקישור חדש לשחזור הגישה. מכשיר פג לאחר 30 ימים ללא שימוש. ב־מגבלת 32 מכשירים, צימוד חדש מחליף את המכשיר שנראה לפני הזמן הרב ביותר וסוגר את חיבוריו.

שרת הקצה שומר גיבובי אישורים, לא אישורי מכשיר גולמיים, ב־remote-control-devices.json תחת בסיס התצורה שלו. הלקוח מחזיק עוגיית מכשיר תחומה למארח עם Secure, HttpOnly, SameSite=Lax. חייה בדפדפן יכולים להיות ארוכים ממגבלת חוסר הפעילות של 30 יום בשרת; המרשם נשאר הסמכות. ניקוי נתוני אתר, החלפת פרופיל דפדפן או גלישה פרטית עשויים לחייב צימוד מחדש.

שינוי סיסמת גישה ישירה אינו מבטל מכשירים. עצור שליטה מרחוק מנתק את המנהרה אך שומר את רשימת המכשירים המצומדים; השתמשו ב־בטל גישה כשברצונכם להסיר הרשאה.

צימוד מחדש בלי לאבד את המקום

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

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

זמינות ומשך חיים

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

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

ממשקים זמינים ולא זמינים

מכשירים מצומדים יכולים להשתמש ב־API רגילים של פרויקטים/שיחות, לשלוח קלט, לבדוק קבצים ולענות לאישורים/טפסים בכפוף לאותן בדיקות בעלות. צימוד הוא גישה חזקה, לא קישור שיתוף לקריאה בלבד. הוא לעולם אינו מעניק הרשאות loopback, גם שהמנהרה מעבירה תעבורה פנימית במארח.

ממשק דרך שליטה מרחוק
ממשק מאומת רגיל, סביבות עבודה, שיחות ו־SSE זמין למכשיר מצומד.
התחברות/יציאה בסיסמה, שינויי סיסמה, אתחול אסימון מקומי לא זמינים; נדרשים אישורי מכשיר גם אם אימות ישיר מושבת.
מצב שליטה מרחוק ניתן לקריאה בידי מכשיר מצומד; הניהול אינו זמין. הפעלה/עצירה, יצירת צימוד, רשימת מכשירים וביטול גישה נשארים בנתיב הגישה של המארח.
ניהול חלונות מרוחקים/שרתים בשולחן העבודה ונתיבי מתווך לא זמינים (/api/remote-servers/, /api/remote-proxy/).
מתווך תוכן של SideCar לא זמין (/sidecars/). הדבר אינו אומר שכל ממשקי SideCar חסומים: לקוחות מצומדים עדיין יכולים לגשת לממשקי הרישום /api/sidecars.
תוכן תצוגה מקדימה של אתר זמין כל עוד תצוגות מקדימות של אתרים פעיל (ברירת המחדל) תחת הגדרות → גישה מרוחקת → שליטה מרחוק במארח. כל כתובת של תצוגה מקדימה פותחת את הדף שלה ללא צימוד, ולכן שמרו עליה פרטית. כיבוי המתג עוצר את התצוגות המקדימות המוגשות ואת חיבורי ה־WebSocket שלהן; מכשירים מצומדים מסתירים את פתח תצוגה מקדימה של אתר לאחר טעינה מחדש.
גשר אוטומציה לא זמין (/api/opencode-plugin/). יכולות שולחן עבודה מקוריות אינן הופכות ליכולות דפדפן.
שדרוגי WebSocket זמינים רק לתצוגות מקדימות של אתרים.

השתמשו ב־חיבור ישיר מוגן כראוי כאשר תהליך עבודה מחייב ממשק מתווך/WebSocket חסום. שליטה מרחוק אינה עוברת אוטומטית לנתיב הזה.

ממסר ופרטיות

CodeNomad משתמש ב־OpenTunnel ותובע נתיב אקראי אחד בזהות המנהרה המשותפת כברירת מחדל במחשב. עצירה משחררת את הגשר של CodeNomad, לא את הזהות המשותפת המשמשת יישומים אחרים.

TLS מסתיים בשרת הקצה של CodeNomad. הממסר מעביר טקסט מוצפן ואינו יכול לקרוא תוכן יישום, אך יכול לראות שמות מארחים, זמני חיבור ונפחי תעבורה. תעודת המנהרה/המפתח הפרטי נשארים במארח. הגנו על אחסון המנהרה של המארח ועל תצורת CodeNomad כאישורי גישה; כתובת שאי אפשר לנחש אינה הרשאה.

CODENOMAD_REMOTE_CONTROL_API בוחר API של OpenTunnel באירוח עצמי; כשהוא אינו מוגדר משתמשים בשירות המתארח. הדבר משנה את פריסת המנהרה, לא את דרישות הצימוד או הממשקים החסומים. ראו אבטחה לטיפול באישורים ובאבחון.