changelog shortlog graph tags branches files raw help

Mercurial > infra > home / changeset: caddy

changeset 79: c499610c1d89
parent 78: 55c2ee64e843
child 80: 0f673f872518
author: Richard Westhaver <ellis@rwest.io>
date: Sun, 28 Jul 2024 19:30:20 -0400
files: caddy.json
description: caddy
     1.1--- a/caddy.json	Sun Jul 28 19:04:41 2024 -0400
     1.2+++ b/caddy.json	Sun Jul 28 19:30:20 2024 -0400
     1.3@@ -4,1083 +4,25 @@
     1.4   },
     1.5   "apps": {
     1.6     "http": {
     1.7+      "http_port": 80,
     1.8+      "https_port": 443,
     1.9       "servers": {
    1.10-        "srv0": {
    1.11-          "listen": [
    1.12-            ":8080"
    1.13-          ],
    1.14-          "enable_full_duplex": true,
    1.15+        "web": {
    1.16+          "automatic_https": {
    1.17+            "disable": true
    1.18+          },
    1.19+          "listen": [ ":80" ],
    1.20           "routes": [
    1.21             {
    1.22-              "match": [
    1.23-                {
    1.24-                  "host": [
    1.25-                    "packy.compiler.company"
    1.26-                  ]
    1.27-                }
    1.28-              ],
    1.29-              "handle": [
    1.30-                {
    1.31-                  "handler": "subroute",
    1.32-                  "routes": [
    1.33-                    {
    1.34-                      "handle": [
    1.35-                        {
    1.36-                          "handler": "vars",
    1.37-                          "root": "/home/web/www/packy.compiler.company"
    1.38-                        }
    1.39-                      ]
    1.40-                    },
    1.41-                    {
    1.42-                      "group": "group23",
    1.43-                      "handle": [
    1.44-                        {
    1.45-                          "handler": "subroute",
    1.46-                          "routes": [
    1.47-                            {
    1.48-                              "handle": [
    1.49-                                {
    1.50-                                  "handler": "headers",
    1.51-                                  "response": {
    1.52-                                    "deferred": true,
    1.53-                                    "set": {
    1.54-                                      "Access-Control-Allow-Headers": [
    1.55-                                        "*"
    1.56-                                      ],
    1.57-                                      "Access-Control-Allow-Methods": [
    1.58-                                        "GET, POST, PUT, PATCH, DELETE, OPTIONS"
    1.59-                                      ],
    1.60-                                      "Access-Control-Allow-Origin": [
    1.61-                                        "https://packy.compiler.company"
    1.62-                                      ],
    1.63-                                      "Access-Control-Max-Age": [
    1.64-                                        "3600"
    1.65-                                      ]
    1.66-                                    }
    1.67-                                  }
    1.68-                                },
    1.69-                                {
    1.70-                                  "handler": "static_response",
    1.71-                                  "status_code": 204
    1.72-                                }
    1.73-                              ]
    1.74-                            }
    1.75-                          ]
    1.76-                        }
    1.77-                      ],
    1.78-                      "match": [
    1.79-                        {
    1.80-                          "header": {
    1.81-                            "Origin": [
    1.82-                              "https://packy.compiler.company"
    1.83-                            ]
    1.84-                          },
    1.85-                          "method": [
    1.86-                            "OPTIONS"
    1.87-                          ]
    1.88-                        }
    1.89-                      ]
    1.90-                    },
    1.91-                    {
    1.92-                      "group": "group23",
    1.93-                      "handle": [
    1.94-                        {
    1.95-                          "handler": "subroute",
    1.96-                          "routes": [
    1.97-                            {
    1.98-                              "handle": [
    1.99-                                {
   1.100-                                  "handler": "headers",
   1.101-                                  "response": {
   1.102-                                    "deferred": true,
   1.103-                                    "set": {
   1.104-                                      "Access-Control-Allow-Origin": [
   1.105-                                        "{http.request.header.origin}"
   1.106-                                      ],
   1.107-                                      "Access-Control-Expose-Headers": [
   1.108-                                        "*"
   1.109-                                      ]
   1.110-                                    }
   1.111-                                  }
   1.112-                                }
   1.113-                              ]
   1.114-                            }
   1.115-                          ]
   1.116-                        }
   1.117-                      ],
   1.118-                      "match": [
   1.119-                        {
   1.120-                          "header": {
   1.121-                            "Origin": [
   1.122-                              "https://packy.compiler.company"
   1.123-                            ]
   1.124-                          },
   1.125-                          "not": [
   1.126-                            {
   1.127-                              "method": [
   1.128-                                "OPTIONS"
   1.129-                              ]
   1.130-                            }
   1.131-                          ]
   1.132-                        }
   1.133-                      ]
   1.134-                    },
   1.135-                    {
   1.136-                      "handle": [
   1.137-                        {
   1.138-                          "handler": "subroute",
   1.139-                          "routes": [
   1.140-                            {
   1.141-                              "handle": [
   1.142-                                {
   1.143-                                  "browse": {},
   1.144-                                  "handler": "file_server",
   1.145-                                  "hide": [
   1.146-                                    "/etc/caddy/Caddyfile"
   1.147-                                  ]
   1.148-                                }
   1.149-                              ],
   1.150-                              "match": [
   1.151-                                {
   1.152-                                  "method": [
   1.153-                                    "GET"
   1.154-                                  ]
   1.155-                                }
   1.156-                              ]
   1.157-                            },
   1.158-                            {
   1.159-                              "handle": [
   1.160-                                {
   1.161-                                  "handler": "webdav"
   1.162-                                }
   1.163-                              ]
   1.164-                            }
   1.165-                          ]
   1.166-                        }
   1.167-                      ]
   1.168-                    }
   1.169-                  ]
   1.170-                }
   1.171-              ],
   1.172-              "terminal": true
   1.173-            },
   1.174-            {
   1.175-              "match": [
   1.176-                {
   1.177-                  "host": [
   1.178-                    "demo.compiler.company"
   1.179-                  ]
   1.180-                }
   1.181-              ],
   1.182-              "handle": [
   1.183-                {
   1.184-                  "handler": "subroute",
   1.185-                  "routes": [
   1.186-                    {
   1.187-                      "handle": [
   1.188-                        {
   1.189-                          "handler": "vars",
   1.190-                          "root": "/home/web/www/demo.compiler.company"
   1.191-                        }
   1.192-                      ]
   1.193-                    },
   1.194-                    {
   1.195-                      "group": "group25",
   1.196-                      "handle": [
   1.197-                        {
   1.198-                          "handler": "subroute",
   1.199-                          "routes": [
   1.200-                            {
   1.201-                              "handle": [
   1.202-                                {
   1.203-                                  "handler": "headers",
   1.204-                                  "response": {
   1.205-                                    "deferred": true,
   1.206-                                    "set": {
   1.207-                                      "Access-Control-Allow-Headers": [
   1.208-                                        "*"
   1.209-                                      ],
   1.210-                                      "Access-Control-Allow-Methods": [
   1.211-                                        "GET, POST, PUT, PATCH, DELETE, OPTIONS"
   1.212-                                      ],
   1.213-                                      "Access-Control-Allow-Origin": [
   1.214-                                        "https://cdn.compiler.company"
   1.215-                                      ],
   1.216-                                      "Access-Control-Max-Age": [
   1.217-                                        "3600"
   1.218-                                      ]
   1.219-                                    }
   1.220-                                  }
   1.221-                                },
   1.222-                                {
   1.223-                                  "handler": "static_response",
   1.224-                                  "status_code": 204
   1.225-                                }
   1.226-                              ]
   1.227-                            }
   1.228-                          ]
   1.229-                        }
   1.230-                      ],
   1.231-                      "match": [
   1.232-                        {
   1.233-                          "header": {
   1.234-                            "Origin": [
   1.235-                              "https://cdn.compiler.company"
   1.236-                            ]
   1.237-                          },
   1.238-                          "method": [
   1.239-                            "OPTIONS"
   1.240-                          ]
   1.241-                        }
   1.242-                      ]
   1.243-                    },
   1.244-                    {
   1.245-                      "group": "group25",
   1.246-                      "handle": [
   1.247-                        {
   1.248-                          "handler": "subroute",
   1.249-                          "routes": [
   1.250-                            {
   1.251-                              "handle": [
   1.252-                                {
   1.253-                                  "handler": "headers",
   1.254-                                  "response": {
   1.255-                                    "deferred": true,
   1.256-                                    "set": {
   1.257-                                      "Access-Control-Allow-Origin": [
   1.258-                                        "{http.request.header.origin}"
   1.259-                                      ],
   1.260-                                      "Access-Control-Expose-Headers": [
   1.261-                                        "*"
   1.262-                                      ]
   1.263-                                    }
   1.264-                                  }
   1.265-                                }
   1.266-                              ]
   1.267-                            }
   1.268-                          ]
   1.269-                        }
   1.270-                      ],
   1.271-                      "match": [
   1.272-                        {
   1.273-                          "header": {
   1.274-                            "Origin": [
   1.275-                              "https://cdn.compiler.company"
   1.276-                            ]
   1.277-                          },
   1.278-                          "not": [
   1.279-                            {
   1.280-                              "method": [
   1.281-                                "OPTIONS"
   1.282-                              ]
   1.283-                            }
   1.284-                          ]
   1.285-                        }
   1.286-                      ]
   1.287-                    }
   1.288-                  ]
   1.289-                }
   1.290-              ],
   1.291-              "terminal": true
   1.292-            },
   1.293-            {
   1.294-              "match": [
   1.295-                {
   1.296-                  "host": [
   1.297-                    "cdn.compiler.company"
   1.298-                  ]
   1.299-                }
   1.300-              ],
   1.301-              "handle": [
   1.302-                {
   1.303-                  "handler": "subroute",
   1.304-                  "routes": [
   1.305-                    {
   1.306-                      "handle": [
   1.307-                        {
   1.308-                          "handler": "vars",
   1.309-                          "root": "/home/web/www/cdn.compiler.company"
   1.310-                        }
   1.311-                      ]
   1.312-                    },
   1.313-                    {
   1.314-                      "group": "group27",
   1.315-                      "handle": [
   1.316-                        {
   1.317-                          "handler": "subroute",
   1.318-                          "routes": [
   1.319-                            {
   1.320-                              "handle": [
   1.321-                                {
   1.322-                                  "handler": "headers",
   1.323-                                  "response": {
   1.324-                                    "deferred": true,
   1.325-                                    "set": {
   1.326-                                      "Access-Control-Allow-Headers": [
   1.327-                                        "*"
   1.328-                                      ],
   1.329-                                      "Access-Control-Allow-Methods": [
   1.330-                                        "GET, POST, PUT, PATCH, DELETE, OPTIONS"
   1.331-                                      ],
   1.332-                                      "Access-Control-Allow-Origin": [
   1.333-                                        "*"
   1.334-                                      ],
   1.335-                                      "Access-Control-Max-Age": [
   1.336-                                        "3600"
   1.337-                                      ]
   1.338-                                    }
   1.339-                                  }
   1.340-                                },
   1.341-                                {
   1.342-                                  "handler": "static_response",
   1.343-                                  "status_code": 204
   1.344-                                }
   1.345-                              ]
   1.346-                            }
   1.347-                          ]
   1.348-                        }
   1.349-                      ],
   1.350-                      "match": [
   1.351-                        {
   1.352-                          "header": {
   1.353-                            "Origin": [
   1.354-                              "*"
   1.355-                            ]
   1.356-                          },
   1.357-                          "method": [
   1.358-                            "OPTIONS"
   1.359-                          ]
   1.360-                        }
   1.361-                      ]
   1.362-                    },
   1.363-                    {
   1.364-                      "group": "group27",
   1.365-                      "handle": [
   1.366-                        {
   1.367-                          "handler": "subroute",
   1.368-                          "routes": [
   1.369-                            {
   1.370-                              "handle": [
   1.371-                                {
   1.372-                                  "handler": "headers",
   1.373-                                  "response": {
   1.374-                                    "deferred": true,
   1.375-                                    "set": {
   1.376-                                      "Access-Control-Allow-Origin": [
   1.377-                                        "{http.request.header.origin}"
   1.378-                                      ],
   1.379-                                      "Access-Control-Expose-Headers": [
   1.380-                                        "*"
   1.381-                                      ]
   1.382-                                    }
   1.383-                                  }
   1.384-                                }
   1.385-                              ]
   1.386-                            }
   1.387-                          ]
   1.388-                        }
   1.389-                      ],
   1.390-                      "match": [
   1.391-                        {
   1.392-                          "header": {
   1.393-                            "Origin": [
   1.394-                              "*"
   1.395-                            ]
   1.396-                          },
   1.397-                          "not": [
   1.398-                            {
   1.399-                              "method": [
   1.400-                                "OPTIONS"
   1.401-                              ]
   1.402-                            }
   1.403-                          ]
   1.404-                        }
   1.405-                      ]
   1.406-                    },
   1.407-                    {
   1.408-                      "handle": [
   1.409-                        {
   1.410-                          "handler": "subroute",
   1.411-                          "routes": [
   1.412-                            {
   1.413-                              "handle": [
   1.414-                                {
   1.415-                                  "browse": {},
   1.416-                                  "handler": "file_server",
   1.417-                                  "hide": [
   1.418-                                    "/etc/caddy/Caddyfile"
   1.419-                                  ]
   1.420-                                }
   1.421-                              ],
   1.422-                              "match": [
   1.423-                                {
   1.424-                                  "method": [
   1.425-                                    "GET"
   1.426-                                  ]
   1.427-                                }
   1.428-                              ]
   1.429-                            },
   1.430-                            {
   1.431-                              "handle": [
   1.432-                                {
   1.433-                                  "handler": "webdav"
   1.434-                                }
   1.435-                              ]
   1.436-                            }
   1.437-                          ]
   1.438-                        }
   1.439-                      ]
   1.440-                    }
   1.441-                  ]
   1.442-                }
   1.443-              ],
   1.444-              "terminal": true
   1.445-            },
   1.446-            {
   1.447-              "match": [
   1.448-                {
   1.449-                  "host": [
   1.450-                    "the.compiler.company"
   1.451-                  ]
   1.452-                }
   1.453-              ],
   1.454               "handle": [
   1.455                 {
   1.456-                  "handler": "subroute",
   1.457-                  "routes": [
   1.458-                    {
   1.459-                      "handle": [
   1.460-                        {
   1.461-                          "handler": "vars",
   1.462-                          "root": "/home/web/www/the.compiler.company"
   1.463-                        }
   1.464-                      ]
   1.465-                    },
   1.466-                    {
   1.467-                      "group": "group29",
   1.468-                      "handle": [
   1.469-                        {
   1.470-                          "handler": "subroute",
   1.471-                          "routes": [
   1.472-                            {
   1.473-                              "handle": [
   1.474-                                {
   1.475-                                  "handler": "headers",
   1.476-                                  "response": {
   1.477-                                    "deferred": true,
   1.478-                                    "set": {
   1.479-                                      "Access-Control-Allow-Headers": [
   1.480-                                        "*"
   1.481-                                      ],
   1.482-                                      "Access-Control-Allow-Methods": [
   1.483-                                        "GET, POST, PUT, PATCH, DELETE, OPTIONS"
   1.484-                                      ],
   1.485-                                      "Access-Control-Allow-Origin": [
   1.486-                                        "https://cdn.compiler.company"
   1.487-                                      ],
   1.488-                                      "Access-Control-Max-Age": [
   1.489-                                        "3600"
   1.490-                                      ]
   1.491-                                    }
   1.492-                                  }
   1.493-                                },
   1.494-                                {
   1.495-                                  "handler": "static_response",
   1.496-                                  "status_code": 204
   1.497-                                }
   1.498-                              ]
   1.499-                            }
   1.500-                          ]
   1.501-                        }
   1.502-                      ],
   1.503-                      "match": [
   1.504-                        {
   1.505-                          "header": {
   1.506-                            "Origin": [
   1.507-                              "https://cdn.compiler.company"
   1.508-                            ]
   1.509-                          },
   1.510-                          "method": [
   1.511-                            "OPTIONS"
   1.512-                          ]
   1.513-                        }
   1.514-                      ]
   1.515-                    },
   1.516-                    {
   1.517-                      "group": "group29",
   1.518-                      "handle": [
   1.519-                        {
   1.520-                          "handler": "subroute",
   1.521-                          "routes": [
   1.522-                            {
   1.523-                              "handle": [
   1.524-                                {
   1.525-                                  "handler": "headers",
   1.526-                                  "response": {
   1.527-                                    "deferred": true,
   1.528-                                    "set": {
   1.529-                                      "Access-Control-Allow-Origin": [
   1.530-                                        "{http.request.header.origin}"
   1.531-                                      ],
   1.532-                                      "Access-Control-Expose-Headers": [
   1.533-                                        "*"
   1.534-                                      ]
   1.535-                                    }
   1.536-                                  }
   1.537-                                }
   1.538-                              ]
   1.539-                            }
   1.540-                          ]
   1.541-                        }
   1.542-                      ],
   1.543-                      "match": [
   1.544-                        {
   1.545-                          "header": {
   1.546-                            "Origin": [
   1.547-                              "https://cdn.compiler.company"
   1.548-                            ]
   1.549-                          },
   1.550-                          "not": [
   1.551-                            {
   1.552-                              "method": [
   1.553-                                "OPTIONS"
   1.554-                              ]
   1.555-                            }
   1.556-                          ]
   1.557-                        }
   1.558-                      ]
   1.559-                    },
   1.560-                    {
   1.561-                      "group": "group29",
   1.562-                      "handle": [
   1.563-                        {
   1.564-                          "handler": "subroute",
   1.565-                          "routes": [
   1.566-                            {
   1.567-                              "handle": [
   1.568-                                {
   1.569-                                  "handler": "rewrite",
   1.570-                                  "uri": "{http.matchers.file.relative}"
   1.571-                                }
   1.572-                              ],
   1.573-                              "match": [
   1.574-                                {
   1.575-                                  "file": {
   1.576-                                    "try_files": [
   1.577-                                      "{http.request.uri.path}{http.request.uri.path}.html",
   1.578-                                      "{http.request.uri.path}/"
   1.579-                                    ]
   1.580-                                  }
   1.581-                                }
   1.582-                              ]
   1.583-                            },
   1.584-                            {
   1.585-                              "handle": [
   1.586-                                {
   1.587-                                  "handler": "file_server",
   1.588-                                  "hide": [
   1.589-                                    "/etc/caddy/Caddyfile"
   1.590-                                  ]
   1.591-                                }
   1.592-                              ]
   1.593-                            }
   1.594-                          ]
   1.595-                        }
   1.596-                      ]
   1.597-                    }
   1.598-                  ]
   1.599-                }
   1.600-              ],
   1.601-              "terminal": true
   1.602-            },
   1.603-            {
   1.604-              "match": [
   1.605-                {
   1.606-                  "host": [
   1.607-                    "hg.compiler.company"
   1.608-                  ]
   1.609+                  "browse": {},
   1.610+                  "handler": "file_server",
   1.611+                  "root": "/home/web/www/"
   1.612                 }
   1.613-              ],
   1.614-              "handle": [
   1.615-                {
   1.616-                  "handler": "subroute",
   1.617-                  "routes": [
   1.618-                    {
   1.619-                      "group": "group31",
   1.620-                      "handle": [
   1.621-                        {
   1.622-                          "handler": "subroute",
   1.623-                          "routes": [
   1.624-                            {
   1.625-                              "handle": [
   1.626-                                {
   1.627-                                  "handler": "headers",
   1.628-                                  "response": {
   1.629-                                    "deferred": true,
   1.630-                                    "set": {
   1.631-                                      "Access-Control-Allow-Headers": [
   1.632-                                        "*"
   1.633-                                      ],
   1.634-                                      "Access-Control-Allow-Methods": [
   1.635-                                        "GET, POST, PUT, PATCH, DELETE, OPTIONS"
   1.636-                                      ],
   1.637-                                      "Access-Control-Allow-Origin": [
   1.638-                                        "https://packy.compiler.company"
   1.639-                                      ],
   1.640-                                      "Access-Control-Max-Age": [
   1.641-                                        "3600"
   1.642-                                      ]
   1.643-                                    }
   1.644-                                  }
   1.645-                                },
   1.646-                                {
   1.647-                                  "handler": "static_response",
   1.648-                                  "status_code": 204
   1.649-                                }
   1.650-                              ]
   1.651-                            }
   1.652-                          ]
   1.653-                        }
   1.654-                      ],
   1.655-                      "match": [
   1.656-                        {
   1.657-                          "header": {
   1.658-                            "Origin": [
   1.659-                              "https://packy.compiler.company"
   1.660-                            ]
   1.661-                          },
   1.662-                          "method": [
   1.663-                            "OPTIONS"
   1.664-                          ]
   1.665-                        }
   1.666-                      ]
   1.667-                    },
   1.668-                    {
   1.669-                      "group": "group31",
   1.670-                      "handle": [
   1.671-                        {
   1.672-                          "handler": "subroute",
   1.673-                          "routes": [
   1.674-                            {
   1.675-                              "handle": [
   1.676-                                {
   1.677-                                  "handler": "headers",
   1.678-                                  "response": {
   1.679-                                    "deferred": true,
   1.680-                                    "set": {
   1.681-                                      "Access-Control-Allow-Origin": [
   1.682-                                        "{http.request.header.origin}"
   1.683-                                      ],
   1.684-                                      "Access-Control-Expose-Headers": [
   1.685-                                        "*"
   1.686-                                      ]
   1.687-                                    }
   1.688-                                  }
   1.689-                                }
   1.690-                              ]
   1.691-                            }
   1.692-                          ]
   1.693-                        }
   1.694-                      ],
   1.695-                      "match": [
   1.696-                        {
   1.697-                          "header": {
   1.698-                            "Origin": [
   1.699-                              "https://packy.compiler.company"
   1.700-                            ]
   1.701-                          },
   1.702-                          "not": [
   1.703-                            {
   1.704-                              "method": [
   1.705-                                "OPTIONS"
   1.706-                              ]
   1.707-                            }
   1.708-                          ]
   1.709-                        }
   1.710-                      ]
   1.711-                    },
   1.712-                    {
   1.713-                      "group": "group31",
   1.714-                      "handle": [
   1.715-                        {
   1.716-                          "handler": "subroute",
   1.717-                          "routes": [
   1.718-                            {
   1.719-                              "handle": [
   1.720-                                {
   1.721-                                  "handler": "headers",
   1.722-                                  "response": {
   1.723-                                    "deferred": true,
   1.724-                                    "set": {
   1.725-                                      "Access-Control-Allow-Headers": [
   1.726-                                        "*"
   1.727-                                      ],
   1.728-                                      "Access-Control-Allow-Methods": [
   1.729-                                        "GET, POST, PUT, PATCH, DELETE, OPTIONS"
   1.730-                                      ],
   1.731-                                      "Access-Control-Allow-Origin": [
   1.732-                                        "https://cdn.compiler.company"
   1.733-                                      ],
   1.734-                                      "Access-Control-Max-Age": [
   1.735-                                        "3600"
   1.736-                                      ]
   1.737-                                    }
   1.738-                                  }
   1.739-                                },
   1.740-                                {
   1.741-                                  "handler": "static_response",
   1.742-                                  "status_code": 204
   1.743-                                }
   1.744-                              ]
   1.745-                            }
   1.746-                          ]
   1.747-                        }
   1.748-                      ],
   1.749-                      "match": [
   1.750-                        {
   1.751-                          "header": {
   1.752-                            "Origin": [
   1.753-                              "https://cdn.compiler.company"
   1.754-                            ]
   1.755-                          },
   1.756-                          "method": [
   1.757-                            "OPTIONS"
   1.758-                          ]
   1.759-                        }
   1.760-                      ]
   1.761-                    },
   1.762-                    {
   1.763-                      "group": "group31",
   1.764-                      "handle": [
   1.765-                        {
   1.766-                          "handler": "subroute",
   1.767-                          "routes": [
   1.768-                            {
   1.769-                              "handle": [
   1.770-                                {
   1.771-                                  "handler": "headers",
   1.772-                                  "response": {
   1.773-                                    "deferred": true,
   1.774-                                    "set": {
   1.775-                                      "Access-Control-Allow-Origin": [
   1.776-                                        "{http.request.header.origin}"
   1.777-                                      ],
   1.778-                                      "Access-Control-Expose-Headers": [
   1.779-                                        "*"
   1.780-                                      ]
   1.781-                                    }
   1.782-                                  }
   1.783-                                }
   1.784-                              ]
   1.785-                            }
   1.786-                          ]
   1.787-                        }
   1.788-                      ],
   1.789-                      "match": [
   1.790-                        {
   1.791-                          "header": {
   1.792-                            "Origin": [
   1.793-                              "https://cdn.compiler.company"
   1.794-                            ]
   1.795-                          },
   1.796-                          "not": [
   1.797-                            {
   1.798-                              "method": [
   1.799-                                "OPTIONS"
   1.800-                              ]
   1.801-                            }
   1.802-                          ]
   1.803-                        }
   1.804-                      ]
   1.805-                    },
   1.806-                    {
   1.807-                      "group": "group31",
   1.808-                      "handle": [
   1.809-                        {
   1.810-                          "handler": "subroute",
   1.811-                          "routes": [
   1.812-                            {
   1.813-                              "handle": [
   1.814-                                {
   1.815-                                  "handler": "headers",
   1.816-                                  "response": {
   1.817-                                    "deferred": true,
   1.818-                                    "set": {
   1.819-                                      "Access-Control-Allow-Headers": [
   1.820-                                        "*"
   1.821-                                      ],
   1.822-                                      "Access-Control-Allow-Methods": [
   1.823-                                        "GET, POST, PUT, PATCH, DELETE, OPTIONS"
   1.824-                                      ],
   1.825-                                      "Access-Control-Allow-Origin": [
   1.826-                                        "https://vc.compiler.company"
   1.827-                                      ],
   1.828-                                      "Access-Control-Max-Age": [
   1.829-                                        "3600"
   1.830-                                      ]
   1.831-                                    }
   1.832-                                  }
   1.833-                                },
   1.834-                                {
   1.835-                                  "handler": "static_response",
   1.836-                                  "status_code": 204
   1.837-                                }
   1.838-                              ]
   1.839-                            }
   1.840-                          ]
   1.841-                        }
   1.842-                      ],
   1.843-                      "match": [
   1.844-                        {
   1.845-                          "header": {
   1.846-                            "Origin": [
   1.847-                              "https://vc.compiler.company"
   1.848-                            ]
   1.849-                          },
   1.850-                          "method": [
   1.851-                            "OPTIONS"
   1.852-                          ]
   1.853-                        }
   1.854-                      ]
   1.855-                    },
   1.856-                    {
   1.857-                      "group": "group31",
   1.858-                      "handle": [
   1.859-                        {
   1.860-                          "handler": "subroute",
   1.861-                          "routes": [
   1.862-                            {
   1.863-                              "handle": [
   1.864-                                {
   1.865-                                  "handler": "headers",
   1.866-                                  "response": {
   1.867-                                    "deferred": true,
   1.868-                                    "set": {
   1.869-                                      "Access-Control-Allow-Origin": [
   1.870-                                        "{http.request.header.origin}"
   1.871-                                      ],
   1.872-                                      "Access-Control-Expose-Headers": [
   1.873-                                        "*"
   1.874-                                      ]
   1.875-                                    }
   1.876-                                  }
   1.877-                                }
   1.878-                              ]
   1.879-                            }
   1.880-                          ]
   1.881-                        }
   1.882-                      ],
   1.883-                      "match": [
   1.884-                        {
   1.885-                          "header": {
   1.886-                            "Origin": [
   1.887-                              "https://vc.compiler.company"
   1.888-                            ]
   1.889-                          },
   1.890-                          "not": [
   1.891-                            {
   1.892-                              "method": [
   1.893-                                "OPTIONS"
   1.894-                              ]
   1.895-                            }
   1.896-                          ]
   1.897-                        }
   1.898-                      ]
   1.899-                    },
   1.900-                    {
   1.901-                      "handle": [
   1.902-                        {
   1.903-                          "handler": "reverse_proxy",
   1.904-                          "upstreams": [
   1.905-                            {
   1.906-                              "dial": "rurik:8888"
   1.907-                            }
   1.908-                          ]
   1.909-                        }
   1.910-                      ]
   1.911-                    }
   1.912-                  ]
   1.913-                }
   1.914-              ],
   1.915-              "terminal": true
   1.916-            },
   1.917-            {
   1.918-              "match": [
   1.919-                {
   1.920-                  "host": [
   1.921-                    "compiler.company"
   1.922-                  ]
   1.923-                }
   1.924-              ],
   1.925-              "handle": [
   1.926-                {
   1.927-                  "handler": "subroute",
   1.928-                  "routes": [
   1.929-                    {
   1.930-                      "handle": [
   1.931-                        {
   1.932-                          "handler": "vars",
   1.933-                          "root": "/home/web/www/compiler.company"
   1.934-                        }
   1.935-                      ]
   1.936-                    },
   1.937-                    {
   1.938-                      "group": "group33",
   1.939-                      "handle": [
   1.940-                        {
   1.941-                          "handler": "subroute",
   1.942-                          "routes": [
   1.943-                            {
   1.944-                              "handle": [
   1.945-                                {
   1.946-                                  "handler": "headers",
   1.947-                                  "response": {
   1.948-                                    "deferred": true,
   1.949-                                    "set": {
   1.950-                                      "Access-Control-Allow-Headers": [
   1.951-                                        "*"
   1.952-                                      ],
   1.953-                                      "Access-Control-Allow-Methods": [
   1.954-                                        "GET, POST, PUT, PATCH, DELETE, OPTIONS"
   1.955-                                      ],
   1.956-                                      "Access-Control-Allow-Origin": [
   1.957-                                        "https://cdn.compiler.company"
   1.958-                                      ],
   1.959-                                      "Access-Control-Max-Age": [
   1.960-                                        "3600"
   1.961-                                      ]
   1.962-                                    }
   1.963-                                  }
   1.964-                                },
   1.965-                                {
   1.966-                                  "handler": "static_response",
   1.967-                                  "status_code": 204
   1.968-                                }
   1.969-                              ]
   1.970-                            }
   1.971-                          ]
   1.972-                        }
   1.973-                      ],
   1.974-                      "match": [
   1.975-                        {
   1.976-                          "header": {
   1.977-                            "Origin": [
   1.978-                              "https://cdn.compiler.company"
   1.979-                            ]
   1.980-                          },
   1.981-                          "method": [
   1.982-                            "OPTIONS"
   1.983-                          ]
   1.984-                        }
   1.985-                      ]
   1.986-                    },
   1.987-                    {
   1.988-                      "group": "group33",
   1.989-                      "handle": [
   1.990-                        {
   1.991-                          "handler": "subroute",
   1.992-                          "routes": [
   1.993-                            {
   1.994-                              "handle": [
   1.995-                                {
   1.996-                                  "handler": "headers",
   1.997-                                  "response": {
   1.998-                                    "deferred": true,
   1.999-                                    "set": {
  1.1000-                                      "Access-Control-Allow-Origin": [
  1.1001-                                        "{http.request.header.origin}"
  1.1002-                                      ],
  1.1003-                                      "Access-Control-Expose-Headers": [
  1.1004-                                        "*"
  1.1005-                                      ]
  1.1006-                                    }
  1.1007-                                  }
  1.1008-                                }
  1.1009-                              ]
  1.1010-                            }
  1.1011-                          ]
  1.1012-                        }
  1.1013-                      ],
  1.1014-                      "match": [
  1.1015-                        {
  1.1016-                          "header": {
  1.1017-                            "Origin": [
  1.1018-                              "https://cdn.compiler.company"
  1.1019-                            ]
  1.1020-                          },
  1.1021-                          "not": [
  1.1022-                            {
  1.1023-                              "method": [
  1.1024-                                "OPTIONS"
  1.1025-                              ]
  1.1026-                            }
  1.1027-                          ]
  1.1028-                        }
  1.1029-                      ]
  1.1030-                    },
  1.1031-                    {
  1.1032-                      "group": "group33",
  1.1033-                      "handle": [
  1.1034-                        {
  1.1035-                          "handler": "subroute",
  1.1036-                          "routes": [
  1.1037-                            {
  1.1038-                              "handle": [
  1.1039-                                {
  1.1040-                                  "handler": "rewrite",
  1.1041-                                  "uri": "{http.matchers.file.relative}"
  1.1042-                                }
  1.1043-                              ],
  1.1044-                              "match": [
  1.1045-                                {
  1.1046-                                  "file": {
  1.1047-                                    "try_files": [
  1.1048-                                      "{http.request.uri.path}",
  1.1049-                                      "{http.request.uri.path.html}",
  1.1050-                                      "{http.request.uri.path}/"
  1.1051-                                    ]
  1.1052-                                  }
  1.1053-                                }
  1.1054-                              ]
  1.1055-                            },
  1.1056-                            {
  1.1057-                              "handle": [
  1.1058-                                {
  1.1059-                                  "handler": "file_server",
  1.1060-                                  "hide": [
  1.1061-                                    "/etc/caddy/Caddyfile"
  1.1062-                                  ]
  1.1063-                                }
  1.1064-                              ]
  1.1065-                            }
  1.1066-                          ]
  1.1067-                        }
  1.1068-                      ]
  1.1069-                    }
  1.1070-                  ]
  1.1071-                }
  1.1072-              ],
  1.1073-              "terminal": true
  1.1074+              ]
  1.1075             }
  1.1076-          ],
  1.1077-          "logs": {
  1.1078-            "logger_names": {
  1.1079-              "cdn.compiler.company": [
  1.1080-                "log0"
  1.1081-              ],
  1.1082-              "hg.compiler.company": [
  1.1083-                "log3"
  1.1084-              ],
  1.1085-              "packy.compiler.company": [
  1.1086-                "log2"
  1.1087-              ]
  1.1088-            },
  1.1089-            "skip_hosts": [
  1.1090-              "compiler.company",
  1.1091-              "demo.compiler.company",
  1.1092-              "the.compiler.company"
  1.1093-            ]
  1.1094-          }
  1.1095+          ]
  1.1096         }
  1.1097       }
  1.1098     }