3.2 KB192 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
88isl.{$DOMAIN} {
89 handle /ws {
90 reverse_proxy 172.18.0.1:3011 {
91 header_down -X-Frame-Options
92 }
93 }
94
95 handle {
96 reverse_proxy 172.18.0.1:3011 {
97 header_down -X-Frame-Options
98 }
99 }
100
101 header {
102 X-Content-Type-Options nosniff
103 Content-Security-Policy "frame-ancestors https://grove.host https://*.grove.host http://grove.test:*"
104 }
105}
106
107{$DOMAIN} {
108 handle /v2/* {
109 reverse_proxy registry:5000
110 }
111
112 handle /api/canopy/* {
113 reverse_proxy grove-api:4000
114 }
115
116 handle /api/auth/* {
117 reverse_proxy hub-api:4000
118 }
119
120 handle /api/instances {
121 reverse_proxy hub-api:4000
122 }
123
124 handle /api/instances/* {
125 reverse_proxy hub-api:4000
126 }
127
128 handle /api/orgs {
129 reverse_proxy hub-api:4000
130 }
131
132 handle /api/orgs/* {
133 reverse_proxy hub-api:4000
134 }
135
136 handle /api/repos {
137 reverse_proxy grove-api:4000
138 }
139
140 handle /api/repos/* {
141 reverse_proxy grove-api:4000
142 }
143
144 handle /api/pages/* {
145 reverse_proxy grove-api:4000
146 }
147
148 handle /downloads/* {
149 root * /srv
150 file_server
151 }
152
153 handle /health {
154 reverse_proxy hub-api:4000
155 }
156
157 handle {
158 reverse_proxy grove-web:3000
159 }
160
161 header {
162 X-Content-Type-Options nosniff
163 X-Frame-Options DENY
164 }
165}
166
167# Grove Pages — path-based default hosting at pages.grove.host/{owner}/{repo}
168pages.{$DOMAIN} {
169 root * /srv/pages/sites/_pages
170 file_server browse
171
172 header {
173 X-Content-Type-Options nosniff
174 X-Frame-Options SAMEORIGIN
175 }
176}
177
178# Grove Pages — custom domains
179:443 {
180 tls {
181 on_demand
182 }
183
184 root * /srv/pages/sites/{host}
185 file_server browse
186
187 header {
188 X-Content-Type-Options nosniff
189 X-Frame-Options SAMEORIGIN
190 }
191}
192