Your browser sucks, JavaScript disabled! Gunnar's console needs JavaScript and WebAssembly. Git over SSH on port 2222 does not.

nordisk/holger-ui

docs/tailscale-access.md

Ansluta till holger-konsolen över Tailscale

Konsolen körs på Henriks ThinkPad och exponeras bara inom tailnätet (tailscale serve, inte Funnel) — den är alltså inte nåbar från internet, och det finns ingen publik URL. För att nå den måste din maskin vara en nod i samma tailnet.

URL: https://henrik-thinkpad-t14s-gen-6.tail4eceda.ts.net


Steg 1 — Henrik ger åtkomst (görs en gång)

Välj en av två vägar i Tailscale-admin (https://login.tailscale.com/admin):

A. Dela bara den här maskinen (minst behörighet, rekommenderas)

  1. Machines → henrik-thinkpad-t14s-gen-6 → Share…
  2. Ange Rickards e-post → skicka delningslänken.
  3. Rickard öppnar länken och accepterar; maskinen dyker upp i hans egen tailnet-lista som en delad nod. Han får åtkomst till den maskinen, inget annat i tailnätet.

B. Bjuda in till tailnätet (om Rickard ska nå fler tjänster)

  1. Users → Invite external user → Rickards e-post.
  2. Kontrollera att tailnätets ACL släpper fram hans nod till port 443 på henrik-thinkpad-t14s-gen-6.

Steg 2 — Rickard installerar och loggar in

curl -fsSL https://tailscale.com/install.sh | sh
sudo tailscale up

(macOS/Windows: hämta klienten från https://tailscale.com/download och logga in i appen.) Logga in med det konto inbjudan/delningen gick till.

Kontrollera att maskinen syns:

tailscale status | grep henrik-thinkpad

Steg 3 — Öppna konsolen

https://henrik-thinkpad-t14s-gen-6.tail4eceda.ts.net

Certifikatet är utfärdat av Tailscale för .ts.net — inga varningar ska dyka upp. Använd värdnamnet, inte IP-adressen: certifikatet gäller namnet, så https://100.121.38.43 ger en certvarning.

Du bör se en topbar med ok · holger v0.6.9 (…) och en översikt med fyra kort.

Steg 4 — Logga in för att kunna skriva

Läsning (bläddra, söka, ladda ner, se SBOM/properties) fungerar utan inloggning — topbaren visar då anonymous · reader. Skrivning (upload, promote, properties, SBOM-attach) kräver en bearer-token:

  1. Gå till Account i menyn.
  2. Klistra in token i fältet Bearer token → Log in.
  3. Topbaren ska nu visa ditt subject och din roll, t.ex. console-admin · admin — det är serverns svar, inte klientens gissning.

Henrik skickar token separat (den ligger i en 0600-fil på maskinen och står aldrig i det här dokumentet). Token lever bara i fliken (sessionStorage) och försvinner när du stänger den eller trycker Log out.


Om det inte funkar

Symptom Trolig orsak Åtgärd
Namnet slår inte upp MagicDNS av, eller noden inte accepterad tailscale status — syns maskinen? Acceptera delningen.
Timeout / ingen kontakt Laptopen sover eller är offline Den är en bärbar dator — be Henrik väcka den. tailscale ping henrik-thinkpad-t14s-gen-6 visar om noden svarar.
Sidan laddar men är tom WASM-bundeln blockeras eller är halvladdad Hårdladda (Ctrl+Shift+R). Kvarstår det: be Henrik köra cargo xtask verify-chain.
503 eller 502 nginx uppe men holger-servern nere Henrik: systemctl --user status holger-server holger-console
Certifikatvarning Du använde IP i stället för värdnamnet Använd https://henrik-thinkpad-t14s-gen-6.tail4eceda.ts.net
Skrivningar nekas med "authentication required" Ingen token, eller fel roll Logga in på Account. Rollen sätts av servern (RBAC), inte av konsolen.

Henrik kan verifiera hela kedjan utifrån med:

cd ~/holger-ui && cargo xtask verify-chain

Den kontrollerar båda tjänsterna, tailscale-konfigurationen, SPA-fallbacken, gRPC-dörren, skrivgrinden och CSP-headern — nio kontroller, alla ska vara OK.