Uzak bir sunucuya bağlanma
Her istemci, verilerin sahibi olan bir cc_server üzerinde arayüz çizen bir
katmandır. Masaüstü uygulaması bunu kendi içinde çalıştırabilir;
app.usectrl.dev adresindeki web uygulaması
çalıştıramaz, çünkü bir tarayıcı sekmesi sunucu barındıramaz. Her iki durumda da
bu kılavuz, bir istemciyi başka bir yerde çalışan bir sunucuya — küçük bir
kutuya, bir bulut sanal makinesine, bir derleme sunucusuna — yönlendirir.
Önkoşullar
Bölüm başlığı “Önkoşullar”- Çalışan bir
cc_server. Yoksa Headless bir sunucu çalıştırma sayfasına bakın. - Sunucunun ürettiği üç eşleştirme değeri — sunucu URL’si (
ws://…/rpcveyawss://…/rpc), bir cihaz kimliği ve bir eşleştirme anahtarı — ya da bir çalışma alanı yöneticisinden alınan tek kullanımlık bir davet kodu. Bir daveti kullanmak kullanıcınızı oluşturur, üyeliğinizi kaydeder ve bu istemcinin kimlik bilgisini sizin adınıza üretir; böylece bir cihaz kimliğini ya da anahtarı hiç elle işlemezsiniz.
Sunucunun erişilebilir olduğundan emin olun
Bölüm başlığı “Sunucunun erişilebilir olduğundan emin olun”Yerel bir sunucu için hiçbir şey gerekmez: ws://localhost:9030/rpc hem
masaüstünden hem de tarayıcıdan çalışır, çünkü tarayıcılar loopback’i güvenilir
bir kaynak sayar.
Başka bir makinedeki sunucu farklıdır. app.usectrl.dev HTTPS üzerinden
sunulur, bu yüzden tarayıcı yalnızca zaten güvendiği bir sertifikaya sahip bir
wss:// soketi açar — üstelik cc_server de TLS olmadan loopback dışı bir
adrese bağlanmayı baştan reddeder. Şunlardan birini sağlayın:
- doğrudan bir sertifika,
--tls-certve--tls-keyile - önde TLS sonlandıran bir ters proxy, sunucu
--insecureile başlatılmış olarak (proxy’nin arkasında düz metin, yalnızca güvenilir bir ağda) - sertifikayı sağlayan bir tünel veya VPN — Tailscale, cloudflared ya da benzeri. Ayarlar → Sunucu → Bağlantı ve durum içinde, Bu sunucuyu paylaş altında yerleşik tünel katılımı bulunur.
Sunucu tarafındaki iki ayarın gözden kaçması kolaydır. Bir proxy, NAT veya
tünelin arkasında, --public-url ayarını istemcilerin gerçekte araması gereken
adrese ayarlayın — varsayılanı yerel bağlanma adresidir, dolayısıyla bu ayar
olmadan istemciler yanlış ana makineyi dener. Web paketinin kendi kopyanızı
barındırıyorsanız, kaynağını --allowed-origins listesine ekleyin; bu listenin
varsayılanı yalnızca https://app.usectrl.dev’dur ve loopback ile yerel
istemcilere her zaman izin verilir.
Masaüstü uygulamasını bağlama
Bölüm başlığı “Masaüstü uygulamasını bağlama”Yeni bir kurulumda:
- Control Center’ı başlatın. İlk çalıştırma ekranı Control Center nasıl çalışsın? diye sorar.
- Bu uygulamada çalıştır yerine bağlantı alanlarını doldurun: sunucu URL’si ile birlikte bir davet kodu ya da bir cihaz kimliği ve eşleştirme anahtarı.
- Bağlan’a tıklayın. Control Center sunucuyu arar ve çalışma alanı gelen kutusunda açılır.
Kendi sunucusunu zaten çalıştıran bir masaüstünde:
- Ayarlar → Sunucu → Bağlantı ve durum bölümünü açın.
- Sunucu ekle’ye tıklayın. Sunucu URL’sini (
wss://host:9030/rpc) ve bir davet kodunu ya da bir cihaz kimliği ile eşleştirme anahtarını girin. URL alanının son ek düğmesi, LAN’ınızdaki veya tailnet’inizdekicc_serverörneklerini keşfeder. - Bağlan’a, ardından yeni sunucunun satırındaki Geç’e tıklayın.
Geçiş canlıdır: uygulama yeni oturumun çevresinde yerinde yeniden kurulur, yeniden başlatma gerekmez. Bağlantı başarısız olursa geçerli sunucuda kalırsınız ve hatayı görürsünüz. Üzerinde bulunduğunuz sunucunun satırında Geç eylemi yoktur; yerel sunucu, Bu uygulamada çalıştır etiketiyle ilk satırdır.
Geçiş yapıldıktan sonra masaüstü hiçbir veritabanına sahip olmaz. Her ekran okuma ve yazma işlemlerini uzak sunucu üzerinden, bir WebSocket ile yapar.
Web istemcisini bağlama
Bölüm başlığı “Web istemcisini bağlama”Web yapısı her zaman uzaktır.
- app.usectrl.dev adresini ya da web paketinin kendi kopyanızı açın.
- Sunucu URL’sini ve bir davet kodunu ya da bir cihaz kimliği ile eşleştirme anahtarını girin.
- İstemci sunucuyu arar ve masaüstünün çizdiği aynı arayüzü çizer.
URL’de bir eşleştirme derin bağlantısı varsa alanlar önceden doldurulur. Eşleştirme anahtarı URL’nin fragment kısmında taşınır; tarayıcılar bunu sayfayı barındıran sunucuya hiçbir zaman göndermez, böylece statik barındırıcı anahtarı hiç görmez.
Tarayıcının yapmadıkları
Bölüm başlığı “Tarayıcının yapmadıkları”Web istemcisi masaüstüyle aynı sunucudan okur ve yazar, ancak birkaç yüzey yerel bir pencereye ya da makinenin kendi cihazlarına ihtiyaç duyar:
- işletim sistemi bildirim baloncukları, bildirim sesleri veya ortam afiş şeridi yok (uygulama içi bildirim merkezi yine de çalışır)
- Sunucu ekle iletişim kutusunda LAN veya tailnet sunucu keşfi yok
- uygulama içi makale okuyucu yok — haber akışı makaleleri yeni bir sekmede açılır
- bir toplantı özetini yeniden çalıştırma ve işlenmekte olan bir özeti iptal etme yok
İki tanesi eksik olmak yerine farklı davranır. Toplantı kaydı tarayıcıda çalışır; mikrofonunuzu ve ses parçası içeren bir ekran paylaşımını yakalar. Düzenleyicide aç da çalışır, ancak sunucudan düzenleyiciyi sunucunun ekranında başlatmasını ister; bu yüzden kurulu düzenleyicisi olmayan headless bir ana makinede düğme kendini gizler.
Sorun giderme
Bölüm başlığı “Sorun giderme”- Bağlantı zaman aşımına uğruyor: sunucuya istemciden erişilebilmelidir. Bağlanmayı (
--bind any), portun açık olduğunu ve--public-urlayarının istemcinin gerçekte arayabileceği adresi gösterdiğini denetleyin. Açık internette TLS zorunludur — sunucu bir proxy arkasında--insecureile başlatılmadıysa, düz metin loopback dışı bağlanma başlangıçta reddedilir. - Tarayıcı bağlanmayı reddediyor ama yerel bir istemci çalışıyor: tarayıcının kaynağı sunucunun
--allowed-originslistesinde değil. Varsayılan yalnızcahttps://app.usectrl.devadresine izin verir (artı loopback). - Eşleştirme anahtarı reddedildi: o cihazın anahtarını döndürmek için sunucuda
cc_server pairkomutunu yeniden çalıştırın, ardından yenisini girin. İptal edilmiş bir cihaz kimlik bilgisinin yok olduğunu görür ve kapalıya düşer; iptal, canlı bir oturumu saniyeler içinde düşürür. - Yanlış çalışma alanı: çalışma alanı URL’nin bir parçasıdır (
/workspaces/:workspaceId/…) ve her çağrıyla birlikte taşınır, bu yüzden bir istemcide çalışma alanı değiştirmek yalnızca kendi görünümünüzü değiştirir. Yalnızca üyesi olduğunuz çalışma alanlarına erişebilirsiniz — başka her şey “Not a member of this workspace” ile reddedilir. Bkz. Çalışma alanları ve yalıtım.
İlgili kılavuzlar
Bölüm başlığı “İlgili kılavuzlar”- Headless bir sunucu çalıştırma
- Bir cihaz eşleştirme: telefon aktarıcı yolu