3.1 KB187 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"
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 /health {
149 reverse_proxy hub-api:4000
150 }
151
152 handle {
153 reverse_proxy grove-web:3000
154 }
155
156 header {
157 X-Content-Type-Options nosniff
158 X-Frame-Options DENY
159 }
160}
161
162# Grove Pages — path-based default hosting at pages.grove.host/{owner}/{repo}
163pages.{$DOMAIN} {
164 root * /srv/pages/sites/_pages
165 file_server browse
166
167 header {
168 X-Content-Type-Options nosniff
169 X-Frame-Options SAMEORIGIN
170 }
171}
172
173# Grove Pages — custom domains
174:443 {
175 tls {
176 on_demand
177 }
178
179 root * /srv/pages/sites/{host}
180 file_server browse
181
182 header {
183 X-Content-Type-Options nosniff
184 X-Frame-Options SAMEORIGIN
185 }
186}
187