[{"data":1,"prerenderedAt":494},["ShallowReactive",2],{"navigation":3,"docs-navigation-en":4,"\u002Fen\u002Fdocs\u002Fgetting-started\u002Fget-started":115,"\u002Fen\u002Fdocs\u002Fgetting-started\u002Fget-started-surround":489},[],[5,24,36,67,108],{"title":6,"path":7,"stem":8,"children":9,"icon":23},"Getting Started","\u002Fen\u002Fdocs\u002Fgetting-started","en\u002F1.docs\u002F1.getting-started\u002F1.index",[10,13,18],{"title":11,"path":7,"stem":8,"icon":12},"Introduction","i-lucide-house",{"title":14,"path":15,"stem":16,"icon":17},"Get Started","\u002Fen\u002Fdocs\u002Fgetting-started\u002Fget-started","en\u002F1.docs\u002F1.getting-started\u002F2.get-started","i-lucide-rocket",{"title":19,"path":20,"stem":21,"icon":22},"How It Works","\u002Fen\u002Fdocs\u002Fgetting-started\u002Fhow-it-works","en\u002F1.docs\u002F1.getting-started\u002F3.how-it-works","i-lucide-lightbulb",false,{"title":25,"path":26,"stem":27,"children":28,"icon":23},"Guides","\u002Fen\u002Fdocs\u002Fguides","en\u002F1.docs\u002F2.guides\u002F1.index",[29,31],{"title":25,"path":26,"stem":27,"icon":30},"i-lucide-book-open",{"title":32,"path":33,"stem":34,"icon":35},"Connect a Container Registry","\u002Fen\u002Fdocs\u002Fguides\u002Fcontainer-registries","en\u002F1.docs\u002F2.guides\u002F2.container-registries","i-lucide-container",{"title":37,"path":38,"stem":39,"children":40,"icon":23},"App Services","\u002Fen\u002Fdocs\u002Fapp-services","en\u002F1.docs\u002F3.app-services\u002F1.index",[41,42,47,52,57,62],{"title":37,"path":38,"stem":39,"icon":17},{"title":43,"path":44,"stem":45,"icon":46},"Build Settings","\u002Fen\u002Fdocs\u002Fapp-services\u002Fbuild-settings","en\u002F1.docs\u002F3.app-services\u002F2.build-settings","i-lucide-settings",{"title":48,"path":49,"stem":50,"icon":51},"Env Variables","\u002Fen\u002Fdocs\u002Fapp-services\u002Fenvironment-variables","en\u002F1.docs\u002F3.app-services\u002F3.environment-variables","i-lucide-key",{"title":53,"path":54,"stem":55,"icon":56},"Custom Domains","\u002Fen\u002Fdocs\u002Fapp-services\u002Fcustom-domains","en\u002F1.docs\u002F3.app-services\u002F4.custom-domains","i-lucide-globe",{"title":58,"path":59,"stem":60,"icon":61},"Health Checks","\u002Fen\u002Fdocs\u002Fapp-services\u002Fhealth-checks","en\u002F1.docs\u002F3.app-services\u002F5.health-checks","i-lucide-heart-pulse",{"title":63,"path":64,"stem":65,"icon":66},"Autoscaling","\u002Fen\u002Fdocs\u002Fapp-services\u002Fautoscaling","en\u002F1.docs\u002F3.app-services\u002F6.autoscaling","i-lucide-scaling",{"title":68,"path":69,"stem":70,"children":71,"icon":23},"Helm Releases","\u002Fen\u002Fdocs\u002Fhelm-releases","en\u002F1.docs\u002F4.helm-releases\u002F1.index",[72,74,79,84,88,93,98,103],{"title":68,"path":69,"stem":70,"icon":73},"i-lucide-package",{"title":75,"path":76,"stem":77,"icon":78},"Deploy PostgreSQL","\u002Fen\u002Fdocs\u002Fhelm-releases\u002Fdeploy-postgresql","en\u002F1.docs\u002F4.helm-releases\u002F2.deploy-postgresql","i-lucide-database",{"title":80,"path":81,"stem":82,"icon":83},"Deploy Redis","\u002Fen\u002Fdocs\u002Fhelm-releases\u002Fdeploy-redis","en\u002F1.docs\u002F4.helm-releases\u002F3.deploy-redis","i-lucide-zap",{"title":85,"path":86,"stem":87,"icon":83},"Deploy Valkey","\u002Fen\u002Fdocs\u002Fhelm-releases\u002Fdeploy-valkey","en\u002F1.docs\u002F4.helm-releases\u002F3.deploy-valkey",{"title":89,"path":90,"stem":91,"icon":92},"Deploy n8n","\u002Fen\u002Fdocs\u002Fhelm-releases\u002Fdeploy-n8n","en\u002F1.docs\u002F4.helm-releases\u002F4.deploy-n8n","i-lucide-workflow",{"title":94,"path":95,"stem":96,"icon":97},"Deploy RustFS","\u002Fen\u002Fdocs\u002Fhelm-releases\u002Fdeploy-rustfs","en\u002F1.docs\u002F4.helm-releases\u002F5.deploy-rustfs","i-lucide-hard-drive",{"title":99,"path":100,"stem":101,"icon":102},"Deploy OpenSearch","\u002Fen\u002Fdocs\u002Fhelm-releases\u002Fdeploy-opensearch","en\u002F1.docs\u002F4.helm-releases\u002F6.deploy-opensearch","i-lucide-search",{"title":104,"path":105,"stem":106,"icon":107},"Deploy Keycloak","\u002Fen\u002Fdocs\u002Fhelm-releases\u002Fdeploy-keycloak","en\u002F1.docs\u002F4.helm-releases\u002F7.deploy-keycloak","i-lucide-shield-check",{"title":109,"path":110,"stem":111,"children":112,"icon":23},"Glossary","\u002Fen\u002Fdocs\u002Fglossary","en\u002F1.docs\u002F5.glossary\u002F1.index",[113],{"title":109,"path":110,"stem":111,"icon":114},"i-lucide-book-a",{"id":116,"title":14,"body":117,"description":482,"extension":483,"lastUpdated":484,"meta":485,"navigation":486,"path":15,"seo":487,"stem":16,"__hash__":488},"docs\u002Fen\u002F1.docs\u002F1.getting-started\u002F2.get-started.md",{"type":118,"value":119,"toc":468},"minimark",[120,124,129,132,147,151,156,171,175,187,194,198,201,223,229,232,252,258,264,271,275,288,296,302,309,315,321,324,344,347,353,357,360,388,394,409,412,428,431,437,444,448,451,465],[121,122,123],"p",{},"Get up and running with lowcloud in minutes. This guide walks you through setting up your first Kubernetes cluster on Hetzner Cloud.",[125,126,128],"h2",{"id":127},"prerequisites","Prerequisites",[121,130,131],{},"Before you begin, make sure you have:",[133,134,135,144],"ul",{},[136,137,138,139],"li",{},"A lowcloud account — ",[140,141,143],"a",{"href":142},"\u002F","sign up here",[136,145,146],{},"A Hetzner Cloud account",[125,148,150],{"id":149},"step-1-prepare-your-hetzner-account","Step 1: Prepare Your Hetzner Account",[152,153,155],"h3",{"id":154},"create-a-new-project","Create a New Project",[121,157,158,159,165,166,170],{},"Log in to the ",[140,160,164],{"href":161,"rel":162},"https:\u002F\u002Fconsole.hetzner.cloud\u002F",[163],"nofollow","Hetzner Cloud Console"," and create a new project. Choose a descriptive name, e.g. ",[167,168,169],"code",{},"lowcloud",".",[152,172,174],{"id":173},"add-an-api-key","Add an API Key",[121,176,177,178,182,183,186],{},"Navigate to ",[179,180,181],"strong",{},"Security → API Tokens"," within your project and create a new token with ",[179,184,185],{},"Read\u002FWrite"," permissions. Copy the token — you will need it in the next step.",[121,188,189],{},[190,191],"img",{"alt":192,"src":193},"Generate Hetzner API Token","\u002Fimages\u002Fdocs\u002Fhetzner-generate-api-token.png",[125,195,197],{"id":196},"step-2-create-a-project-in-lowcloud","Step 2: Create a Project in lowcloud",[121,199,200],{},"Create a new project in the lowcloud Dashboard:",[202,203,204,207,217],"ol",{},[136,205,206],{},"Choose a project name.",[136,208,209,210,213,214,170],{},"Under ",[179,211,212],{},"Select Provider",", select ",[179,215,216],{},"Hetzner",[136,218,219,220,170],{},"Click ",[179,221,222],{},"Create Hetzner Connection",[121,224,225],{},[190,226],{"alt":227,"src":228},"Connect Hetzner Cloud Project","\u002Fimages\u002Fdocs\u002Fconnect-hetzner-cloud-project.png",[121,230,231],{},"Fill in the dialog:",[133,233,234,240,246],{},[136,235,236,239],{},[179,237,238],{},"Connection Name",": A name for the connection",[136,241,242,245],{},[179,243,244],{},"Project Name",": The project name of your Hetzner project from the Hetzner Console",[136,247,248,251],{},[179,249,250],{},"API Token",": The API key from Step 1",[121,253,219,254,257],{},[179,255,256],{},"Add"," to save the connection.",[121,259,260],{},[190,261],{"alt":262,"src":263},"Connect Hetzner Project Dialog","\u002Fimages\u002Fdocs\u002Fconnect-hetzner-project-dialog.png",[121,265,266,267,270],{},"Then click ",[179,268,269],{},"Create Project"," to create the project.",[125,272,274],{"id":273},"step-3-provision-a-kubernetes-cluster","Step 3: Provision a Kubernetes Cluster",[121,276,277,278,280,281,284,285,170],{},"After creating the project, you will land on the project page. The ",[179,279,6],{}," card shows you the next steps: ",[179,282,283],{},"Provision Kubernetes Cluster"," and ",[179,286,287],{},"Add and deploy service",[121,289,219,290,293,294,170],{},[179,291,292],{},"Set up"," on ",[179,295,283],{},[121,297,298],{},[190,299],{"alt":300,"src":301},"Getting Started Card","\u002Fimages\u002Fdocs\u002Fnew-project-getting-started.png",[121,303,304,305,308],{},"You will land on the Infrastructure page. Click ",[179,306,307],{},"Provision K8s Cluster",". A dialog opens with a preconfigured setup: a single node Control Plane and one worker group with 2 replicas. You can keep the defaults.",[121,310,311],{},[190,312],{"alt":313,"src":314},"Provision K8s Cluster Dialog","\u002Fimages\u002Fdocs\u002Fprovision-k8s-dialog.png",[121,316,219,317,320],{},[179,318,319],{},"Provision Cluster"," to start the provisioning.",[121,322,323],{},"The following resources will be automatically created in your Hetzner account:",[133,325,326,329,332,335,338,341],{},[136,327,328],{},"Firewall",[136,330,331],{},"Private network for the Kubernetes cluster",[136,333,334],{},"1 Control Plane VM",[136,336,337],{},"2 Worker VMs",[136,339,340],{},"1 Load Balancer for cluster management",[136,342,343],{},"1 Load Balancer for external traffic",[121,345,346],{},"After a few minutes, the Kubernetes cluster is successfully created.",[121,348,349],{},[190,350],{"alt":351,"src":352},"Provisioned Kubernetes Cluster","\u002Fimages\u002Fdocs\u002Fprovisioned-k8s-cluster.png",[125,354,356],{"id":355},"step-4-deploy-a-sample-app","Step 4: Deploy a Sample App",[121,358,359],{},"Now we can create our first application. For this demo, we will deploy an nginx web server.",[202,361,362,367,373,378],{},[136,363,177,364,170],{},[179,365,366],{},"Services → Add Service → App Service",[136,368,369,370,170],{},"Choose a name, e.g. ",[167,371,372],{},"nginx",[136,374,219,375,170],{},[179,376,377],{},"Next",[136,379,380,381,384,385,170],{},"Enter ",[167,382,383],{},"nginx:latest"," as the ",[179,386,387],{},"Container Image URL",[121,389,390],{},[190,391],{"alt":392,"src":393},"Configure Container Image","\u002Fimages\u002Fdocs\u002Fconfigure-nginx-docker.png",[202,395,397,401,404],{"start":396},5,[136,398,219,399,170],{},[179,400,377],{},[136,402,403],{},"Keep the default configuration.",[136,405,219,406,170],{},[179,407,408],{},"Create",[121,410,411],{},"The App Service has been created and can now be deployed:",[202,413,414,417,422],{},[136,415,416],{},"Open the App Service.",[136,418,177,419,170],{},[179,420,421],{},"Deployments → Deploy Service",[136,423,424,425,170],{},"Confirm with ",[179,426,427],{},"Confirm Deployment",[121,429,430],{},"The deployment will start and a URL will be generated.",[121,432,433],{},[190,434],{"alt":435,"src":436},"Deploy nginx Service","\u002Fimages\u002Fdocs\u002Fdeploy-nginx.png",[121,438,439,440,443],{},"The URL is visible in the Deployment dialog or in the ",[179,441,442],{},"Domains"," tab of the App Service. The nginx server is now accessible under this domain.",[125,445,447],{"id":446},"summary","Summary",[121,449,450],{},"In this guide you have:",[202,452,453,456,459,462],{},[136,454,455],{},"Prepared a Hetzner Cloud account with an API token",[136,457,458],{},"Created a project in lowcloud and connected it to Hetzner",[136,460,461],{},"Provisioned a Kubernetes cluster with a Control Plane and Worker Nodes",[136,463,464],{},"Deployed a first application (nginx) and made it publicly accessible",[121,466,467],{},"Your Kubernetes cluster is now running on Hetzner Cloud and ready for more services.",{"title":469,"searchDepth":470,"depth":470,"links":471},"",2,[472,473,478,479,480,481],{"id":127,"depth":470,"text":128},{"id":149,"depth":470,"text":150,"children":474},[475,477],{"id":154,"depth":476,"text":155},3,{"id":173,"depth":476,"text":174},{"id":196,"depth":470,"text":197},{"id":273,"depth":470,"text":274},{"id":355,"depth":470,"text":356},{"id":446,"depth":470,"text":447},"Set up your first lowcloud environment on Hetzner Cloud.","md","2026-03-11",{},{"icon":17},{"title":14,"description":482},"XYcGYEuT6rH2oyL_AKG8paVmGZo1v_3nsnZpantJT2I",[490,492],{"title":11,"path":7,"stem":8,"description":491,"icon":12,"children":-1},"Welcome to the lowcloud documentation.",{"title":19,"path":20,"stem":21,"description":493,"icon":22,"children":-1},"Learn how lowcloud provisions Kubernetes infrastructure, deploys applications, and monitors your clusters, all through a unified interface.",1776519811233]