Skip to content

Commit 68b91cc

Browse files
committed
initial working demo
Signed-off-by: Will Norris <[email protected]>
1 parent 24a35d0 commit 68b91cc

File tree

5 files changed

+2357
-0
lines changed

5 files changed

+2357
-0
lines changed

Caddyfile

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
# The site on port 7000 demonstrates requiring Tailscale authentication, and
2+
# using the placeholder values on the Caddy user object in a go template files
3+
# (see index.html).
4+
:7000 {
5+
root .
6+
file_server
7+
templates
8+
route {
9+
tailscale_auth
10+
}
11+
12+
}
13+
14+
# The sites on port 7100 and 7101 demonstrate using Tailscale authentication
15+
# with a proxied application. Port 7100 is the Caddy proxy which enforces
16+
# authentication, uses the Caddy user object to set various X-Webauth headers,
17+
# and then proxies the request to port 7101 which is the proxied application.
18+
:7100 {
19+
route {
20+
tailscale_auth
21+
}
22+
23+
reverse_proxy http://localhost:7101 {
24+
header_up X-Webauth-User {http.auth.user.tailscale_login}
25+
header_up X-Webauth-Email {http.auth.user.tailscale_user}
26+
header_up X-Webauth-Name {http.auth.user.tailscale_name}
27+
header_up X-Webauth-Tailnet {http.auth.user.tailscale_tailnet}
28+
header_up X-Webauth-Photo {http.auth.user.tailscale_profile_picture}
29+
}
30+
}
31+
32+
# The site on port 7101 is playing the role of a proxied application that
33+
# doesn't know anything about Tailscale, but can be configured for external
34+
# authentication in X-Webauth request headers. Real world applications that
35+
# support this setup include Grafana and Gitea, among others.
36+
:7101 {
37+
root .
38+
file_server
39+
templates
40+
}

go.mod

Lines changed: 161 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,161 @@
1+
module github.com/tailscale/caddy
2+
3+
go 1.19
4+
5+
require (
6+
github.com/caddyserver/caddy/v2 v2.5.2
7+
tailscale.com v1.1.1-0.20220813000930-1cff719015ae
8+
)
9+
10+
require (
11+
filippo.io/edwards25519 v1.0.0-rc.1 // indirect
12+
github.com/AndreasBriese/bbloom v0.0.0-20190825152654-46b345b51c96 // indirect
13+
github.com/Masterminds/goutils v1.1.1 // indirect
14+
github.com/Masterminds/semver/v3 v3.1.1 // indirect
15+
github.com/Masterminds/sprig/v3 v3.2.2 // indirect
16+
github.com/akutz/memconn v0.1.0 // indirect
17+
github.com/alexbrainman/sspi v0.0.0-20210105120005-909beea2cc74 // indirect
18+
github.com/antlr/antlr4/runtime/Go/antlr v0.0.0-20220418222510-f25a4f6275ed // indirect
19+
github.com/aryann/difflib v0.0.0-20210328193216-ff5ff6dc229b // indirect
20+
github.com/aws/aws-sdk-go-v2 v1.11.2 // indirect
21+
github.com/aws/aws-sdk-go-v2/config v1.11.0 // indirect
22+
github.com/aws/aws-sdk-go-v2/credentials v1.6.4 // indirect
23+
github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.8.2 // indirect
24+
github.com/aws/aws-sdk-go-v2/internal/configsources v1.1.2 // indirect
25+
github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.0.2 // indirect
26+
github.com/aws/aws-sdk-go-v2/internal/ini v1.3.2 // indirect
27+
github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.5.2 // indirect
28+
github.com/aws/aws-sdk-go-v2/service/ssm v1.17.1 // indirect
29+
github.com/aws/aws-sdk-go-v2/service/sso v1.6.2 // indirect
30+
github.com/aws/aws-sdk-go-v2/service/sts v1.11.1 // indirect
31+
github.com/aws/smithy-go v1.9.0 // indirect
32+
github.com/beorn7/perks v1.0.1 // indirect
33+
github.com/caddyserver/certmagic v0.16.1 // indirect
34+
github.com/cespare/xxhash v1.1.0 // indirect
35+
github.com/cespare/xxhash/v2 v2.1.2 // indirect
36+
github.com/cheekybits/genny v1.0.0 // indirect
37+
github.com/chzyer/readline v0.0.0-20180603132655-2972be24d48e // indirect
38+
github.com/coreos/go-iptables v0.6.0 // indirect
39+
github.com/cpuguy83/go-md2man/v2 v2.0.0 // indirect
40+
github.com/dgraph-io/badger v1.6.2 // indirect
41+
github.com/dgraph-io/badger/v2 v2.2007.4 // indirect
42+
github.com/dgraph-io/ristretto v0.0.4-0.20200906165740-41ebdbffecfd // indirect
43+
github.com/dgryski/go-farm v0.0.0-20200201041132-a6ae2369ad13 // indirect
44+
github.com/dustin/go-humanize v1.0.1-0.20200219035652-afde56e7acac // indirect
45+
github.com/fsnotify/fsnotify v1.5.1 // indirect
46+
github.com/fxamacker/cbor/v2 v2.4.0 // indirect
47+
github.com/go-kit/kit v0.10.0 // indirect
48+
github.com/go-logfmt/logfmt v0.5.0 // indirect
49+
github.com/go-ole/go-ole v1.2.6 // indirect
50+
github.com/go-sql-driver/mysql v1.6.0 // indirect
51+
github.com/go-task/slim-sprig v0.0.0-20210107165309-348f09dbbbc0 // indirect
52+
github.com/godbus/dbus/v5 v5.0.6 // indirect
53+
github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da // indirect
54+
github.com/golang/protobuf v1.5.2 // indirect
55+
github.com/golang/snappy v0.0.4 // indirect
56+
github.com/google/btree v1.0.1 // indirect
57+
github.com/google/cel-go v0.11.4 // indirect
58+
github.com/google/go-cmp v0.5.8 // indirect
59+
github.com/google/uuid v1.3.0 // indirect
60+
github.com/hdevalence/ed25519consensus v0.0.0-20220222234857-c00d1f31bab3 // indirect
61+
github.com/huandu/xstrings v1.3.2 // indirect
62+
github.com/imdario/mergo v0.3.12 // indirect
63+
github.com/insomniacslk/dhcp v0.0.0-20211209223715-7d93572ebe8e // indirect
64+
github.com/jackc/chunkreader/v2 v2.0.1 // indirect
65+
github.com/jackc/pgconn v1.10.1 // indirect
66+
github.com/jackc/pgio v1.0.0 // indirect
67+
github.com/jackc/pgpassfile v1.0.0 // indirect
68+
github.com/jackc/pgproto3/v2 v2.2.0 // indirect
69+
github.com/jackc/pgservicefile v0.0.0-20200714003250-2b9c44734f2b // indirect
70+
github.com/jackc/pgtype v1.9.0 // indirect
71+
github.com/jackc/pgx/v4 v4.14.0 // indirect
72+
github.com/jmespath/go-jmespath v0.4.0 // indirect
73+
github.com/josharian/native v1.0.0 // indirect
74+
github.com/jsimonetti/rtnetlink v1.1.2-0.20220408201609-d380b505068b // indirect
75+
github.com/klauspost/compress v1.15.6 // indirect
76+
github.com/klauspost/cpuid/v2 v2.0.13 // indirect
77+
github.com/kortschak/wol v0.0.0-20200729010619-da482cc4850a // indirect
78+
github.com/libdns/libdns v0.2.1 // indirect
79+
github.com/lucas-clemente/quic-go v0.28.0 // indirect
80+
github.com/manifoldco/promptui v0.9.0 // indirect
81+
github.com/marten-seemann/qpack v0.2.1 // indirect
82+
github.com/marten-seemann/qtls-go1-16 v0.1.5 // indirect
83+
github.com/marten-seemann/qtls-go1-17 v0.1.2 // indirect
84+
github.com/marten-seemann/qtls-go1-18 v0.1.2 // indirect
85+
github.com/marten-seemann/qtls-go1-19 v0.1.0-beta.1 // indirect
86+
github.com/mattn/go-colorable v0.1.12 // indirect
87+
github.com/mattn/go-isatty v0.0.14 // indirect
88+
github.com/matttproud/golang_protobuf_extensions v1.0.1 // indirect
89+
github.com/mdlayher/genetlink v1.2.0 // indirect
90+
github.com/mdlayher/netlink v1.6.0 // indirect
91+
github.com/mdlayher/sdnotify v1.0.0 // indirect
92+
github.com/mdlayher/socket v0.2.3 // indirect
93+
github.com/mgutz/ansi v0.0.0-20200706080929-d51e80ef957d // indirect
94+
github.com/mholt/acmez v1.0.2 // indirect
95+
github.com/micromdm/scep/v2 v2.1.0 // indirect
96+
github.com/miekg/dns v1.1.46 // indirect
97+
github.com/mitchellh/copystructure v1.2.0 // indirect
98+
github.com/mitchellh/go-ps v1.0.0 // indirect
99+
github.com/mitchellh/reflectwalk v1.0.2 // indirect
100+
github.com/nxadm/tail v1.4.8 // indirect
101+
github.com/onsi/ginkgo v1.16.4 // indirect
102+
github.com/pkg/errors v0.9.1 // indirect
103+
github.com/prometheus/client_golang v1.12.1 // indirect
104+
github.com/prometheus/client_model v0.2.0 // indirect
105+
github.com/prometheus/common v0.32.1 // indirect
106+
github.com/prometheus/procfs v0.7.3 // indirect
107+
github.com/rs/xid v1.2.1 // indirect
108+
github.com/russross/blackfriday/v2 v2.0.1 // indirect
109+
github.com/shopspring/decimal v1.2.0 // indirect
110+
github.com/shurcooL/sanitized_anchor_name v1.0.0 // indirect
111+
github.com/sirupsen/logrus v1.8.1 // indirect
112+
github.com/slackhq/nebula v1.5.2 // indirect
113+
github.com/smallstep/certificates v0.19.0 // indirect
114+
github.com/smallstep/cli v0.18.0 // indirect
115+
github.com/smallstep/nosql v0.4.0 // indirect
116+
github.com/smallstep/truststore v0.11.0 // indirect
117+
github.com/spf13/cast v1.4.1 // indirect
118+
github.com/stoewer/go-strcase v1.2.0 // indirect
119+
github.com/tailscale/certstore v0.1.1-0.20220316223106-78d6e1c49d8d // indirect
120+
github.com/tailscale/golang-x-crypto v0.0.0-20220428210705-0b941c09a5e1 // indirect
121+
github.com/tailscale/goupnp v1.0.1-0.20210804011211-c64d0f06ea05 // indirect
122+
github.com/tailscale/netlink v1.1.1-0.20211101221916-cabfb018fe85 // indirect
123+
github.com/tailscale/tscert v0.0.0-20220316030059-54bbcb9f74e2 // indirect
124+
github.com/tcnksm/go-httpstat v0.2.0 // indirect
125+
github.com/u-root/uio v0.0.0-20220204230159-dac05f7d2cb4 // indirect
126+
github.com/urfave/cli v1.22.5 // indirect
127+
github.com/vishvananda/netlink v1.1.1-0.20211118161826-650dca95af54 // indirect
128+
github.com/vishvananda/netns v0.0.0-20211101163701-50045581ed74 // indirect
129+
github.com/x448/float16 v0.8.4 // indirect
130+
go.etcd.io/bbolt v1.3.6 // indirect
131+
go.mozilla.org/pkcs7 v0.0.0-20210826202110-33d05740a352 // indirect
132+
go.step.sm/cli-utils v0.7.0 // indirect
133+
go.step.sm/crypto v0.16.1 // indirect
134+
go.step.sm/linkedca v0.15.0 // indirect
135+
go.uber.org/atomic v1.9.0 // indirect
136+
go.uber.org/multierr v1.6.0 // indirect
137+
go.uber.org/zap v1.21.0 // indirect
138+
go4.org/mem v0.0.0-20210711025021-927187094b94 // indirect
139+
go4.org/netipx v0.0.0-20220725152314-7e7bdc8411bf // indirect
140+
golang.org/x/crypto v0.0.0-20220427172511-eb4f295cb31f // indirect
141+
golang.org/x/exp v0.0.0-20220722155223-a9213eeb770e // indirect
142+
golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4 // indirect
143+
golang.org/x/net v0.0.0-20220624214902-1bab6f366d9e // indirect
144+
golang.org/x/sync v0.0.0-20220601150217-0de741cfad7f // indirect
145+
golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8 // indirect
146+
golang.org/x/term v0.0.0-20210927222741-03fcf44c2211 // indirect
147+
golang.org/x/text v0.3.8-0.20211004125949-5bd84dd9b33b // indirect
148+
golang.org/x/time v0.0.0-20211116232009-f0f3c7e86c11 // indirect
149+
golang.org/x/tools v0.1.11 // indirect
150+
golang.zx2c4.com/wintun v0.0.0-20211104114900-415007cec224 // indirect
151+
golang.zx2c4.com/wireguard v0.0.0-20220703234212-c31a7b1ab478 // indirect
152+
golang.zx2c4.com/wireguard/windows v0.5.1 // indirect
153+
google.golang.org/genproto v0.0.0-20220502173005-c8bf987b8c21 // indirect
154+
google.golang.org/grpc v1.46.0 // indirect
155+
google.golang.org/protobuf v1.28.0 // indirect
156+
gopkg.in/square/go-jose.v2 v2.6.0 // indirect
157+
gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7 // indirect
158+
gvisor.dev/gvisor v0.0.0-20220801230058-850e42eb4444 // indirect
159+
howett.net/plist v1.0.0 // indirect
160+
nhooyr.io/websocket v1.8.7 // indirect
161+
)

0 commit comments

Comments
 (0)