Gå til innholdet

Koble til en ekstern server

Hver klient er en gjengiver over en cc_server som eier dataene. Skrivebordet kan kjøre én inne i seg selv; nettappen på app.usectrl.dev kan ikke, fordi en nettleserfane ikke kan være vert for en server. Uansett peker denne veiledningen en klient mot en server som kjører et annet sted — en liten boks, en sky-VM, en byggeserver.

  • En kjørende cc_server. Har du ingen, se Kjør en headless server.
  • Enten de tre paringsverdiene serveren utstedte — Server-URL-en (ws://…/rpc eller wss://…/rpc), en Enhets-id og en Paringsnøkkel — eller en engangs Invitasjonskode fra en administrator for arbeidsområdet. Å løse inn en invitasjon oppretter brukeren din, registrerer medlemskapet ditt og utsteder legitimasjonen til denne klienten for deg, så du håndterer aldri en enhets-id eller nøkkel.

En lokal server trenger ingenting: ws://localhost:9030/rpc fungerer fra både skrivebordet og nettleseren, fordi nettlesere regner loopback som en pålitelig origin.

En server på en annen maskin er annerledes. app.usectrl.dev betjenes over HTTPS, så nettleseren åpner bare en wss://-socket med et sertifikat den allerede stoler på — og cc_server nekter å binde en adresse utenfor loopback uten TLS i utgangspunktet. Gi den ett av:

  • et sertifikat direkte, med --tls-cert og --tls-key
  • en TLS-avsluttende omvendt proxy foran, med serveren startet med --insecure (klartekst bak proxyen, kun på et klarert nettverk)
  • en tunnel eller VPN som skaffer sertifikatet — Tailscale, cloudflared eller lignende. Innstillinger → Server → Tilkobling og status har den innebygde, valgfrie tunnelen under Del denne serveren.

To innstillinger på serversiden er lette å overse. Bak en proxy, NAT eller tunnel setter du --public-url til adressen klientene faktisk skal ringe opp — den har den lokale bindingen som standard, så uten den prøver klientene feil vert. Og hvis du er vert for din egen kopi av nettbygget, legger du til originen dens i --allowed-origins, som bare inneholder https://app.usectrl.dev som standard; loopback og native klienter er alltid tillatt.

Ved en fersk installasjon:

  1. Start Control Center. Førstegangsskjermen spør Hvordan skal Control Center kjøre?
  2. I stedet for Kjør i denne appen fyller du ut tilkoblingsfeltene: server-URL-en, pluss enten en invitasjonskode eller en enhets-id og paringsnøkkel.
  3. Klikk Koble til. Control Center ringer opp serveren og lander i arbeidsområdets innboks.

På et skrivebord som allerede kjører sin egen server:

  1. Åpne Innstillinger → Server → Tilkobling og status.
  2. Klikk Legg til server. Skriv inn server-URL-en (wss://host:9030/rpc) og enten en invitasjonskode eller en enhets-id og paringsnøkkel. Suffiksknappen i URL-feltet oppdager cc_server-instanser på LAN-et eller tailnet-et ditt.
  3. Klikk Koble til, deretter Bytt på raden til den nye serveren.

Bytte skjer live: appen bygges på nytt rundt den nye økten på stedet, uten omstart. Hvis tilkoblingen mislykkes, blir du på den gjeldende serveren og ser feilen. Raden for serveren du er på, har ingen Bytt-handling; den lokale serveren er den første raden, merket Kjør i denne appen.

Når du har byttet, eier skrivebordet ingen database. Hver skjerm leser og skriver gjennom den eksterne serveren over en WebSocket.

Nettbygget er alltid eksternt.

  1. Åpne app.usectrl.dev, eller din egen kopi av nettbygget.
  2. Skriv inn server-URL-en pluss enten en invitasjonskode eller en enhets-id og paringsnøkkel.
  3. Klienten ringer opp serveren og tegner det samme grensesnittet som skrivebordet.

Hvis en paringsdyplenke ligger i URL-en, er feltene forhåndsutfylt. Paringsnøkkelen ligger i URL-fragmentet, som nettlesere aldri sender til serveren som hoster siden, så den statiske verten ser den aldri.

Nettklienten leser og skriver mot den samme serveren som skrivebordet, men noen flater trenger et native vindu eller maskinens egne enheter:

  • ingen varselpopuper fra operativsystemet, ingen varsellyder og ingen vedvarende bannerstripe (varslingssenteret i appen fungerer fortsatt)
  • ingen oppdaging av servere i LAN eller tailnet i Legg til server-dialogen
  • ingen artikkelleser i appen — artikler i nyhetsstrømmen åpnes i en ny fane
  • ingen ny kjøring av en møteoppsummering og ingen avbryting av en som behandles

To ting oppfører seg annerledes i stedet for å mangle. Opptak av møter fungerer i nettleseren; det fanger mikrofonen din pluss en skjermdeling som inkluderer et lydspor. Åpne i IDE fungerer også, men ber serveren starte editoren på serverens skjerm, så knappen skjuler seg mot en headless vert uten installerte editorer.

  • Tilkoblingen får tidsavbrudd: serveren må være tilgjengelig fra klienten. Sjekk bindingen (--bind any), at porten er åpen og at --public-url angir adressen klienten faktisk kan ringe opp. Over det åpne internettet er TLS obligatorisk — en klartekstbinding utenfor loopback avvises ved oppstart med mindre serveren ble startet med --insecure bak en proxy.
  • Nettleseren nekter å koble til, men en native klient fungerer: nettleserens origin står ikke på serverens --allowed-origins-liste. Standarden tillater bare https://app.usectrl.dev (pluss loopback).
  • Paringsnøkkelen avvises: kjør cc_server pair på nytt på serveren for å rotere nøkkelen til den enheten, og skriv deretter inn den nye. En tilbakekalt enhet oppdager at legitimasjonen er borte og svikter lukket; tilbakekalling avslutter en åpen økt innen sekunder.
  • Feil arbeidsområde: arbeidsområdet er en del av URL-en (/workspaces/:workspaceId/…) og følger med hvert kall, så å bytte arbeidsområde i én klient endrer bare din egen visning. Du kan bare nå arbeidsområder du er medlem av — alt annet avvises med «Du er ikke medlem av dette arbeidsområdet». Se Arbeidsområder og isolasjon.