Hoppa till innehåll

Anslut till en fjärrserver

Varje klient är en renderare över en cc_server som äger datan. Skrivbordsappen kan köra en inuti sig själv; webbappen på app.usectrl.dev kan inte det, eftersom en webbläsarflik inte kan vara värd för en server. Hur som helst riktar den här guiden en klient mot en server som körs någon annanstans — en liten burk, en moln-VM, en byggserver.

  • En cc_server som körs. Har du ingen, se Kör en headless-server.
  • Antingen de tre parkopplingsvärden som servern har skapat — server-URL:en (ws://…/rpc eller wss://…/rpc), ett enhets-ID och en parkopplingsnyckel — eller en engångs-inbjudningskod från en admin för arbetsytan. Att lösa in en inbjudan skapar din användare, registrerar ditt medlemskap och utfärdar den här klientens autentiseringsuppgift åt dig, så du hanterar aldrig ett enhets-ID eller en nyckel.

En lokal server behöver ingenting: ws://localhost:9030/rpc fungerar från både skrivbordsappen och webbläsaren, eftersom webbläsare betraktar loopback som en pålitlig origin.

En server på en annan maskin är en annan sak. app.usectrl.dev levereras över HTTPS, så webbläsaren öppnar bara en wss://-socket med ett certifikat som den redan litar på — och cc_server vägrar binda en adress utanför loopback utan TLS. Ge den något av:

  • ett certifikat direkt, med --tls-cert och --tls-key
  • en TLS-avslutande proxy framför, med servern startad --insecure (klartext bakom proxyn, endast i ett betrott nätverk)
  • en tunnel eller ett VPN som bidrar med certifikatet — Tailscale, cloudflared eller liknande. Inställningar → Server → Anslutning och status har den inbyggda tunnel-opt-in under Dela den här servern.

Två inställningar på serversidan är lätta att missa. Bakom en proxy, NAT eller tunnel ställer du in --public-url på den adress som klienterna faktiskt ska ringa — den har den lokala bind-adressen som standard, så utan den försöker klienterna med fel värd. Och om du hostar din egen kopia av webbbygget lägger du till dess origin i --allowed-origins, som bara har https://app.usectrl.dev som standard; loopback och inbyggda klienter är alltid tillåtna.

Vid en ny installation:

  1. Starta Control Center. Skärmen vid första starten frågar Hur ska Control Center köras?
  2. I stället för Kör i den här appen fyller du i anslutningsfälten: server-URL:en, plus antingen en inbjudningskod eller ett enhets-ID och en parkopplingsnyckel.
  3. Klicka på Anslut. Control Center ringer upp servern och landar i arbetsytans inkorg.

På en skrivbordsapp som redan kör sin egen server:

  1. Öppna Inställningar → Server → Anslutning och status.
  2. Klicka på Lägg till server. Ange server-URL:en (wss://host:9030/rpc) och antingen en inbjudningskod eller ett enhets-ID och en parkopplingsnyckel. Knappen i slutet av URL-fältet upptäcker cc_server-instanser i ditt LAN eller tailnet.
  3. Klicka på Anslut och sedan på Byt i den nya serverns rad.

Bytet sker live: appen bygger om sig själv kring den nya sessionen på plats, utan omstart. Om anslutningen misslyckas stannar du kvar på den aktuella servern och ser felet. Raden för servern du är på har ingen Byt-åtgärd; den lokala servern är den första raden, märkt Kör i den här appen.

När du har bytt äger skrivbordsappen ingen databas. Varje skärm läser och skriver via fjärrservern över en WebSocket.

Webbbygget är alltid fjärranslutet.

  1. Öppna app.usectrl.dev, eller din egen kopia av webbbygget.
  2. Ange server-URL:en plus antingen en inbjudningskod eller ett enhets-ID och en parkopplingsnyckel.
  3. Klienten ringer upp servern och renderar samma gränssnitt som skrivbordsappen.

Om en parkopplings-deep-link finns i URL:en är fälten förifyllda. Parkopplingsnyckeln färdas i URL-fragmentet, som webbläsare aldrig skickar till servern som hostar sidan, så den statiska värden ser den aldrig.

Webbklienten läser och skriver samma server som skrivbordsappen, men några ytor behöver ett inbyggt fönster eller maskinens egna enheter:

  • inga OS-aviseringar, inga aviseringsljud och ingen rad med ambienta banners (aviseringscentret i appen fungerar fortfarande)
  • ingen upptäckt av servrar i LAN eller tailnet i dialogen Lägg till server
  • ingen artikelläsare i appen — artiklar i nyhetsflödet öppnas i en ny flik
  • ingen omkörning av en mötessammanfattning och ingen avbrytning av en som bearbetas

Två av dem beter sig annorlunda i stället för att saknas. Mötes-inspelning fungerar i webbläsaren och fångar din mikrofon plus en skärmdelning som innehåller ett ljudspår. Öppna i IDE fungerar också, men ber servern starta redigeraren på serverns skärm, så knappen döljer sig mot en headless-värd utan installerade redigerare.

  • Anslutningen tar timeout: servern måste vara nåbar från klienten. Kontrollera bindningen (--bind any), att porten är öppen och att --public-url anger den adress klienten faktiskt kan ringa. Över det öppna internet är TLS obligatoriskt — en klartextbindning utanför loopback avvisas vid start om inte servern startades --insecure bakom en proxy.
  • Webbläsaren vägrar ansluta men en inbyggd klient fungerar: webbläsarens origin finns inte i serverns --allowed-origins-lista. Standardvärdet tillåter bara https://app.usectrl.dev (plus loopback).
  • Parkopplingsnyckeln avvisas: kör cc_server pair igen på servern för att rotera den enhetens nyckel och ange sedan den nya. En återkallad enhet upptäcker att dess autentiseringsuppgift är borta och faller stängt; en återkallning släpper en live-session inom några sekunder.
  • Fel arbetsyta: arbetsytan är en del av URL:en (/workspaces/:workspaceId/…) och följer med varje anrop, så att byta arbetsyta i en klient ändrar bara din egen vy. Du kan bara nå arbetsytor där du är medlem — allt annat avvisas med “Not a member of this workspace”. Se Arbetsytor och isolering.