2.7 KB168 lines
Blame
1{
2 on_demand_tls {
3 ask http://grove-api:4000/api/pages/ask
4 }
5}
6
7collab.{$DOMAIN} {
8 handle /socket.io/* {
9 reverse_proxy grove-web:3334
10 }
11
12 handle /api/auth/* {
13 reverse_proxy hub-api:4000
14 }
15
16 handle /api/repos {
17 reverse_proxy grove-api:4000
18 }
19
20 handle /api/repos/* {
21 reverse_proxy grove-api:4000
22 }
23
24 handle {
25 reverse_proxy grove-web:3000
26 }
27
28 header {
29 X-Content-Type-Options nosniff
30 X-Frame-Options DENY
31 }
32}
33
34canopy.{$DOMAIN} {
35 handle /api/auth/* {
36 reverse_proxy hub-api:4000
37 }
38
39 handle /api/canopy/* {
40 reverse_proxy grove-api:4000
41 }
42
43 handle /api/repos {
44 reverse_proxy grove-api:4000
45 }
46
47 handle /api/repos/* {
48 reverse_proxy grove-api:4000
49 }
50
51 handle {
52 reverse_proxy grove-web:3000
53 }
54
55 header {
56 X-Content-Type-Options nosniff
57 X-Frame-Options DENY
58 }
59}
60
61ring.{$DOMAIN} {
62 handle /api/auth/* {
63 reverse_proxy hub-api:4000
64 }
65
66 handle /api/ring/* {
67 reverse_proxy grove-api:4000
68 }
69
70 handle /api/repos {
71 reverse_proxy grove-api:4000
72 }
73
74 handle /api/repos/* {
75 reverse_proxy grove-api:4000
76 }
77
78 handle {
79 reverse_proxy grove-web:3000
80 }
81
82 header {
83 X-Content-Type-Options nosniff
84 X-Frame-Options DENY
85 }
86}
87
88{$DOMAIN} {
89 handle /v2/* {
90 reverse_proxy registry:5000
91 }
92
93 handle /api/canopy/* {
94 reverse_proxy grove-api:4000
95 }
96
97 handle /api/auth/* {
98 reverse_proxy hub-api:4000
99 }
100
101 handle /api/instances {
102 reverse_proxy hub-api:4000
103 }
104
105 handle /api/instances/* {
106 reverse_proxy hub-api:4000
107 }
108
109 handle /api/orgs {
110 reverse_proxy hub-api:4000
111 }
112
113 handle /api/orgs/* {
114 reverse_proxy hub-api:4000
115 }
116
117 handle /api/repos {
118 reverse_proxy grove-api:4000
119 }
120
121 handle /api/repos/* {
122 reverse_proxy grove-api:4000
123 }
124
125 handle /api/pages/* {
126 reverse_proxy grove-api:4000
127 }
128
129 handle /health {
130 reverse_proxy hub-api:4000
131 }
132
133 handle {
134 reverse_proxy grove-web:3000
135 }
136
137 header {
138 X-Content-Type-Options nosniff
139 X-Frame-Options DENY
140 }
141}
142
143# Grove Pages — path-based default hosting at pages.grove.host/{owner}/{repo}
144pages.{$DOMAIN} {
145 root * /srv/pages/sites/_pages
146 file_server browse
147
148 header {
149 X-Content-Type-Options nosniff
150 X-Frame-Options SAMEORIGIN
151 }
152}
153
154# Grove Pages — custom domains
155:443 {
156 tls {
157 on_demand
158 }
159
160 root * /srv/pages/sites/{host}
161 file_server browse
162
163 header {
164 X-Content-Type-Options nosniff
165 X-Frame-Options SAMEORIGIN
166 }
167}
168