29 lines
455 B
Go
29 lines
455 B
Go
package main
|
|
|
|
import (
|
|
"fmt"
|
|
"log"
|
|
"net"
|
|
|
|
"tailscale.com/tsnet"
|
|
)
|
|
|
|
func startTailscale(dataDir string, nodeID string) (net.Listener, error) {
|
|
s := &tsnet.Server{
|
|
Hostname: nodeID,
|
|
Dir: dataDir,
|
|
Logf: log.Printf,
|
|
}
|
|
|
|
if err := s.Start(); err != nil {
|
|
return nil, fmt.Errorf("tailscale start: %w", err)
|
|
}
|
|
|
|
ln, err := s.Listen("tcp", ":0")
|
|
if err != nil {
|
|
return nil, fmt.Errorf("tailscale listen: %w", err)
|
|
}
|
|
|
|
return ln, nil
|
|
}
|