hub/Caddyfileblame
View source
e5b523e1{
e5b523e2 on_demand_tls {
e5b523e3 ask http://grove-api:4000/api/pages/ask
e5b523e4 }
e5b523e5}
e5b523e6
9ba59117thegild.app {
cb3a2928 tls /certs/thegild.app.crt /certs/thegild.app.key
cb3a2929
f840c8f10 reverse_proxy gild-web:3000
9ba591111
9ba591112 header {
9ba591113 X-Content-Type-Options nosniff
9ba591114 X-Frame-Options DENY
9ba591115 }
9ba591116}
9ba591117
bdb18c918collab.{$DOMAIN} {
0b4b58219 handle /socket.io/* {
0b4b58220 reverse_proxy grove-web:3334
0b4b58221 }
0b4b58222
0b4b58223 handle /api/auth/* {
0b4b58224 reverse_proxy hub-api:4000
0b4b58225 }
0b4b58226
0b4b58227 handle /api/repos {
0b4b58228 reverse_proxy grove-api:4000
0b4b58229 }
0b4b58230
0b4b58231 handle /api/repos/* {
0b4b58232 reverse_proxy grove-api:4000
0b4b58233 }
0b4b58234
0b4b58235 handle {
0b4b58236 reverse_proxy grove-web:3000
0b4b58237 }
bdb18c938
bdb18c939 header {
bdb18c940 X-Content-Type-Options nosniff
bdb18c941 X-Frame-Options DENY
bdb18c942 }
bdb18c943}
bdb18c944
da0f65145canopy.{$DOMAIN} {
da0f65146 handle /api/auth/* {
da0f65147 reverse_proxy hub-api:4000
da0f65148 }
da0f65149
1da987450 handle /api/canopy/* {
1da987451 reverse_proxy grove-api:4000
1da987452 }
1da987453
da0f65154 handle /api/repos {
da0f65155 reverse_proxy grove-api:4000
da0f65156 }
da0f65157
da0f65158 handle /api/repos/* {
da0f65159 reverse_proxy grove-api:4000
da0f65160 }
da0f65161
da0f65162 handle {
da0f65163 reverse_proxy grove-web:3000
da0f65164 }
da0f65165
da0f65166 header {
da0f65167 X-Content-Type-Options nosniff
da0f65168 X-Frame-Options DENY
da0f65169 }
da0f65170}
da0f65171
fe2e54472ring.{$DOMAIN} {
fe2e54473 handle /api/auth/* {
fe2e54474 reverse_proxy hub-api:4000
fe2e54475 }
fe2e54476
fe2e54477 handle /api/ring/* {
fe2e54478 reverse_proxy grove-api:4000
fe2e54479 }
fe2e54480
fe2e54481 handle /api/repos {
fe2e54482 reverse_proxy grove-api:4000
fe2e54483 }
fe2e54484
fe2e54485 handle /api/repos/* {
fe2e54486 reverse_proxy grove-api:4000
fe2e54487 }
fe2e54488
fe2e54489 handle {
fe2e54490 reverse_proxy grove-web:3000
fe2e54491 }
fe2e54492
fe2e54493 header {
fe2e54494 X-Content-Type-Options nosniff
fe2e54495 X-Frame-Options DENY
fe2e54496 }
fe2e54497}
fe2e54498
4bb999b99isl.{$DOMAIN} {
4bb999b100 handle /ws {
abf167c101 reverse_proxy 172.18.0.1:3011 {
abf167c102 header_down -X-Frame-Options
abf167c103 }
4bb999b104 }
4bb999b105
4bb999b106 handle {
abf167c107 reverse_proxy 172.18.0.1:3011 {
abf167c108 header_down -X-Frame-Options
abf167c109 }
4bb999b110 }
4bb999b111
4bb999b112 header {
4bb999b113 X-Content-Type-Options nosniff
7e5aa77114 Content-Security-Policy "frame-ancestors https://grove.host https://*.grove.host http://grove.test:*"
4bb999b115 }
4bb999b116}
4bb999b117
135dfe5118{$DOMAIN} {
5f0fbcf119 handle /v2/* {
5f0fbcf120 reverse_proxy registry:5000
5f0fbcf121 }
5f0fbcf122
8d0dc12123 handle /api/canopy/* {
8d0dc12124 reverse_proxy grove-api:4000
8d0dc12125 }
8d0dc12126
f0bb192127 handle /api/auth/* {
135dfe5128 reverse_proxy hub-api:4000
135dfe5129 }
135dfe5130
4dfd09b131 handle /api/instances {
4dfd09b132 reverse_proxy hub-api:4000
4dfd09b133 }
4dfd09b134
f0bb192135 handle /api/instances/* {
f0bb192136 reverse_proxy hub-api:4000
f0bb192137 }
f0bb192138
79efd41139 handle /api/orgs {
79efd41140 reverse_proxy hub-api:4000
79efd41141 }
79efd41142
79efd41143 handle /api/orgs/* {
79efd41144 reverse_proxy hub-api:4000
79efd41145 }
79efd41146
ffa10b4147 handle /api/repos {
ffa10b4148 reverse_proxy grove-api:4000
ffa10b4149 }
ffa10b4150
f0bb192151 handle /api/repos/* {
f0bb192152 reverse_proxy grove-api:4000
f0bb192153 }
f0bb192154
85f7497155 handle /api/pages/* {
85f7497156 reverse_proxy grove-api:4000
85f7497157 }
85f7497158
4ae9b20159 handle /downloads/* {
4ae9b20160 root * /srv
4ae9b20161 file_server
4ae9b20162 }
4ae9b20163
135dfe5164 handle /health {
135dfe5165 reverse_proxy hub-api:4000
135dfe5166 }
135dfe5167
135dfe5168 handle {
4a006da169 reverse_proxy grove-web:3000
135dfe5170 }
135dfe5171
135dfe5172 header {
135dfe5173 X-Content-Type-Options nosniff
135dfe5174 X-Frame-Options DENY
135dfe5175 }
135dfe5176}
e5b523e177
ff50d03178# Grove Pages — path-based default hosting at pages.grove.host/{owner}/{repo}
ff50d03179pages.{$DOMAIN} {
ff50d03180 root * /srv/pages/sites/_pages
ff50d03181 file_server browse
ff50d03182
ff50d03183 header {
ff50d03184 X-Content-Type-Options nosniff
ff50d03185 X-Frame-Options SAMEORIGIN
ff50d03186 }
ff50d03187}
ff50d03188
ff50d03189# Grove Pages — custom domains
e5b523e190:443 {
e5b523e191 tls {
e5b523e192 on_demand
e5b523e193 }
e5b523e194
e5b523e195 root * /srv/pages/sites/{host}
1688ad1196 file_server browse
e5b523e197
e5b523e198 header {
e5b523e199 X-Content-Type-Options nosniff
e5b523e200 X-Frame-Options SAMEORIGIN
e5b523e201 }
e5b523e202}