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