hub/Caddyfileblame
View source
e5b523e1{
e5b523e2 on_demand_tls {
e5b523e3 ask http://grove-api:4000/api/pages/ask
e5b523e4 }
e5b523e5}
e5b523e6
9ba59117thegild.app {
9ba59118 root * /opt/gild/web
9ba59119 file_server
9ba591110
9ba591111 header {
9ba591112 X-Content-Type-Options nosniff
9ba591113 X-Frame-Options DENY
9ba591114 }
9ba591115}
9ba591116
e3e17c817staging.thegild.app {
e3e17c818 root * /opt/gild-staging/web
e3e17c819 file_server
e3e17c820
e3e17c821 header {
e3e17c822 X-Content-Type-Options nosniff
e3e17c823 X-Frame-Options DENY
e3e17c824 X-Robots-Tag "noindex, nofollow"
e3e17c825 }
e3e17c826}
e3e17c827
bdb18c928collab.{$DOMAIN} {
0b4b58229 handle /socket.io/* {
0b4b58230 reverse_proxy grove-web:3334
0b4b58231 }
0b4b58232
0b4b58233 handle /api/auth/* {
0b4b58234 reverse_proxy hub-api:4000
0b4b58235 }
0b4b58236
0b4b58237 handle /api/repos {
0b4b58238 reverse_proxy grove-api:4000
0b4b58239 }
0b4b58240
0b4b58241 handle /api/repos/* {
0b4b58242 reverse_proxy grove-api:4000
0b4b58243 }
0b4b58244
0b4b58245 handle {
0b4b58246 reverse_proxy grove-web:3000
0b4b58247 }
bdb18c948
bdb18c949 header {
bdb18c950 X-Content-Type-Options nosniff
bdb18c951 X-Frame-Options DENY
bdb18c952 }
bdb18c953}
bdb18c954
da0f65155canopy.{$DOMAIN} {
da0f65156 handle /api/auth/* {
da0f65157 reverse_proxy hub-api:4000
da0f65158 }
da0f65159
1da987460 handle /api/canopy/* {
1da987461 reverse_proxy grove-api:4000
1da987462 }
1da987463
da0f65164 handle /api/repos {
da0f65165 reverse_proxy grove-api:4000
da0f65166 }
da0f65167
da0f65168 handle /api/repos/* {
da0f65169 reverse_proxy grove-api:4000
da0f65170 }
da0f65171
da0f65172 handle {
da0f65173 reverse_proxy grove-web:3000
da0f65174 }
da0f65175
da0f65176 header {
da0f65177 X-Content-Type-Options nosniff
da0f65178 X-Frame-Options DENY
da0f65179 }
da0f65180}
da0f65181
fe2e54482ring.{$DOMAIN} {
fe2e54483 handle /api/auth/* {
fe2e54484 reverse_proxy hub-api:4000
fe2e54485 }
fe2e54486
fe2e54487 handle /api/ring/* {
fe2e54488 reverse_proxy grove-api:4000
fe2e54489 }
fe2e54490
fe2e54491 handle /api/repos {
fe2e54492 reverse_proxy grove-api:4000
fe2e54493 }
fe2e54494
fe2e54495 handle /api/repos/* {
fe2e54496 reverse_proxy grove-api:4000
fe2e54497 }
fe2e54498
fe2e54499 handle {
fe2e544100 reverse_proxy grove-web:3000
fe2e544101 }
fe2e544102
fe2e544103 header {
fe2e544104 X-Content-Type-Options nosniff
fe2e544105 X-Frame-Options DENY
fe2e544106 }
fe2e544107}
fe2e544108
4bb999b109isl.{$DOMAIN} {
4bb999b110 handle /ws {
abf167c111 reverse_proxy 172.18.0.1:3011 {
abf167c112 header_down -X-Frame-Options
abf167c113 }
4bb999b114 }
4bb999b115
4bb999b116 handle {
abf167c117 reverse_proxy 172.18.0.1:3011 {
abf167c118 header_down -X-Frame-Options
abf167c119 }
4bb999b120 }
4bb999b121
4bb999b122 header {
4bb999b123 X-Content-Type-Options nosniff
7e5aa77124 Content-Security-Policy "frame-ancestors https://grove.host https://*.grove.host http://grove.test:*"
4bb999b125 }
4bb999b126}
4bb999b127
135dfe5128{$DOMAIN} {
5f0fbcf129 handle /v2/* {
5f0fbcf130 reverse_proxy registry:5000
5f0fbcf131 }
5f0fbcf132
8d0dc12133 handle /api/canopy/* {
8d0dc12134 reverse_proxy grove-api:4000
8d0dc12135 }
8d0dc12136
f0bb192137 handle /api/auth/* {
135dfe5138 reverse_proxy hub-api:4000
135dfe5139 }
135dfe5140
4dfd09b141 handle /api/instances {
4dfd09b142 reverse_proxy hub-api:4000
4dfd09b143 }
4dfd09b144
f0bb192145 handle /api/instances/* {
f0bb192146 reverse_proxy hub-api:4000
f0bb192147 }
f0bb192148
79efd41149 handle /api/orgs {
79efd41150 reverse_proxy hub-api:4000
79efd41151 }
79efd41152
79efd41153 handle /api/orgs/* {
79efd41154 reverse_proxy hub-api:4000
79efd41155 }
79efd41156
ffa10b4157 handle /api/repos {
ffa10b4158 reverse_proxy grove-api:4000
ffa10b4159 }
ffa10b4160
f0bb192161 handle /api/repos/* {
f0bb192162 reverse_proxy grove-api:4000
f0bb192163 }
f0bb192164
85f7497165 handle /api/pages/* {
85f7497166 reverse_proxy grove-api:4000
85f7497167 }
85f7497168
4ae9b20169 handle /downloads/* {
4ae9b20170 root * /srv
4ae9b20171 file_server
4ae9b20172 }
4ae9b20173
135dfe5174 handle /health {
135dfe5175 reverse_proxy hub-api:4000
135dfe5176 }
135dfe5177
135dfe5178 handle {
4a006da179 reverse_proxy grove-web:3000
135dfe5180 }
135dfe5181
135dfe5182 header {
135dfe5183 X-Content-Type-Options nosniff
135dfe5184 X-Frame-Options DENY
135dfe5185 }
135dfe5186}
e5b523e187
ff50d03188# Grove Pages — path-based default hosting at pages.grove.host/{owner}/{repo}
ff50d03189pages.{$DOMAIN} {
ff50d03190 root * /srv/pages/sites/_pages
ff50d03191 file_server browse
ff50d03192
ff50d03193 header {
ff50d03194 X-Content-Type-Options nosniff
ff50d03195 X-Frame-Options SAMEORIGIN
ff50d03196 }
ff50d03197}
ff50d03198
ff50d03199# Grove Pages — custom domains
e5b523e200:443 {
e5b523e201 tls {
e5b523e202 on_demand
e5b523e203 }
e5b523e204
e5b523e205 root * /srv/pages/sites/{host}
1688ad1206 file_server browse
e5b523e207
e5b523e208 header {
e5b523e209 X-Content-Type-Options nosniff
e5b523e210 X-Frame-Options SAMEORIGIN
e5b523e211 }
e5b523e212}