[{"data":1,"prerenderedAt":518},["ShallowReactive",2],{"docs-en-guides\u002Fcontainer-registries":3,"docs-navigation-en":268,"docs-surround-en-guides\u002Fcontainer-registries":511},{"id":4,"title":5,"body":6,"description":258,"extension":259,"lastUpdated":260,"meta":261,"navigation":262,"path":264,"seo":265,"stem":266,"__hash__":267},"docs\u002Fen\u002F1.docs\u002F2.guides\u002F2.container-registries.md","Connect a Container Registry",{"type":7,"value":8,"toc":246},"minimark",[9,13,18,21,38,49,52,56,65,69,74,77,91,98,105,113,117,127,133,136,200,213,217,223,227],[10,11,12],"p",{},"Container registries are external Docker registries that you connect to lowcloud for building and deploying your apps. They serve as the central storage for your container images.",[14,15,17],"h2",{"id":16},"how-container-registries-work-in-lowcloud","How Container Registries Work in lowcloud",[10,19,20],{},"Container registries serve two purposes in lowcloud:",[22,23,24,32],"ol",{},[25,26,27,31],"li",{},[28,29,30],"strong",{},"Build"," – Your app is built inside the cluster. The resulting container image is then pushed to the connected registry.",[25,33,34,37],{},[28,35,36],{},"Deploy"," – During deployment, the Kubernetes deployment pulls the image from the registry and starts your app.",[39,40,45],"pre",{"className":41,"code":43,"language":44},[42],"language-text","Code Push → Build in Cluster → Image Push to Registry → Deploy from Registry\n","text",[46,47,43],"code",{"__ignoreMap":48},"",[10,50,51],{},"You can use any Docker-compatible registry – e.g. GitHub Container Registry (ghcr.io), Docker Hub, GitLab Container Registry, or a self-hosted registry.",[14,53,55],{"id":54},"prerequisites","Prerequisites",[57,58,59,62],"ul",{},[25,60,61],{},"Access to the lowcloud dashboard",[25,63,64],{},"An external container registry with valid credentials",[14,66,68],{"id":67},"example-connect-github-container-registry-ghcrio","Example: Connect GitHub Container Registry (ghcr.io)",[70,71,73],"h3",{"id":72},"_1-create-a-github-personal-access-token","1. Create a GitHub Personal Access Token",[10,75,76],{},"You need a GitHub Personal Access Token (classic) with the following permissions:",[57,78,79,85],{},[25,80,81,84],{},[46,82,83],{},"read:packages"," – Pull images from the registry",[25,86,87,90],{},[46,88,89],{},"write:packages"," – Push images to the registry",[10,92,93,94,97],{},"Create the token under ",[28,95,96],{},"GitHub → Settings → Developer settings → Personal access tokens → Tokens (classic)",".",[10,99,100],{},[101,102],"img",{"alt":103,"src":104},"Create GitHub Personal Access Token","\u002Fimages\u002Fdocs\u002Fgithub-create-repository-token.png",[106,107,110],"callout",{"color":108,"icon":109},"warning","i-lucide-triangle-alert",[10,111,112],{},"Copy the token immediately after creation – GitHub only shows it once.",[70,114,116],{"id":115},"_2-add-the-container-registry-in-lowcloud","2. Add the Container Registry in lowcloud",[10,118,119,120,123,124,97],{},"Navigate to ",[28,121,122],{},"Settings → Container Registries"," in the lowcloud dashboard and click ",[28,125,126],{},"Add New",[10,128,129],{},[101,130],{"alt":131,"src":132},"Add Container Registry Dialog","\u002Fimages\u002Fdocs\u002Facc-container-registry.png",[10,134,135],{},"Enter the following details:",[137,138,139,152],"table",{},[140,141,142],"thead",{},[143,144,145,149],"tr",{},[146,147,148],"th",{},"Field",[146,150,151],{},"Value",[153,154,155,166,176,184,192],"tbody",{},[143,156,157,161],{},[158,159,160],"td",{},"Name",[158,162,163],{},[46,164,165],{},"Github Container Registry",[143,167,168,171],{},[158,169,170],{},"Registry URL",[158,172,173],{},[46,174,175],{},"ghcr.io",[143,177,178,181],{},[158,179,180],{},"Username",[158,182,183],{},"Your GitHub username",[143,185,186,189],{},[158,187,188],{},"Password \u002F Token",[158,190,191],{},"Your GitHub Personal Access Token",[143,193,194,197],{},[158,195,196],{},"Image Prefix (optional)",[158,198,199],{},"Your GitHub organization or username",[201,202,203],"blockquote",{},[10,204,205,208,209,212],{},[28,206,207],{},"Note:"," The ",[28,210,211],{},"Image Prefix"," field defines the namespace for your images (e.g. your organization). If left empty, it falls back to your username.",[70,214,216],{"id":215},"_3-save-the-registry","3. Save the Registry",[10,218,219,220,222],{},"Click ",[28,221,126],{},". The registry is now connected and available for builds and deployments.",[14,224,226],{"id":225},"summary","Summary",[57,228,229,232,243],{},[25,230,231],{},"Container registries are external Docker registries for your container images",[25,233,234,235,238,239,242],{},"lowcloud uses them to ",[28,236,237],{},"push"," (after build) and ",[28,240,241],{},"pull"," (during deploy) images",[25,244,245],{},"You can connect any Docker-compatible registry",{"title":48,"searchDepth":247,"depth":247,"links":248},2,[249,250,251,257],{"id":16,"depth":247,"text":17},{"id":54,"depth":247,"text":55},{"id":67,"depth":247,"text":68,"children":252},[253,255,256],{"id":72,"depth":254,"text":73},3,{"id":115,"depth":254,"text":116},{"id":215,"depth":254,"text":216},{"id":225,"depth":247,"text":226},"Learn how to connect an external container registry to lowcloud for building and deploying your apps.","md","2026-03-16",{},{"icon":263},"i-lucide-container","\u002Fen\u002Fdocs\u002Fguides\u002Fcontainer-registries",{"title":5,"description":258},"en\u002F1.docs\u002F2.guides\u002F2.container-registries","GAQNNfQcfwcx5n29BB4HcyvIdz37jMwQQ3bXlACldRc",[269,288,297,438,465,504],{"title":270,"path":271,"stem":272,"children":273,"icon":287},"Getting Started","\u002Fhosting\u002Fdocs\u002Fgetting-started","en\u002F1.docs\u002F1.getting-started\u002F1.index",[274,277,282],{"title":275,"path":271,"stem":272,"icon":276,"children":-1},"Introduction","i-lucide-house",{"title":278,"path":279,"stem":280,"icon":281,"children":-1},"Get Started","\u002Fhosting\u002Fdocs\u002Fgetting-started\u002Fget-started","en\u002F1.docs\u002F1.getting-started\u002F2.get-started","i-lucide-rocket",{"title":283,"path":284,"stem":285,"icon":286,"children":-1},"How It Works","\u002Fhosting\u002Fdocs\u002Fgetting-started\u002Fhow-it-works","en\u002F1.docs\u002F1.getting-started\u002F3.how-it-works","i-lucide-lightbulb",false,{"title":289,"path":290,"stem":291,"children":292,"icon":287},"Guides","\u002Fhosting\u002Fdocs\u002Fguides","en\u002F1.docs\u002F2.guides\u002F1.index",[293,295],{"title":289,"path":290,"stem":291,"icon":294,"children":-1},"i-lucide-book-open",{"title":5,"path":296,"stem":266,"icon":263,"children":-1},"\u002Fhosting\u002Fdocs\u002Fguides\u002Fcontainer-registries",{"title":298,"icon":287,"path":299,"stem":300,"children":301,"page":287},"Platform","\u002Fhosting\u002Fdocs\u002Fplatform","en\u002F1.docs\u002F2.platform",[302,322,389,428],{"title":275,"path":303,"stem":304,"children":305,"icon":287},"\u002Fhosting\u002Fdocs\u002Fplatform\u002Fintroduction","en\u002F1.docs\u002F2.platform\u002F1.introduction\u002F1.index",[306,309,314,319],{"title":307,"path":303,"stem":304,"icon":308,"children":-1},"Overview","i-lucide-cloud",{"title":310,"path":311,"stem":312,"icon":313,"children":-1},"Use Cases","\u002Fhosting\u002Fdocs\u002Fplatform\u002Fintroduction\u002Fwhen-to-use","en\u002F1.docs\u002F2.platform\u002F1.introduction\u002F2.when-to-use","i-lucide-compass",{"title":315,"path":316,"stem":317,"icon":318,"children":-1},"Features","\u002Fhosting\u002Fdocs\u002Fplatform\u002Fintroduction\u002Fwhat-you-get","en\u002F1.docs\u002F2.platform\u002F1.introduction\u002F3.what-you-get","i-lucide-package-check",{"title":278,"path":320,"stem":321,"icon":281,"children":-1},"\u002Fhosting\u002Fdocs\u002Fplatform\u002Fintroduction\u002Fget-started","en\u002F1.docs\u002F2.platform\u002F1.introduction\u002F4.get-started",{"title":323,"path":324,"stem":325,"children":326,"icon":287},"Web Services","\u002Fhosting\u002Fdocs\u002Fplatform\u002Fweb-services","en\u002F1.docs\u002F2.platform\u002F2.web-services\u002F01.index",[327,330,335,340,344,349,354,359,364,369,374,379,384],{"title":328,"path":324,"stem":325,"icon":329,"children":-1},"Source Options","i-lucide-app-window",{"title":331,"path":332,"stem":333,"icon":334,"children":-1},"Build Strategies","\u002Fhosting\u002Fdocs\u002Fplatform\u002Fweb-services\u002Fbuild-strategies","en\u002F1.docs\u002F2.platform\u002F2.web-services\u002F02.build-strategies","i-lucide-hammer",{"title":336,"path":337,"stem":338,"icon":339,"children":-1},"Configuration","\u002Fhosting\u002Fdocs\u002Fplatform\u002Fweb-services\u002Fconfiguration","en\u002F1.docs\u002F2.platform\u002F2.web-services\u002F03.configuration","i-lucide-settings",{"title":341,"path":342,"stem":343,"icon":281,"children":-1},"Deploying","\u002Fhosting\u002Fdocs\u002Fplatform\u002Fweb-services\u002Fdeploying","en\u002F1.docs\u002F2.platform\u002F2.web-services\u002F04.deploying",{"title":345,"path":346,"stem":347,"icon":348,"children":-1},"Scaling","\u002Fhosting\u002Fdocs\u002Fplatform\u002Fweb-services\u002Fscaling","en\u002F1.docs\u002F2.platform\u002F2.web-services\u002F05.scaling","i-lucide-scaling",{"title":350,"path":351,"stem":352,"icon":353,"children":-1},"Domains","\u002Fhosting\u002Fdocs\u002Fplatform\u002Fweb-services\u002Fdomains","en\u002F1.docs\u002F2.platform\u002F2.web-services\u002F06.domains","i-lucide-globe",{"title":355,"path":356,"stem":357,"icon":358,"children":-1},"Service Networking","\u002Fhosting\u002Fdocs\u002Fplatform\u002Fweb-services\u002Fconnecting-services","en\u002F1.docs\u002F2.platform\u002F2.web-services\u002F07.connecting-services","i-lucide-network",{"title":360,"path":361,"stem":362,"icon":363,"children":-1},"Env Variables","\u002Fhosting\u002Fdocs\u002Fplatform\u002Fweb-services\u002Fenvironment-variables","en\u002F1.docs\u002F2.platform\u002F2.web-services\u002F08.environment-variables","i-lucide-key-round",{"title":365,"path":366,"stem":367,"icon":368,"children":-1},"Storage","\u002Fhosting\u002Fdocs\u002Fplatform\u002Fweb-services\u002Fpersistent-storage","en\u002F1.docs\u002F2.platform\u002F2.web-services\u002F09.persistent-storage","i-lucide-hard-drive",{"title":370,"path":371,"stem":372,"icon":373,"children":-1},"Defaults","\u002Fhosting\u002Fdocs\u002Fplatform\u002Fweb-services\u002Flimits","en\u002F1.docs\u002F2.platform\u002F2.web-services\u002F10.limits","i-lucide-gauge",{"title":375,"path":376,"stem":377,"icon":378,"children":-1},"Billing","\u002Fhosting\u002Fdocs\u002Fplatform\u002Fweb-services\u002Fbilling","en\u002F1.docs\u002F2.platform\u002F2.web-services\u002F11.billing","i-lucide-credit-card",{"title":380,"path":381,"stem":382,"icon":383,"children":-1},"Shell","\u002Fhosting\u002Fdocs\u002Fplatform\u002Fweb-services\u002Fshell","en\u002F1.docs\u002F2.platform\u002F2.web-services\u002F12.shell","i-lucide-square-terminal",{"title":385,"path":386,"stem":387,"icon":388,"children":-1},"Drop a Site","\u002Fhosting\u002Fdocs\u002Fplatform\u002Fweb-services\u002Fdrop","en\u002F1.docs\u002F2.platform\u002F2.web-services\u002F13.drop","i-lucide-upload",{"title":390,"path":391,"stem":392,"children":393,"icon":287},"Databases","\u002Fhosting\u002Fdocs\u002Fplatform\u002Fdatabases","en\u002F1.docs\u002F2.platform\u002F3.databases\u002F1.index",[394,397,402,407,412,415,420,425],{"title":395,"path":391,"stem":392,"icon":396,"children":-1},"Templates","i-lucide-database",{"title":398,"path":399,"stem":400,"icon":401,"children":-1},"Create","\u002Fhosting\u002Fdocs\u002Fplatform\u002Fdatabases\u002Fcreate","en\u002F1.docs\u002F2.platform\u002F3.databases\u002F2.create","i-lucide-plus",{"title":403,"path":404,"stem":405,"icon":406,"children":-1},"Connect","\u002Fhosting\u002Fdocs\u002Fplatform\u002Fdatabases\u002Fconnect","en\u002F1.docs\u002F2.platform\u002F3.databases\u002F3.connect","i-lucide-plug",{"title":408,"path":409,"stem":410,"icon":411,"children":-1},"Public Access","\u002Fhosting\u002Fdocs\u002Fplatform\u002Fdatabases\u002Fpublic-access","en\u002F1.docs\u002F2.platform\u002F3.databases\u002F4.public-access","i-lucide-radio-tower",{"title":365,"path":413,"stem":414,"icon":368,"children":-1},"\u002Fhosting\u002Fdocs\u002Fplatform\u002Fdatabases\u002Fstorage","en\u002F1.docs\u002F2.platform\u002F3.databases\u002F5.storage",{"title":416,"path":417,"stem":418,"icon":419,"children":-1},"Management","\u002Fhosting\u002Fdocs\u002Fplatform\u002Fdatabases\u002Fmanagement","en\u002F1.docs\u002F2.platform\u002F3.databases\u002F6.management","i-lucide-sliders-horizontal",{"title":421,"path":422,"stem":423,"icon":424,"children":-1},"Operations","\u002Fhosting\u002Fdocs\u002Fplatform\u002Fdatabases\u002Foperational-notes","en\u002F1.docs\u002F2.platform\u002F3.databases\u002F7.operational-notes","i-lucide-clipboard-list",{"title":375,"path":426,"stem":427,"icon":378,"children":-1},"\u002Fhosting\u002Fdocs\u002Fplatform\u002Fdatabases\u002Fbilling","en\u002F1.docs\u002F2.platform\u002F3.databases\u002F8.billing",{"title":289,"path":429,"stem":430,"children":431,"icon":287},"\u002Fhosting\u002Fdocs\u002Fplatform\u002Fguides","en\u002F1.docs\u002F2.platform\u002F4.guides\u002F1.index",[432,433],{"title":289,"path":429,"stem":430,"icon":294,"children":-1},{"title":434,"path":435,"stem":436,"icon":437,"children":-1},"Hermes Agent","\u002Fhosting\u002Fdocs\u002Fplatform\u002Fguides\u002Fsetup-hermes-agent","en\u002F1.docs\u002F2.platform\u002F4.guides\u002F2.setup-hermes-agent","i-lucide-bot",{"title":439,"path":440,"stem":441,"children":442,"icon":287},"App Services","\u002Fhosting\u002Fdocs\u002Fapp-services","en\u002F1.docs\u002F3.app-services\u002F1.index",[443,444,448,452,456,461],{"title":439,"path":440,"stem":441,"icon":281,"children":-1},{"title":445,"path":446,"stem":447,"icon":339,"children":-1},"Build Settings","\u002Fhosting\u002Fdocs\u002Fapp-services\u002Fbuild-settings","en\u002F1.docs\u002F3.app-services\u002F2.build-settings",{"title":360,"path":449,"stem":450,"icon":451,"children":-1},"\u002Fhosting\u002Fdocs\u002Fapp-services\u002Fenvironment-variables","en\u002F1.docs\u002F3.app-services\u002F3.environment-variables","i-lucide-key",{"title":453,"path":454,"stem":455,"icon":353,"children":-1},"Custom Domains","\u002Fhosting\u002Fdocs\u002Fapp-services\u002Fcustom-domains","en\u002F1.docs\u002F3.app-services\u002F4.custom-domains",{"title":457,"path":458,"stem":459,"icon":460,"children":-1},"Health Checks","\u002Fhosting\u002Fdocs\u002Fapp-services\u002Fhealth-checks","en\u002F1.docs\u002F3.app-services\u002F5.health-checks","i-lucide-heart-pulse",{"title":462,"path":463,"stem":464,"icon":348,"children":-1},"Autoscaling","\u002Fhosting\u002Fdocs\u002Fapp-services\u002Fautoscaling","en\u002F1.docs\u002F3.app-services\u002F6.autoscaling",{"title":466,"path":467,"stem":468,"children":469,"icon":287},"Helm Releases","\u002Fhosting\u002Fdocs\u002Fhelm-releases","en\u002F1.docs\u002F4.helm-releases\u002F1.index",[470,472,476,481,485,490,494,499],{"title":466,"path":467,"stem":468,"icon":471,"children":-1},"i-lucide-package",{"title":473,"path":474,"stem":475,"icon":396,"children":-1},"Deploy PostgreSQL","\u002Fhosting\u002Fdocs\u002Fhelm-releases\u002Fdeploy-postgresql","en\u002F1.docs\u002F4.helm-releases\u002F2.deploy-postgresql",{"title":477,"path":478,"stem":479,"icon":480,"children":-1},"Deploy Redis","\u002Fhosting\u002Fdocs\u002Fhelm-releases\u002Fdeploy-redis","en\u002F1.docs\u002F4.helm-releases\u002F3.deploy-redis","i-lucide-zap",{"title":482,"path":483,"stem":484,"icon":480,"children":-1},"Deploy Valkey","\u002Fhosting\u002Fdocs\u002Fhelm-releases\u002Fdeploy-valkey","en\u002F1.docs\u002F4.helm-releases\u002F3.deploy-valkey",{"title":486,"path":487,"stem":488,"icon":489,"children":-1},"Deploy n8n","\u002Fhosting\u002Fdocs\u002Fhelm-releases\u002Fdeploy-n8n","en\u002F1.docs\u002F4.helm-releases\u002F4.deploy-n8n","i-lucide-workflow",{"title":491,"path":492,"stem":493,"icon":368,"children":-1},"Deploy RustFS","\u002Fhosting\u002Fdocs\u002Fhelm-releases\u002Fdeploy-rustfs","en\u002F1.docs\u002F4.helm-releases\u002F5.deploy-rustfs",{"title":495,"path":496,"stem":497,"icon":498,"children":-1},"Deploy OpenSearch","\u002Fhosting\u002Fdocs\u002Fhelm-releases\u002Fdeploy-opensearch","en\u002F1.docs\u002F4.helm-releases\u002F6.deploy-opensearch","i-lucide-search",{"title":500,"path":501,"stem":502,"icon":503,"children":-1},"Deploy Keycloak","\u002Fhosting\u002Fdocs\u002Fhelm-releases\u002Fdeploy-keycloak","en\u002F1.docs\u002F4.helm-releases\u002F7.deploy-keycloak","i-lucide-shield-check",{"title":505,"path":506,"stem":507,"children":508,"icon":287},"Glossary","\u002Fhosting\u002Fdocs\u002Fglossary","en\u002F1.docs\u002F5.glossary\u002F1.index",[509],{"title":505,"path":506,"stem":507,"icon":510,"children":-1},"i-lucide-book-a",[512,515],{"title":289,"path":513,"stem":291,"description":514,"icon":294,"children":-1},"\u002Fen\u002Fdocs\u002Fguides","Step-by-step tutorials for databases, services, and configurations on lowcloud.",{"title":307,"path":516,"stem":304,"description":517,"icon":308,"children":-1},"\u002Fen\u002Fdocs\u002Fplatform\u002Fintroduction","Deploy apps and databases on lowcloud's managed European platform without setting up infrastructure or a cloud account.",1791184611004]