[{"data":1,"prerenderedAt":642},["ShallowReactive",2],{"navigation":3,"page-\u002Freference\u002Fhostnames-and-dns":213,"surround-\u002Freference\u002Fhostnames-and-dns":637},[4,17,48,79,95,118,133,144,155,167,186],{"title":5,"path":6,"stem":7,"children":8,"icon":16,"exact":11},"Getting started","\u002Fgetting-started","1.getting-started\u002F1.index",[9,12],{"title":10,"path":6,"stem":7,"exact":11,"children":-1},"Introduction",true,{"title":13,"path":14,"stem":15,"exact":11,"children":-1},"Quickstart","\u002Fgetting-started\u002Fquickstart","1.getting-started\u002F2.quickstart","i-lucide-rocket",{"title":18,"path":19,"stem":20,"children":21,"icon":47,"exact":11},"Reference","\u002Freference","10.reference\u002F1.index",[22,23,27,31,35,39,43],{"title":18,"path":19,"stem":20,"exact":11,"children":-1},{"title":24,"path":25,"stem":26,"exact":11,"children":-1},"Variables","\u002Freference\u002Fvariables","10.reference\u002F2.variables",{"title":28,"path":29,"stem":30,"exact":11,"children":-1},"Hostnames and DNS","\u002Freference\u002Fhostnames-and-dns","10.reference\u002F3.hostnames-and-dns",{"title":32,"path":33,"stem":34,"exact":11,"children":-1},"Statuses","\u002Freference\u002Fstatuses","10.reference\u002F4.statuses",{"title":36,"path":37,"stem":38,"exact":11,"children":-1},"Limits","\u002Freference\u002Flimits","10.reference\u002F5.limits",{"title":40,"path":41,"stem":42,"exact":11,"children":-1},"Sizes","\u002Freference\u002Fsizes","10.reference\u002F6.sizes",{"title":44,"path":45,"stem":46,"exact":11,"children":-1},"The GitHub App","\u002Freference\u002Fgithub-app","10.reference\u002F7.github-app","i-lucide-book-open",{"title":49,"path":50,"stem":51,"children":52,"icon":78,"exact":11},"Troubleshooting","\u002Ftroubleshooting","11.troubleshooting\u002F1.index",[53,54,58,62,66,70,74],{"title":49,"path":50,"stem":51,"exact":11,"children":-1},{"title":55,"path":56,"stem":57,"exact":11,"children":-1},"Build failures","\u002Ftroubleshooting\u002Fbuild-failures","11.troubleshooting\u002F2.build-failures",{"title":59,"path":60,"stem":61,"exact":11,"children":-1},"Start and health failures","\u002Ftroubleshooting\u002Fstart-and-health-failures","11.troubleshooting\u002F3.start-and-health-failures",{"title":63,"path":64,"stem":65,"exact":11,"children":-1},"Reference failures","\u002Ftroubleshooting\u002Freference-failures","11.troubleshooting\u002F4.reference-failures",{"title":67,"path":68,"stem":69,"exact":11,"children":-1},"Failures that are Kuppit's","\u002Ftroubleshooting\u002Ffailures-that-are-kuppits","11.troubleshooting\u002F5.failures-that-are-kuppits",{"title":71,"path":72,"stem":73,"exact":11,"children":-1},"Domain issues","\u002Ftroubleshooting\u002Fdomain-issues","11.troubleshooting\u002F6.domain-issues",{"title":75,"path":76,"stem":77,"exact":11,"children":-1},"No preview for a pull request","\u002Ftroubleshooting\u002Fno-preview-for-a-pull-request","11.troubleshooting\u002F7.no-preview-for-a-pull-request","i-lucide-life-buoy",{"title":80,"path":81,"stem":82,"children":83,"icon":94,"exact":11},"Concepts","\u002Fconcepts","2.concepts\u002F1.index",[84,86,90],{"title":85,"path":81,"stem":82,"exact":11,"children":-1},"The Kuppit model",{"title":87,"path":88,"stem":89,"exact":11,"children":-1},"The application graph","\u002Fconcepts\u002Fthe-application-graph","2.concepts\u002F2.the-application-graph",{"title":91,"path":92,"stem":93,"exact":11,"children":-1},"How a service runs","\u002Fconcepts\u002Fhow-a-service-runs","2.concepts\u002F3.how-a-service-runs","i-lucide-shapes",{"title":96,"path":97,"stem":98,"children":99,"icon":117,"exact":11},"Deployments","\u002Fdeployments","3.deployments\u002F1.index",[100,101,105,109,113],{"title":96,"path":97,"stem":98,"exact":11,"children":-1},{"title":102,"path":103,"stem":104,"exact":11,"children":-1},"Builds","\u002Fdeployments\u002Fbuilds","3.deployments\u002F2.builds",{"title":106,"path":107,"stem":108,"exact":11,"children":-1},"Redeploy and roll back","\u002Fdeployments\u002Fredeploy-and-rollback","3.deployments\u002F3.redeploy-and-rollback",{"title":110,"path":111,"stem":112,"exact":11,"children":-1},"Logs","\u002Fdeployments\u002Flogs","3.deployments\u002F4.logs",{"title":114,"path":115,"stem":116,"exact":11,"children":-1},"When a deployment fails","\u002Fdeployments\u002Fwhen-a-deployment-fails","3.deployments\u002F5.when-a-deployment-fails","i-lucide-cloud-upload",{"title":119,"path":120,"stem":121,"children":122,"icon":132,"exact":11},"Resources","\u002Fresources","4.resources\u002F1.index",[123,124,128],{"title":119,"path":120,"stem":121,"exact":11,"children":-1},{"title":125,"path":126,"stem":127,"exact":11,"children":-1},"Web services","\u002Fresources\u002Fweb-services","4.resources\u002F2.web-services",{"title":129,"path":130,"stem":131,"exact":11,"children":-1},"PostgreSQL","\u002Fresources\u002Fpostgresql","4.resources\u002F3.postgresql","i-lucide-boxes",{"title":134,"icon":135,"path":136,"stem":137,"children":138,"page":143,"exact":11},"Configuration","i-lucide-sliders-horizontal","\u002Fconfiguration","5.configuration",[139],{"title":140,"path":141,"stem":142,"exact":11,"children":-1},"Environment variables","\u002Fconfiguration\u002Fvariables","5.configuration\u002F1.variables",false,{"title":145,"path":146,"stem":147,"children":148,"icon":154,"exact":11},"Networking","\u002Fnetworking","6.networking\u002F1.index",[149,150],{"title":145,"path":146,"stem":147,"exact":11,"children":-1},{"title":151,"path":152,"stem":153,"exact":11,"children":-1},"Reaching a database","\u002Fnetworking\u002Freaching-a-database","6.networking\u002F2.reaching-a-database","i-lucide-network",{"title":156,"path":157,"stem":158,"children":159,"icon":166,"exact":11},"Domains","\u002Fdomains","7.domains\u002F1.index",[160,162],{"title":161,"path":157,"stem":158,"exact":11,"children":-1},"Hostnames",{"title":163,"path":164,"stem":165,"exact":11,"children":-1},"Custom domains","\u002Fdomains\u002Fcustom-domains","7.domains\u002F2.custom-domains","i-lucide-globe",{"title":168,"path":169,"stem":170,"children":171,"icon":185,"exact":11},"Environments","\u002Fenvironments","8.environments\u002F1.index",[172,173,177,181],{"title":168,"path":169,"stem":170,"exact":11,"children":-1},{"title":174,"path":175,"stem":176,"exact":11,"children":-1},"Preview environments","\u002Fenvironments\u002Fpreview-environments","8.environments\u002F2.preview-environments",{"title":178,"path":179,"stem":180,"exact":11,"children":-1},"Named environments","\u002Fenvironments\u002Fnamed-environments","8.environments\u002F3.named-environments",{"title":182,"path":183,"stem":184,"exact":11,"children":-1},"Deleting an environment","\u002Fenvironments\u002Fdeleting-an-environment","8.environments\u002F4.deleting-an-environment","i-lucide-git-branch",{"title":187,"path":188,"stem":189,"children":190,"icon":212,"exact":11},"Guides","\u002Fguides","9.guides\u002F1.index",[191,192,196,200,204,208],{"title":187,"path":188,"stem":189,"exact":11,"children":-1},{"title":193,"path":194,"stem":195,"exact":11,"children":-1},"Deploy a Nuxt application","\u002Fguides\u002Fdeploy-a-nuxt-application","9.guides\u002F2.deploy-a-nuxt-application",{"title":197,"path":198,"stem":199,"exact":11,"children":-1},"Deploy a Next.js application","\u002Fguides\u002Fdeploy-a-nextjs-application","9.guides\u002F3.deploy-a-nextjs-application",{"title":201,"path":202,"stem":203,"exact":11,"children":-1},"Deploy an Express application","\u002Fguides\u002Fdeploy-an-express-application","9.guides\u002F4.deploy-an-express-application",{"title":205,"path":206,"stem":207,"exact":11,"children":-1},"Deploy with a Dockerfile","\u002Fguides\u002Fdeploy-with-a-dockerfile","9.guides\u002F5.deploy-with-a-dockerfile",{"title":209,"path":210,"stem":211,"exact":11,"children":-1},"Create a staging environment","\u002Fguides\u002Fcreate-a-staging-environment","9.guides\u002F6.create-a-staging-environment","i-lucide-map",{"id":214,"title":28,"badge":215,"body":216,"category":215,"description":631,"draft":143,"extension":632,"links":215,"meta":633,"navigation":11,"path":29,"seo":634,"sitemap":635,"stem":30,"__hash__":636},"docs\u002F10.reference\u002F3.hostnames-and-dns.md",null,{"type":217,"value":218,"toc":622},"minimark",[219,230,235,246,349,353,392,396,482,485,489,562,565,569],[220,221,222,225,226,229],"p",{},[223,224,161],"a",{"href":157}," and ",[223,227,228],{"href":164},"custom domains"," explain; this page states.",[231,232,234],"h2",{"id":233},"generated-hostnames","Generated hostnames",[236,237,243],"pre",{"className":238,"code":240,"language":241,"meta":242},[239],"language-text","[\u003Cenvironment>-]\u003Cproject>[-\u003Cservice>]-\u003Cid>.kuppit.app\n","text","",[244,245,240],"code",{"__ignoreMap":242},[247,248,249,262],"table",{},[250,251,252],"thead",{},[253,254,255,259],"tr",{},[256,257,258],"th",{},"Part",[256,260,261],{},"Rule",[263,264,265,280,290,303,313,321,336],"tbody",{},[253,266,267,273],{},[268,269,270],"td",{},[244,271,272],{},"environment",[268,274,275,276,279],{},"The environment's slug, present for every environment except Production. A preview's is ",[244,277,278],{},"pr-\u003Cnumber>",".",[253,281,282,287],{},[268,283,284],{},[244,285,286],{},"project",[268,288,289],{},"The project's name, lowercased; runs of anything but letters and digits become one hyphen; leading and trailing hyphens dropped; at most 55 characters.",[253,291,292,297],{},[268,293,294],{},[244,295,296],{},"service",[268,298,299,300,279],{},"The service's name, omitted when it is ",[244,301,302],{},"web",[253,304,305,310],{},[268,306,307],{},[244,308,309],{},"id",[268,311,312],{},"Six hexadecimal characters derived from the service. Unique per service, stable for its life.",[253,314,315,318],{},[268,316,317],{},"Whole label",[268,319,320],{},"At most 63 characters. The environment prefix and the id are kept whole; the project and service part is what gets shortened.",[253,322,323,326],{},[268,324,325],{},"Collision",[268,327,328,331,332,335],{},[244,329,330],{},"-2",", ",[244,333,334],{},"-3",", … appended to the label.",[253,337,338,341],{},[268,339,340],{},"Assigned",[268,342,343,344,348],{},"When the service is created. Answers once the first deployment is ",[345,346,347],"strong",{},"Live",". Never changes, cannot be edited or removed.",[231,350,352],{"id":351},"reserved-labels","Reserved labels",[220,354,355,356,331,359,331,362,331,365,331,368,331,371,331,374,331,377,380,381,384,385,388,389,391],{},"A project can never produce a hostname starting with ",[244,357,358],{},"www",[244,360,361],{},"api",[244,363,364],{},"app",[244,366,367],{},"dashboard",[244,369,370],{},"status",[244,372,373],{},"docs",[244,375,376],{},"support",[244,378,379],{},"admin"," or ",[244,382,383],{},"mail",", nor one shaped ",[244,386,387],{},"pr-\u003Cnumber>-",". A project that would gets ",[244,390,330],{}," appended.",[231,393,395],{"id":394},"custom-domain-records","Custom domain records",[247,397,398,414],{},[250,399,400],{},[253,401,402,405,408,411],{},[256,403,404],{},"Purpose",[256,406,407],{},"Type",[256,409,410],{},"Name",[256,412,413],{},"Value",[263,415,416,437,457],{},[253,417,418,421,426,431],{},[268,419,420],{},"Ownership",[268,422,423],{},[244,424,425],{},"TXT",[268,427,428],{},[244,429,430],{},"_kuppit-verification.\u003Chostname>",[268,432,433,434,436],{},"The token shown on the ",[345,435,156],{}," tab",[253,438,439,442,447,452],{},[268,440,441],{},"Routing, subdomain",[268,443,444],{},[244,445,446],{},"CNAME",[268,448,449],{},[244,450,451],{},"\u003Chostname>",[268,453,454],{},[244,455,456],{},"domains.kuppit.app",[253,458,459,462,474,478],{},[268,460,461],{},"Routing, root domain",[268,463,464,467,468,471,472],{},[244,465,466],{},"ALIAS"," \u002F ",[244,469,470],{},"ANAME"," \u002F flattened ",[244,473,446],{},[268,475,476],{},[244,477,451],{},[268,479,480],{},[244,481,456],{},[220,483,484],{},"Ownership is proved by the TXT record only. There is no A record to create: Kuppit has no fixed address.",[231,486,488],{"id":487},"what-a-custom-hostname-may-be","What a custom hostname may be",[247,490,491,501],{},[250,492,493],{},[253,494,495,498],{},[256,496,497],{},"Accepted",[256,499,500],{},"Refused",[263,502,503,523,531,538,548,555],{},[253,504,505,517],{},[268,506,507,508,331,511,331,514],{},"A registrable domain or a subdomain of one: ",[244,509,510],{},"example.com",[244,512,513],{},"app.example.com",[244,515,516],{},"example.co.uk",[268,518,519,520],{},"A wildcard: ",[244,521,522],{},"*.example.com",[253,524,525,528],{},[268,526,527],{},"Internationalised names, stored as their ASCII form",[268,529,530],{},"An IP address",[253,532,533,535],{},[268,534],{},[268,536,537],{},"A bare public suffix",[253,539,540,542],{},[268,541],{},[268,543,544,545],{},"Anything under ",[244,546,547],{},"kuppit.app",[253,549,550,552],{},[268,551],{},[268,553,554],{},"A hostname attached to any other service on Kuppit",[253,556,557,559],{},[268,558],{},[268,560,561],{},"A hostname removed within the last 24 hours",[220,563,564],{},"Hostnames are unique across all of Kuppit. A removed hostname is held for 24 hours before anyone, including its previous owner, can attach it again.",[231,566,568],{"id":567},"timing","Timing",[247,570,571,581],{},[250,572,573],{},[253,574,575,578],{},[256,576,577],{},"Check",[256,579,580],{},"Interval",[263,582,583,595,603,614],{},[253,584,585,588],{},[268,586,587],{},"While ownership, routing or the certificate is pending",[268,589,590,591,594],{},"Every minute; ",[345,592,593],{},"Check DNS"," asks now.",[253,596,597,600],{},[268,598,599],{},"After a certificate failure",[268,601,602],{},"Every 10 minutes.",[253,604,605,611],{},[268,606,607,608],{},"Once ",[345,609,610],{},"Active",[268,612,613],{},"Every 15 minutes.",[253,615,616,619],{},[268,617,618],{},"Routing withdrawn on removal",[268,620,621],{},"Two minutes to propagate before the certificate is removed.",{"title":242,"searchDepth":623,"depth":623,"links":624},3,[625,627,628,629,630],{"id":233,"depth":626,"text":234},2,{"id":351,"depth":626,"text":352},{"id":394,"depth":626,"text":395},{"id":487,"depth":626,"text":488},{"id":567,"depth":626,"text":568},"The generated hostname rule, the labels Kuppit reserves, and the exact records a custom domain takes.","md",{},{"title":28,"description":631},{"loc":29},"omeWshJl_gAOE0dVAv5BUvL3v2yUawaMJzjvnJxRqg8",[638,640],{"title":24,"path":25,"stem":26,"description":639,"children":-1},"The rules a variable must follow, what a reference looks like, what each resource exposes, and which values are secret.",{"title":32,"path":33,"stem":34,"description":641,"children":-1},"Every status a deployment, a service, a database, a domain or an environment can show, in the dashboard's words, and what each means.",1788549619090]