[{"data":1,"prerenderedAt":703},["ShallowReactive",2],{"navigation":3,"docs-navigation-en":294,"\u002Fen\u002Fdocs\u002Fgetting-started\u002Fget-started":324,"\u002Fen\u002Fdocs\u002Fgetting-started\u002Fget-started-surround":698},[4,8,12,16,20,24,28,32,36,40,44,48,52,56,60,64,68,72,76,80,84,88,92,96,100,104,108,112,116,120,124,128,132,136,140,144,148,152,156,160,164,168,172,176,180,184,188,207,219,250,287],{"title":5,"path":6,"stem":7},"Build and Deploy a Modern Website in 5 Minutes","\u002Fen\u002Fblog\u002Fbuild-with-loveable","en\u002F3.blog\u002F1.build-with-loveable",{"title":9,"path":10,"stem":11},"The Vercel Alternative for the German Mittelstand: Sovereign Hosting on Hetzner with lowcloud","\u002Fen\u002Fblog\u002Fdigital-sovereignty-lowcloud-vs-vercel-b2b","en\u002F3.blog\u002F10.digital-sovereignty-lowcloud-vs-vercel-b2b",{"title":13,"path":14,"stem":15},"Cloud Sovereignty Framework: How the EU Is Finally Making Cloud Sovereignty Measurable","\u002Fen\u002Fblog\u002Fcloud-sovereignty-framework","en\u002F3.blog\u002F12.cloud-sovereignty-framework",{"title":17,"path":18,"stem":19},"Avoiding Cloud Vendor Lock-in: What Real Sovereignty Means Technically","\u002Fen\u002Fblog\u002Fcloud-vendor-lock-in","en\u002F3.blog\u002F13.cloud-vendor-lock-in",{"title":21,"path":22,"stem":23},"Digital Sovereignty with Kubernetes: When Is Open Source Truly Sovereign?","\u002Fen\u002Fblog\u002Fkubernetes-digital-sovereignty","en\u002F3.blog\u002F14.kubernetes-digital-sovereignty",{"title":25,"path":26,"stem":27},"What Is DevOps as a Service and When Does It Actually Make Sense?","\u002Fen\u002Fblog\u002Fdevops-as-a-service","en\u002F3.blog\u002F15.devops-as-a-service",{"title":29,"path":30,"stem":31},"Cloud Sovereignty Governance: Why This Topic Belongs in the Boardroom, Not the Server Room","\u002Fen\u002Fblog\u002Fcloud-sovereignty-governance","en\u002F3.blog\u002F16.cloud-sovereignty-governance",{"title":33,"path":34,"stem":35},"PaaS vs. DaaS: What","\u002Fen\u002Fblog\u002Fpaas-vs-daas","en\u002F3.blog\u002F17.paas-vs-daas",{"title":37,"path":38,"stem":39},"Sovereign Cloud: Can SaaS Really Maintain Control Over Your Data?","\u002Fen\u002Fblog\u002Fsovereign-cloud-saas-data-control","en\u002F3.blog\u002F18.sovereign-cloud-saas-data-control",{"title":41,"path":42,"stem":43},"DevOps vs. DevOps as a Service – Which One Fits Your Team?","\u002Fen\u002Fblog\u002Fdevops-vs-devops-as-a-service","en\u002F3.blog\u002F19.devops-vs-devops-as-a-service",{"title":45,"path":46,"stem":47},"Docker Fundamentals -  Understanding Container Virtualization","\u002Fen\u002Fblog\u002Fhow-docker-works","en\u002F3.blog\u002F2.how-docker-works",{"title":49,"path":50,"stem":51},"The 7 Biggest DevOps Problems in SMBs – And How to Fix Them","\u002Fen\u002Fblog\u002Fdevops-problems-smb","en\u002F3.blog\u002F20.devops-problems-smb",{"title":53,"path":54,"stem":55},"PostgreSQL Helm Chart: How to Deploy Postgres on Kubernetes","\u002Fen\u002Fblog\u002Fpostgresql-helm-chart-kubernetes","en\u002F3.blog\u002F21.postgresql-helm-chart-kubernetes",{"title":57,"path":58,"stem":59},"Platform Engineering vs. DevOps – What","\u002Fen\u002Fblog\u002Fplatform-engineering-vs-devops","en\u002F3.blog\u002F22.platform-engineering-vs-devops",{"title":61,"path":62,"stem":63},"Cloud Act vs. GDPR: The Risk for EU Businesses","\u002Fen\u002Fblog\u002Fcloud-act-vs-gdpr","en\u002F3.blog\u002F23.cloud-act-vs-gdpr",{"title":65,"path":66,"stem":67},"Cut IT Costs with Automation: The Biggest Lever","\u002Fen\u002Fblog\u002Freduce-it-costs-automation","en\u002F3.blog\u002F24.reduce-it-costs-automation",{"title":69,"path":70,"stem":71},"NIS2 Compliance for DevOps Teams: What You Need to Do","\u002Fen\u002Fblog\u002Fnis2-compliance-devops","en\u002F3.blog\u002F25.nis2-compliance-devops",{"title":73,"path":74,"stem":75},"Self-Hosted EU Alternatives: Host LibreOffice & More","\u002Fen\u002Fblog\u002Fself-hosted-eu-alternatives","en\u002F3.blog\u002F26.self-hosted-eu-alternatives",{"title":77,"path":78,"stem":79},"DORA Compliance for DevOps: What the EU Resilience Act Means","\u002Fen\u002Fblog\u002Fdora-compliance-devops","en\u002F3.blog\u002F27.dora-compliance-devops",{"title":81,"path":82,"stem":83},"Cloud TCO: Hidden Costs AWS, Azure & GCP Don't Show You","\u002Fen\u002Fblog\u002Fcloud-tco-hidden-costs","en\u002F3.blog\u002F28.cloud-tco-hidden-costs",{"title":85,"path":86,"stem":87},"Data Residency vs. Data Sovereignty: What Really Matters","\u002Fen\u002Fblog\u002Fdata-residency-vs-data-sovereignty","en\u002F3.blog\u002F29.data-residency-vs-data-sovereignty",{"title":89,"path":90,"stem":91},"Self-Host n8n on Hetzner: Complete Docker Setup Guide","\u002Fen\u002Fblog\u002Fself-hosted-n8n-on-hetzner","en\u002F3.blog\u002F3.self-hosted-n8n-on-hetzner",{"title":93,"path":94,"stem":95},"Manual Deployments: An Underestimated Risk for SMBs","\u002Fen\u002Fblog\u002Fmanual-deployment-risks","en\u002F3.blog\u002F30.manual-deployment-risks",{"title":97,"path":98,"stem":99},"DevOps Tool Sprawl: How It Happens and How to Stop It","\u002Fen\u002Fblog\u002Fdevops-tool-sprawl","en\u002F3.blog\u002F31.devops-tool-sprawl",{"title":101,"path":102,"stem":103},"Kubernetes Monitoring: Using Logs and Metrics Effectively","\u002Fen\u002Fblog\u002Fkubernetes-monitoring-logs-metrics","en\u002F3.blog\u002F32.kubernetes-monitoring-logs-metrics",{"title":105,"path":106,"stem":107},"OB7 Case Study: Website Deployment Without Infrastructure Overhead","\u002Fen\u002Fblog\u002Fob7-case-study-lowcloud-deployment","en\u002F3.blog\u002F33.ob7-case-study-lowcloud-deployment",{"title":109,"path":110,"stem":111},"DevOps in SMBs: Why Missing Roles Become a Real Risk","\u002Fen\u002Fblog\u002Fmissing-devops-roles-smb","en\u002F3.blog\u002F34.missing-devops-roles-smb",{"title":113,"path":114,"stem":115},"Simplify Kubernetes Configuration: The Path to Human-Readable Cloud","\u002Fen\u002Fblog\u002Fsimplify-kubernetes-configuration","en\u002F3.blog\u002F35.simplify-kubernetes-configuration",{"title":117,"path":118,"stem":119},"Collaborative DevOps: How Modern Teams Build Cloud Apps Together","\u002Fen\u002Fblog\u002Fcollaborative-devops-teams","en\u002F3.blog\u002F36.collaborative-devops-teams",{"title":121,"path":122,"stem":123},"Knowledge Documentation in DevOps Teams: How to Actually Reduce Your Bus Factor","\u002Fen\u002Fblog\u002Fdevops-knowledge-documentation-bus-factor","en\u002F3.blog\u002F37.devops-knowledge-documentation-bus-factor",{"title":125,"path":126,"stem":127},"What Is PaaS? Platform as a Service Explained","\u002Fen\u002Fblog\u002Fwhat-is-paas","en\u002F3.blog\u002F38.what-is-paas",{"title":129,"path":130,"stem":131},"EU AI Act Hosting: What Changes for AI Workload Operators","\u002Fen\u002Fblog\u002Feu-ai-act-hosting","en\u002F3.blog\u002F39.eu-ai-act-hosting",{"title":133,"path":134,"stem":135},"Docker Compose Tutorial: Managing Multi-Container Apps Made Easy","\u002Fen\u002Fblog\u002Fdocker-compose-for-beginners","en\u002F3.blog\u002F4.docker-compose-for-beginners",{"title":137,"path":138,"stem":139},"Full-Stack Developer Reality: What the Title Actually Means","\u002Fen\u002Fblog\u002Ffull-stack-developer-reality","en\u002F3.blog\u002F40.full-stack-developer-reality",{"title":141,"path":142,"stem":143},"Cloud Egress Fees Compared: AWS vs. Azure vs. GCP Pricing","\u002Fen\u002Fblog\u002Fcloud-egress-fees","en\u002F3.blog\u002F41.cloud-egress-fees",{"title":145,"path":146,"stem":147},"Bring Your Own Cloud: What the Model Means and Why It","\u002Fen\u002Fblog\u002Fbring-your-own-cloud","en\u002F3.blog\u002F42.bring-your-own-cloud",{"title":149,"path":150,"stem":151},"Zero-Config Kubernetes: Why Simplicity Wins","\u002Fen\u002Fblog\u002Fzero-config-kubernetes","en\u002F3.blog\u002F43.zero-config-kubernetes",{"title":153,"path":154,"stem":155},"Minimalist Cloud Architecture: Why Less Complexity Means More Stability","\u002Fen\u002Fblog\u002Fminimalist-cloud-architecture","en\u002F3.blog\u002F44.minimalist-cloud-architecture",{"title":157,"path":158,"stem":159},"Software Deployment for SMBs: How Small Teams Ship Faster","\u002Fen\u002Fblog\u002Fsmb-software-deployment","en\u002F3.blog\u002F45.smb-software-deployment",{"title":161,"path":162,"stem":163},"EU Data Act: What Businesses and DevOps Teams Need to Know","\u002Fen\u002Fblog\u002Feu-data-act-business-devops","en\u002F3.blog\u002F46.eu-data-act-business-devops",{"title":165,"path":166,"stem":167},"Data Governance Act: What SMBs and DevOps Teams Need to Know","\u002Fen\u002Fblog\u002Fdata-governance-act-devops-guide","en\u002F3.blog\u002F47.data-governance-act-devops-guide",{"title":169,"path":170,"stem":171},"Self-Host Docmost with Docker Compose and Traefik: Complete Guide","\u002Fen\u002Fblog\u002Fself-host-docmost-with-docker-and-traefik","en\u002F3.blog\u002F5.self-host-docmost-with-docker-and-traefik",{"title":173,"path":174,"stem":175},"What Is Kubernetes? A Practical Guide to Container Orchestration","\u002Fen\u002Fblog\u002Fwhat-is-kubernetes","en\u002F3.blog\u002F6.what-is-kubernetes",{"title":177,"path":178,"stem":179},"The Cloud Illusion: Why a Server Location in Germany Doesn’t Guarantee Digital Sovereignty","\u002Fen\u002Fblog\u002Fcloud-illusion-digital-sovereignty","en\u002F3.blog\u002F7.cloud-illusion-digital-sovereignty",{"title":181,"path":182,"stem":183},"S3-Compatible Object Storage: The Best Solutions at a Glance","\u002Fen\u002Fblog\u002Fs3-compatible-object-storage","en\u002F3.blog\u002F8.s3-compatible-object-storage",{"title":185,"path":186,"stem":187},"Deployment as a Bottleneck: When AI Codes Faster Than You Can Deploy","\u002Fen\u002Fblog\u002Fdeployment-bottleneck","en\u002F3.blog\u002F9.deployment-bottleneck",{"title":189,"path":190,"stem":191,"children":192,"icon":206},"Getting Started","\u002Fen\u002Fdocs\u002Fgetting-started","en\u002F1.docs\u002F1.getting-started\u002F1.index",[193,196,201],{"title":194,"path":190,"stem":191,"icon":195},"Introduction","i-lucide-house",{"title":197,"path":198,"stem":199,"icon":200},"Get Started","\u002Fen\u002Fdocs\u002Fgetting-started\u002Fget-started","en\u002F1.docs\u002F1.getting-started\u002F2.get-started","i-lucide-rocket",{"title":202,"path":203,"stem":204,"icon":205},"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":208,"path":209,"stem":210,"children":211,"icon":206},"Guides","\u002Fen\u002Fdocs\u002Fguides","en\u002F1.docs\u002F2.guides\u002F1.index",[212,214],{"title":208,"path":209,"stem":210,"icon":213},"i-lucide-book-open",{"title":215,"path":216,"stem":217,"icon":218},"Connect a Container Registry","\u002Fen\u002Fdocs\u002Fguides\u002Fcontainer-registries","en\u002F1.docs\u002F2.guides\u002F2.container-registries","i-lucide-container",{"title":220,"path":221,"stem":222,"children":223,"icon":206},"App Services","\u002Fen\u002Fdocs\u002Fapp-services","en\u002F1.docs\u002F3.app-services\u002F1.index",[224,225,230,235,240,245],{"title":220,"path":221,"stem":222,"icon":200},{"title":226,"path":227,"stem":228,"icon":229},"Build Settings","\u002Fen\u002Fdocs\u002Fapp-services\u002Fbuild-settings","en\u002F1.docs\u002F3.app-services\u002F2.build-settings","i-lucide-settings",{"title":231,"path":232,"stem":233,"icon":234},"Env Variables","\u002Fen\u002Fdocs\u002Fapp-services\u002Fenvironment-variables","en\u002F1.docs\u002F3.app-services\u002F3.environment-variables","i-lucide-key",{"title":236,"path":237,"stem":238,"icon":239},"Custom Domains","\u002Fen\u002Fdocs\u002Fapp-services\u002Fcustom-domains","en\u002F1.docs\u002F3.app-services\u002F4.custom-domains","i-lucide-globe",{"title":241,"path":242,"stem":243,"icon":244},"Health Checks","\u002Fen\u002Fdocs\u002Fapp-services\u002Fhealth-checks","en\u002F1.docs\u002F3.app-services\u002F5.health-checks","i-lucide-heart-pulse",{"title":246,"path":247,"stem":248,"icon":249},"Autoscaling","\u002Fen\u002Fdocs\u002Fapp-services\u002Fautoscaling","en\u002F1.docs\u002F3.app-services\u002F6.autoscaling","i-lucide-scaling",{"title":251,"path":252,"stem":253,"children":254,"icon":206},"Helm Releases","\u002Fen\u002Fdocs\u002Fhelm-releases","en\u002F1.docs\u002F4.helm-releases\u002F1.index",[255,257,262,267,272,277,282],{"title":251,"path":252,"stem":253,"icon":256},"i-lucide-package",{"title":258,"path":259,"stem":260,"icon":261},"Deploy PostgreSQL","\u002Fen\u002Fdocs\u002Fhelm-releases\u002Fdeploy-postgresql","en\u002F1.docs\u002F4.helm-releases\u002F2.deploy-postgresql","i-lucide-database",{"title":263,"path":264,"stem":265,"icon":266},"Deploy Redis","\u002Fen\u002Fdocs\u002Fhelm-releases\u002Fdeploy-redis","en\u002F1.docs\u002F4.helm-releases\u002F3.deploy-redis","i-lucide-zap",{"title":268,"path":269,"stem":270,"icon":271},"Deploy n8n","\u002Fen\u002Fdocs\u002Fhelm-releases\u002Fdeploy-n8n","en\u002F1.docs\u002F4.helm-releases\u002F4.deploy-n8n","i-lucide-workflow",{"title":273,"path":274,"stem":275,"icon":276},"Deploy RustFS","\u002Fen\u002Fdocs\u002Fhelm-releases\u002Fdeploy-rustfs","en\u002F1.docs\u002F4.helm-releases\u002F5.deploy-rustfs","i-lucide-hard-drive",{"title":278,"path":279,"stem":280,"icon":281},"Deploy OpenSearch","\u002Fen\u002Fdocs\u002Fhelm-releases\u002Fdeploy-opensearch","en\u002F1.docs\u002F4.helm-releases\u002F6.deploy-opensearch","i-lucide-search",{"title":283,"path":284,"stem":285,"icon":286},"Deploy Keycloak","\u002Fen\u002Fdocs\u002Fhelm-releases\u002Fdeploy-keycloak","en\u002F1.docs\u002F4.helm-releases\u002F7.deploy-keycloak","i-lucide-shield-check",{"title":288,"path":289,"stem":290,"children":291,"icon":206},"Glossary","\u002Fen\u002Fdocs\u002Fglossary","en\u002F1.docs\u002F5.glossary\u002F1.index",[292],{"title":288,"path":289,"stem":290,"icon":293},"i-lucide-book-a",[295,300,304,312,321],{"title":189,"path":190,"stem":191,"children":296,"icon":206},[297,298,299],{"title":194,"path":190,"stem":191,"icon":195},{"title":197,"path":198,"stem":199,"icon":200},{"title":202,"path":203,"stem":204,"icon":205},{"title":208,"path":209,"stem":210,"children":301,"icon":206},[302,303],{"title":208,"path":209,"stem":210,"icon":213},{"title":215,"path":216,"stem":217,"icon":218},{"title":220,"path":221,"stem":222,"children":305,"icon":206},[306,307,308,309,310,311],{"title":220,"path":221,"stem":222,"icon":200},{"title":226,"path":227,"stem":228,"icon":229},{"title":231,"path":232,"stem":233,"icon":234},{"title":236,"path":237,"stem":238,"icon":239},{"title":241,"path":242,"stem":243,"icon":244},{"title":246,"path":247,"stem":248,"icon":249},{"title":251,"path":252,"stem":253,"children":313,"icon":206},[314,315,316,317,318,319,320],{"title":251,"path":252,"stem":253,"icon":256},{"title":258,"path":259,"stem":260,"icon":261},{"title":263,"path":264,"stem":265,"icon":266},{"title":268,"path":269,"stem":270,"icon":271},{"title":273,"path":274,"stem":275,"icon":276},{"title":278,"path":279,"stem":280,"icon":281},{"title":283,"path":284,"stem":285,"icon":286},{"title":288,"path":289,"stem":290,"children":322,"icon":206},[323],{"title":288,"path":289,"stem":290,"icon":293},{"id":325,"title":197,"body":326,"description":691,"extension":692,"lastUpdated":693,"meta":694,"navigation":695,"path":198,"seo":696,"stem":199,"__hash__":697},"docs\u002Fen\u002F1.docs\u002F1.getting-started\u002F2.get-started.md",{"type":327,"value":328,"toc":677},"minimark",[329,333,338,341,356,360,365,380,384,396,403,407,410,432,438,441,461,467,473,480,484,497,505,511,518,524,530,533,553,556,562,566,569,597,603,618,621,637,640,646,653,657,660,674],[330,331,332],"p",{},"Get up and running with lowcloud in minutes. This guide walks you through setting up your first Kubernetes cluster on Hetzner Cloud.",[334,335,337],"h2",{"id":336},"prerequisites","Prerequisites",[330,339,340],{},"Before you begin, make sure you have:",[342,343,344,353],"ul",{},[345,346,347,348],"li",{},"A lowcloud account — ",[349,350,352],"a",{"href":351},"\u002F","sign up here",[345,354,355],{},"A Hetzner Cloud account",[334,357,359],{"id":358},"step-1-prepare-your-hetzner-account","Step 1: Prepare Your Hetzner Account",[361,362,364],"h3",{"id":363},"create-a-new-project","Create a New Project",[330,366,367,368,374,375,379],{},"Log in to the ",[349,369,373],{"href":370,"rel":371},"https:\u002F\u002Fconsole.hetzner.cloud\u002F",[372],"nofollow","Hetzner Cloud Console"," and create a new project. Choose a descriptive name, e.g. ",[376,377,378],"code",{},"lowcloud",".",[361,381,383],{"id":382},"add-an-api-key","Add an API Key",[330,385,386,387,391,392,395],{},"Navigate to ",[388,389,390],"strong",{},"Security → API Tokens"," within your project and create a new token with ",[388,393,394],{},"Read\u002FWrite"," permissions. Copy the token — you will need it in the next step.",[330,397,398],{},[399,400],"img",{"alt":401,"src":402},"Generate Hetzner API Token","\u002Fimages\u002Fdocs\u002Fhetzner-generate-api-token.png",[334,404,406],{"id":405},"step-2-create-a-project-in-lowcloud","Step 2: Create a Project in lowcloud",[330,408,409],{},"Create a new project in the lowcloud Dashboard:",[411,412,413,416,426],"ol",{},[345,414,415],{},"Choose a project name.",[345,417,418,419,422,423,379],{},"Under ",[388,420,421],{},"Select Provider",", select ",[388,424,425],{},"Hetzner",[345,427,428,429,379],{},"Click ",[388,430,431],{},"Create Hetzner Connection",[330,433,434],{},[399,435],{"alt":436,"src":437},"Connect Hetzner Cloud Project","\u002Fimages\u002Fdocs\u002Fconnect-hetzner-cloud-project.png",[330,439,440],{},"Fill in the dialog:",[342,442,443,449,455],{},[345,444,445,448],{},[388,446,447],{},"Connection Name",": A name for the connection",[345,450,451,454],{},[388,452,453],{},"Project Name",": The project name of your Hetzner project from the Hetzner Console",[345,456,457,460],{},[388,458,459],{},"API Token",": The API key from Step 1",[330,462,428,463,466],{},[388,464,465],{},"Add"," to save the connection.",[330,468,469],{},[399,470],{"alt":471,"src":472},"Connect Hetzner Project Dialog","\u002Fimages\u002Fdocs\u002Fconnect-hetzner-project-dialog.png",[330,474,475,476,479],{},"Then click ",[388,477,478],{},"Create Project"," to create the project.",[334,481,483],{"id":482},"step-3-provision-a-kubernetes-cluster","Step 3: Provision a Kubernetes Cluster",[330,485,486,487,489,490,493,494,379],{},"After creating the project, you will land on the project page. The ",[388,488,189],{}," card shows you the next steps: ",[388,491,492],{},"Provision Kubernetes Cluster"," and ",[388,495,496],{},"Add and deploy service",[330,498,428,499,502,503,379],{},[388,500,501],{},"Set up"," on ",[388,504,492],{},[330,506,507],{},[399,508],{"alt":509,"src":510},"Getting Started Card","\u002Fimages\u002Fdocs\u002Fnew-project-getting-started.png",[330,512,513,514,517],{},"You will land on the Infrastructure page. Click ",[388,515,516],{},"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.",[330,519,520],{},[399,521],{"alt":522,"src":523},"Provision K8s Cluster Dialog","\u002Fimages\u002Fdocs\u002Fprovision-k8s-dialog.png",[330,525,428,526,529],{},[388,527,528],{},"Provision Cluster"," to start the provisioning.",[330,531,532],{},"The following resources will be automatically created in your Hetzner account:",[342,534,535,538,541,544,547,550],{},[345,536,537],{},"Firewall",[345,539,540],{},"Private network for the Kubernetes cluster",[345,542,543],{},"1 Control Plane VM",[345,545,546],{},"2 Worker VMs",[345,548,549],{},"1 Load Balancer for cluster management",[345,551,552],{},"1 Load Balancer for external traffic",[330,554,555],{},"After a few minutes, the Kubernetes cluster is successfully created.",[330,557,558],{},[399,559],{"alt":560,"src":561},"Provisioned Kubernetes Cluster","\u002Fimages\u002Fdocs\u002Fprovisioned-k8s-cluster.png",[334,563,565],{"id":564},"step-4-deploy-a-sample-app","Step 4: Deploy a Sample App",[330,567,568],{},"Now we can create our first application. For this demo, we will deploy an nginx web server.",[411,570,571,576,582,587],{},[345,572,386,573,379],{},[388,574,575],{},"Services → Add Service → App Service",[345,577,578,579,379],{},"Choose a name, e.g. ",[376,580,581],{},"nginx",[345,583,428,584,379],{},[388,585,586],{},"Next",[345,588,589,590,593,594,379],{},"Enter ",[376,591,592],{},"nginx:latest"," as the ",[388,595,596],{},"Container Image URL",[330,598,599],{},[399,600],{"alt":601,"src":602},"Configure Container Image","\u002Fimages\u002Fdocs\u002Fconfigure-nginx-docker.png",[411,604,606,610,613],{"start":605},5,[345,607,428,608,379],{},[388,609,586],{},[345,611,612],{},"Keep the default configuration.",[345,614,428,615,379],{},[388,616,617],{},"Create",[330,619,620],{},"The App Service has been created and can now be deployed:",[411,622,623,626,631],{},[345,624,625],{},"Open the App Service.",[345,627,386,628,379],{},[388,629,630],{},"Deployments → Deploy Service",[345,632,633,634,379],{},"Confirm with ",[388,635,636],{},"Confirm Deployment",[330,638,639],{},"The deployment will start and a URL will be generated.",[330,641,642],{},[399,643],{"alt":644,"src":645},"Deploy nginx Service","\u002Fimages\u002Fdocs\u002Fdeploy-nginx.png",[330,647,648,649,652],{},"The URL is visible in the Deployment dialog or in the ",[388,650,651],{},"Domains"," tab of the App Service. The nginx server is now accessible under this domain.",[334,654,656],{"id":655},"summary","Summary",[330,658,659],{},"In this guide you have:",[411,661,662,665,668,671],{},[345,663,664],{},"Prepared a Hetzner Cloud account with an API token",[345,666,667],{},"Created a project in lowcloud and connected it to Hetzner",[345,669,670],{},"Provisioned a Kubernetes cluster with a Control Plane and Worker Nodes",[345,672,673],{},"Deployed a first application (nginx) and made it publicly accessible",[330,675,676],{},"Your Kubernetes cluster is now running on Hetzner Cloud and ready for more services.",{"title":678,"searchDepth":679,"depth":679,"links":680},"",2,[681,682,687,688,689,690],{"id":336,"depth":679,"text":337},{"id":358,"depth":679,"text":359,"children":683},[684,686],{"id":363,"depth":685,"text":364},3,{"id":382,"depth":685,"text":383},{"id":405,"depth":679,"text":406},{"id":482,"depth":679,"text":483},{"id":564,"depth":679,"text":565},{"id":655,"depth":679,"text":656},"Set up your first lowcloud environment on Hetzner Cloud.","md","2026-03-11",{},{"icon":200},{"title":197,"description":691},"XYcGYEuT6rH2oyL_AKG8paVmGZo1v_3nsnZpantJT2I",[699,701],{"title":194,"path":190,"stem":191,"description":700,"icon":195,"children":-1},"Welcome to the lowcloud documentation.",{"title":202,"path":203,"stem":204,"description":702,"icon":205,"children":-1},"Learn how lowcloud provisions Kubernetes infrastructure, deploys applications, and monitors your clusters, all through a unified interface.",1775388357890]