3.6 KB215 lines
Blame
1{
2 on_demand_tls {
3 ask http://grove-api:4000/api/pages/ask
4 }
5}
6
7thegild.app {
8 tls /certs/thegild.app.crt /certs/thegild.app.key
9
10 reverse_proxy gild-web:3000
11
12 header {
13 X-Content-Type-Options nosniff
14 X-Frame-Options DENY
15 }
16}
17
18staging.thegild.app {
19 tls /certs/thegild.app.crt /certs/thegild.app.key
20
21 reverse_proxy gild-web-staging:3000
22
23 header {
24 X-Content-Type-Options nosniff
25 X-Frame-Options DENY
26 X-Robots-Tag "noindex, nofollow"
27 }
28}
29
30collab.{$DOMAIN} {
31 handle /socket.io/* {
32 reverse_proxy grove-web:3334
33 }
34
35 handle /api/auth/* {
36 reverse_proxy hub-api:4000
37 }
38
39 handle /api/repos {
40 reverse_proxy grove-api:4000
41 }
42
43 handle /api/repos/* {
44 reverse_proxy grove-api:4000
45 }
46
47 handle {
48 reverse_proxy grove-web:3000
49 }
50
51 header {
52 X-Content-Type-Options nosniff
53 X-Frame-Options DENY
54 }
55}
56
57canopy.{$DOMAIN} {
58 handle /api/auth/* {
59 reverse_proxy hub-api:4000
60 }
61
62 handle /api/canopy/* {
63 reverse_proxy grove-api:4000
64 }
65
66 handle /api/repos {
67 reverse_proxy grove-api:4000
68 }
69
70 handle /api/repos/* {
71 reverse_proxy grove-api:4000
72 }
73
74 handle {
75 reverse_proxy grove-web:3000
76 }
77
78 header {
79 X-Content-Type-Options nosniff
80 X-Frame-Options DENY
81 }
82}
83
84ring.{$DOMAIN} {
85 handle /api/auth/* {
86 reverse_proxy hub-api:4000
87 }
88
89 handle /api/ring/* {
90 reverse_proxy grove-api:4000
91 }
92
93 handle /api/repos {
94 reverse_proxy grove-api:4000
95 }
96
97 handle /api/repos/* {
98 reverse_proxy grove-api:4000
99 }
100
101 handle {
102 reverse_proxy grove-web:3000
103 }
104
105 header {
106 X-Content-Type-Options nosniff
107 X-Frame-Options DENY
108 }
109}
110
111isl.{$DOMAIN} {
112 handle /ws {
113 reverse_proxy 172.18.0.1:3011 {
114 header_down -X-Frame-Options
115 }
116 }
117
118 handle {
119 reverse_proxy 172.18.0.1:3011 {
120 header_down -X-Frame-Options
121 }
122 }
123
124 header {
125 X-Content-Type-Options nosniff
126 Content-Security-Policy "frame-ancestors https://grove.host https://*.grove.host http://grove.test:*"
127 }
128}
129
130{$DOMAIN} {
131 handle /v2/* {
132 reverse_proxy registry:5000
133 }
134
135 handle /api/canopy/* {
136 reverse_proxy grove-api:4000
137 }
138
139 handle /api/auth/* {
140 reverse_proxy hub-api:4000
141 }
142
143 handle /api/instances {
144 reverse_proxy hub-api:4000
145 }
146
147 handle /api/instances/* {
148 reverse_proxy hub-api:4000
149 }
150
151 handle /api/orgs {
152 reverse_proxy hub-api:4000
153 }
154
155 handle /api/orgs/* {
156 reverse_proxy hub-api:4000
157 }
158
159 handle /api/repos {
160 reverse_proxy grove-api:4000
161 }
162
163 handle /api/repos/* {
164 reverse_proxy grove-api:4000
165 }
166
167 handle /api/pages/* {
168 reverse_proxy grove-api:4000
169 }
170
171 handle /downloads/* {
172 root * /srv
173 file_server
174 }
175
176 handle /health {
177 reverse_proxy hub-api:4000
178 }
179
180 handle {
181 reverse_proxy grove-web:3000
182 }
183
184 header {
185 X-Content-Type-Options nosniff
186 X-Frame-Options DENY
187 }
188}
189
190# Grove Pages — path-based default hosting at pages.grove.host/{owner}/{repo}
191pages.{$DOMAIN} {
192 root * /srv/pages/sites/_pages
193 file_server browse
194
195 header {
196 X-Content-Type-Options nosniff
197 X-Frame-Options SAMEORIGIN
198 }
199}
200
201# Grove Pages — custom domains
202:443 {
203 tls {
204 on_demand
205 }
206
207 root * /srv/pages/sites/{host}
208 file_server browse
209
210 header {
211 X-Content-Type-Options nosniff
212 X-Frame-Options SAMEORIGIN
213 }
214}
215