Mirror of tailscale/tailscale@github.com
Go to file
Brad Fitzpatrick bce05ec6c3 control/controlclient,tempfork/httprec: don't link httptest, test certs for c2n
The c2n handling code was using the Go httptest package's
ResponseRecorder code but that's in a test package which brings in
Go's test certs, etc.

This forks the httptest recorder type into its own package that only
has the recorder and adds a test that we don't re-introduce a
dependency on httptest.

Updates #12614

Change-Id: I3546f49972981e21813ece9064cc2be0b74f4b16
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com>
2025-01-26 21:30:28 +00:00
.bencher
.github go.mod: bump depaware, add --internal flag to stop hiding internal packages 2025-01-26 21:12:34 +00:00
appc appc,ipn/ipnlocal: log DNS parsing errors in app connectors (#14607) 2025-01-23 09:03:56 -08:00
atomicfile atomicfile: use ReplaceFile on Windows so that attributes and ACLs are preserved 2025-01-15 13:57:37 -05:00
chirp
client client/web: remove advanced options from web client login (#14770) 2025-01-24 16:29:58 -07:00
clientupdate
cmd control/controlclient,tempfork/httprec: don't link httptest, test certs for c2n 2025-01-26 21:30:28 +00:00
control control/controlclient,tempfork/httprec: don't link httptest, test certs for c2n 2025-01-26 21:30:28 +00:00
derp cmd/derper,derp: make TCP write timeout configurable 2025-01-24 07:50:52 -06:00
disco
docs
doctor
drive cmd/viewer,all: consistently use "read-only" instead of "readonly" 2025-01-14 08:26:56 -08:00
envknob envknob/featureknob: allow use of exit node on unraid (#14754) 2025-01-26 15:35:58 +00:00
feature feature/capture: move packet capture to feature/*, out of iOS + CLI 2025-01-24 17:52:43 -08:00
gokrazy
health
hostinfo feature/*: make Wake-on-LAN conditional, start supporting modular features 2025-01-22 17:16:15 -08:00
internal
ipn feature/capture: move packet capture to feature/*, out of iOS + CLI 2025-01-24 17:52:43 -08:00
jsondb
k8s-operator
kube cmd/{k8s-operator,containerboot},kube/kubetypes: parse Ingresses for ingress ProxyGroup (#14583) 2025-01-21 05:21:03 +00:00
licenses
log
logpolicy
logtail
metrics
net feature/capture: move packet capture to feature/*, out of iOS + CLI 2025-01-24 17:52:43 -08:00
omit
packages/deb
paths
portlist
posture
prober prober: fix nil pointer access in tcp-in-tcp probes 2025-01-21 12:44:56 -06:00
proxymap
release
safesocket
safeweb
scripts
sessionrecording
smallzstd
ssh/tailssh
syncs
tailcfg control/controlclient: skip SetControlClientStatus when queue has newer results later 2025-01-24 16:16:22 -08:00
taildrop
tempfork control/controlclient,tempfork/httprec: don't link httptest, test certs for c2n 2025-01-26 21:30:28 +00:00
tka
tool
tsconst
tsd
tsnet feature/*: make Wake-on-LAN conditional, start supporting modular features 2025-01-22 17:16:15 -08:00
tstest tstest/deptest: verify that tailscale.com BadDeps actually exist 2025-01-26 18:50:25 +00:00
tstime
tsweb tsweb: add missing debug pprof endpoints 2025-01-22 06:34:59 -08:00
types tailcfg: add ServiceName 2025-01-22 15:27:46 -05:00
util tailcfg: adjust ServiceName.Validate to use vizerror 2025-01-24 10:57:46 -05:00
version
wf
wgengine feature/capture: move packet capture to feature/*, out of iOS + CLI 2025-01-24 17:52:43 -08:00
words
.gitattributes
.gitignore
.golangci.yml
ALPINE.txt
AUTHORS
CODEOWNERS
CODE_OF_CONDUCT.md
Dockerfile
Dockerfile.base
LICENSE
Makefile go.mod: bump depaware, add --internal flag to stop hiding internal packages 2025-01-26 21:12:34 +00:00
PATENTS
README.md
SECURITY.md
VERSION.txt
api.md
assert_ts_toolchain_match.go
build_dist.sh feature/capture: move packet capture to feature/*, out of iOS + CLI 2025-01-24 17:52:43 -08:00
build_docker.sh
flake.lock
flake.nix
go.mod go.mod: bump depaware, add --internal flag to stop hiding internal packages 2025-01-26 21:12:34 +00:00
go.mod.sri
go.sum go.mod: bump depaware, add --internal flag to stop hiding internal packages 2025-01-26 21:12:34 +00:00
go.toolchain.branch
go.toolchain.rev
gomod_test.go
header.txt
pkgdoc_test.go
pull-toolchain.sh
shell.nix
staticcheck.conf
update-flake.sh
version-embed.go
version_tailscale_test.go
version_test.go

README.md

Tailscale

https://tailscale.com

Private WireGuard® networks made easy

Overview

This repository contains the majority of Tailscale's open source code. Notably, it includes the tailscaled daemon and the tailscale CLI tool. The tailscaled daemon runs on Linux, Windows, macOS, and to varying degrees on FreeBSD and OpenBSD. The Tailscale iOS and Android apps use this repo's code, but this repo doesn't contain the mobile GUI code.

Other Tailscale repos of note:

For background on which parts of Tailscale are open source and why, see https://tailscale.com/opensource/.

Using

We serve packages for a variety of distros and platforms at https://pkgs.tailscale.com.

Other clients

The macOS, iOS, and Windows clients use the code in this repository but additionally include small GUI wrappers. The GUI wrappers on non-open source platforms are themselves not open source.

Building

We always require the latest Go release, currently Go 1.23. (While we build releases with our Go fork, its use is not required.)

go install tailscale.com/cmd/tailscale{,d}

If you're packaging Tailscale for distribution, use build_dist.sh instead, to burn commit IDs and version info into the binaries:

./build_dist.sh tailscale.com/cmd/tailscale
./build_dist.sh tailscale.com/cmd/tailscaled

If your distro has conventions that preclude the use of build_dist.sh, please do the equivalent of what it does in your distro's way, so that bug reports contain useful version information.

Bugs

Please file any issues about this code or the hosted service on the issue tracker.

Contributing

PRs welcome! But please file bugs. Commit messages should reference bugs.

We require Developer Certificate of Origin Signed-off-by lines in commits.

See git log for our commit message style. It's basically the same as Go's style.

About Us

Tailscale is primarily developed by the people at https://github.com/orgs/tailscale/people. For other contributors, see:

WireGuard is a registered trademark of Jason A. Donenfeld.