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