| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546 |
- // Copyright (c) Tailscale Inc & AUTHORS
- // SPDX-License-Identifier: BSD-3-Clause
- // The web-client command demonstrates serving the Tailscale web client over tsnet.
- package main
- import (
- "flag"
- "log"
- "net/http"
- "tailscale.com/client/web"
- "tailscale.com/tsnet"
- )
- var (
- addr = flag.String("addr", "localhost:8060", "address of Tailscale web client")
- )
- func main() {
- flag.Parse()
- s := &tsnet.Server{RunWebClient: true}
- defer s.Close()
- lc, err := s.LocalClient()
- if err != nil {
- log.Fatal(err)
- }
- // Serve the Tailscale web client.
- ws, err := web.NewServer(web.ServerOpts{
- Mode: web.LoginServerMode,
- LocalClient: lc,
- })
- if err != nil {
- log.Fatal(err)
- }
- defer ws.Shutdown()
- log.Printf("Serving Tailscale web client on http://%s", *addr)
- if err := http.ListenAndServe(*addr, ws); err != nil {
- if err != http.ErrServerClosed {
- log.Fatal(err)
- }
- }
- }
|