[{"data":1,"prerenderedAt":441},["ShallowReactive",2],{"navigation":3,"docs-layout-en":4,"docs-navigation-en":19,"\u002Fen\u002Fdocs\u002Fplatform\u002Fdatabases\u002Fpublic-access":241,"\u002Fen\u002Fdocs\u002Fplatform\u002Fdatabases\u002Fpublic-access-surround":436},[],{"id":5,"title":6,"body":7,"description":7,"extension":8,"meta":9,"modeLinks":10,"navigation":14,"path":15,"seo":16,"stem":17,"__hash__":18},"docsLayout\u002Fen\u002Fdocs.yml","Docs",null,"yml",{},{"backToPlatform":11,"toByocPrompt":12,"toByocLabel":13},"← Back to Platform docs","Self-hosting on your own infrastructure?","Enterprise BYOC docs →",true,"\u002Fen\u002Fdocs",{},"en\u002Fdocs","5EHySMJ06xn5wrfUlSXAe9QZIXVUQrh-zFF3TLFhUPM",[20,39,51,167,195,234],{"title":21,"path":22,"stem":23,"children":24,"icon":38},"Getting Started","\u002Fen\u002Fdocs\u002Fgetting-started","en\u002F1.docs\u002F1.getting-started\u002F1.index",[25,28,33],{"title":26,"path":22,"stem":23,"icon":27},"Introduction","i-lucide-house",{"title":29,"path":30,"stem":31,"icon":32},"Get Started","\u002Fen\u002Fdocs\u002Fgetting-started\u002Fget-started","en\u002F1.docs\u002F1.getting-started\u002F2.get-started","i-lucide-rocket",{"title":34,"path":35,"stem":36,"icon":37},"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":40,"path":41,"stem":42,"children":43,"icon":38},"Guides","\u002Fen\u002Fdocs\u002Fguides","en\u002F1.docs\u002F2.guides\u002F1.index",[44,46],{"title":40,"path":41,"stem":42,"icon":45},"i-lucide-book-open",{"title":47,"path":48,"stem":49,"icon":50},"Connect a Container Registry","\u002Fen\u002Fdocs\u002Fguides\u002Fcontainer-registries","en\u002F1.docs\u002F2.guides\u002F2.container-registries","i-lucide-container",{"title":52,"icon":38,"path":53,"stem":54,"children":55,"page":38},"Platform","\u002Fen\u002Fdocs\u002Fplatform","en\u002F1.docs\u002F2.platform",[56,76,128],{"title":26,"path":57,"stem":58,"children":59,"icon":38},"\u002Fen\u002Fdocs\u002Fplatform\u002Fintroduction","en\u002F1.docs\u002F2.platform\u002F1.introduction\u002F1.index",[60,63,68,73],{"title":61,"path":57,"stem":58,"icon":62},"Overview","i-lucide-cloud",{"title":64,"path":65,"stem":66,"icon":67},"Use Cases","\u002Fen\u002Fdocs\u002Fplatform\u002Fintroduction\u002Fwhen-to-use","en\u002F1.docs\u002F2.platform\u002F1.introduction\u002F2.when-to-use","i-lucide-compass",{"title":69,"path":70,"stem":71,"icon":72},"Features","\u002Fen\u002Fdocs\u002Fplatform\u002Fintroduction\u002Fwhat-you-get","en\u002F1.docs\u002F2.platform\u002F1.introduction\u002F3.what-you-get","i-lucide-package-check",{"title":29,"path":74,"stem":75,"icon":32},"\u002Fen\u002Fdocs\u002Fplatform\u002Fintroduction\u002Fget-started","en\u002F1.docs\u002F2.platform\u002F1.introduction\u002F4.get-started",{"title":77,"path":78,"stem":79,"children":80,"icon":38},"Web Services","\u002Fen\u002Fdocs\u002Fplatform\u002Fweb-services","en\u002F1.docs\u002F2.platform\u002F2.web-services\u002F01.index",[81,84,89,94,98,103,108,113,118,123],{"title":82,"path":78,"stem":79,"icon":83},"Source Options","i-lucide-app-window",{"title":85,"path":86,"stem":87,"icon":88},"Build Strategies","\u002Fen\u002Fdocs\u002Fplatform\u002Fweb-services\u002Fbuild-strategies","en\u002F1.docs\u002F2.platform\u002F2.web-services\u002F02.build-strategies","i-lucide-hammer",{"title":90,"path":91,"stem":92,"icon":93},"Configuration","\u002Fen\u002Fdocs\u002Fplatform\u002Fweb-services\u002Fconfiguration","en\u002F1.docs\u002F2.platform\u002F2.web-services\u002F03.configuration","i-lucide-settings",{"title":95,"path":96,"stem":97,"icon":32},"Deploying","\u002Fen\u002Fdocs\u002Fplatform\u002Fweb-services\u002Fdeploying","en\u002F1.docs\u002F2.platform\u002F2.web-services\u002F04.deploying",{"title":99,"path":100,"stem":101,"icon":102},"Domains","\u002Fen\u002Fdocs\u002Fplatform\u002Fweb-services\u002Fdomains","en\u002F1.docs\u002F2.platform\u002F2.web-services\u002F05.domains","i-lucide-globe",{"title":104,"path":105,"stem":106,"icon":107},"Service Networking","\u002Fen\u002Fdocs\u002Fplatform\u002Fweb-services\u002Fconnecting-services","en\u002F1.docs\u002F2.platform\u002F2.web-services\u002F06.connecting-services","i-lucide-network",{"title":109,"path":110,"stem":111,"icon":112},"Env Variables","\u002Fen\u002Fdocs\u002Fplatform\u002Fweb-services\u002Fenvironment-variables","en\u002F1.docs\u002F2.platform\u002F2.web-services\u002F07.environment-variables","i-lucide-key-round",{"title":114,"path":115,"stem":116,"icon":117},"Storage","\u002Fen\u002Fdocs\u002Fplatform\u002Fweb-services\u002Fpersistent-storage","en\u002F1.docs\u002F2.platform\u002F2.web-services\u002F08.persistent-storage","i-lucide-hard-drive",{"title":119,"path":120,"stem":121,"icon":122},"Defaults","\u002Fen\u002Fdocs\u002Fplatform\u002Fweb-services\u002Flimits","en\u002F1.docs\u002F2.platform\u002F2.web-services\u002F09.limits","i-lucide-gauge",{"title":124,"path":125,"stem":126,"icon":127},"Billing","\u002Fen\u002Fdocs\u002Fplatform\u002Fweb-services\u002Fbilling","en\u002F1.docs\u002F2.platform\u002F2.web-services\u002F10.billing","i-lucide-credit-card",{"title":129,"path":130,"stem":131,"children":132,"icon":38},"Databases","\u002Fen\u002Fdocs\u002Fplatform\u002Fdatabases","en\u002F1.docs\u002F2.platform\u002F3.databases\u002F1.index",[133,136,141,146,151,154,159,164],{"title":134,"path":130,"stem":131,"icon":135},"Templates","i-lucide-database",{"title":137,"path":138,"stem":139,"icon":140},"Create","\u002Fen\u002Fdocs\u002Fplatform\u002Fdatabases\u002Fcreate","en\u002F1.docs\u002F2.platform\u002F3.databases\u002F2.create","i-lucide-plus",{"title":142,"path":143,"stem":144,"icon":145},"Connect","\u002Fen\u002Fdocs\u002Fplatform\u002Fdatabases\u002Fconnect","en\u002F1.docs\u002F2.platform\u002F3.databases\u002F3.connect","i-lucide-plug",{"title":147,"path":148,"stem":149,"icon":150},"Public Access","\u002Fen\u002Fdocs\u002Fplatform\u002Fdatabases\u002Fpublic-access","en\u002F1.docs\u002F2.platform\u002F3.databases\u002F4.public-access","i-lucide-radio-tower",{"title":114,"path":152,"stem":153,"icon":117},"\u002Fen\u002Fdocs\u002Fplatform\u002Fdatabases\u002Fstorage","en\u002F1.docs\u002F2.platform\u002F3.databases\u002F5.storage",{"title":155,"path":156,"stem":157,"icon":158},"Management","\u002Fen\u002Fdocs\u002Fplatform\u002Fdatabases\u002Fmanagement","en\u002F1.docs\u002F2.platform\u002F3.databases\u002F6.management","i-lucide-sliders-horizontal",{"title":160,"path":161,"stem":162,"icon":163},"Operations","\u002Fen\u002Fdocs\u002Fplatform\u002Fdatabases\u002Foperational-notes","en\u002F1.docs\u002F2.platform\u002F3.databases\u002F7.operational-notes","i-lucide-clipboard-list",{"title":124,"path":165,"stem":166,"icon":127},"\u002Fen\u002Fdocs\u002Fplatform\u002Fdatabases\u002Fbilling","en\u002F1.docs\u002F2.platform\u002F3.databases\u002F8.billing",{"title":168,"path":169,"stem":170,"children":171,"icon":38},"App Services","\u002Fen\u002Fdocs\u002Fapp-services","en\u002F1.docs\u002F3.app-services\u002F1.index",[172,173,177,181,185,190],{"title":168,"path":169,"stem":170,"icon":32},{"title":174,"path":175,"stem":176,"icon":93},"Build Settings","\u002Fen\u002Fdocs\u002Fapp-services\u002Fbuild-settings","en\u002F1.docs\u002F3.app-services\u002F2.build-settings",{"title":109,"path":178,"stem":179,"icon":180},"\u002Fen\u002Fdocs\u002Fapp-services\u002Fenvironment-variables","en\u002F1.docs\u002F3.app-services\u002F3.environment-variables","i-lucide-key",{"title":182,"path":183,"stem":184,"icon":102},"Custom Domains","\u002Fen\u002Fdocs\u002Fapp-services\u002Fcustom-domains","en\u002F1.docs\u002F3.app-services\u002F4.custom-domains",{"title":186,"path":187,"stem":188,"icon":189},"Health Checks","\u002Fen\u002Fdocs\u002Fapp-services\u002Fhealth-checks","en\u002F1.docs\u002F3.app-services\u002F5.health-checks","i-lucide-heart-pulse",{"title":191,"path":192,"stem":193,"icon":194},"Autoscaling","\u002Fen\u002Fdocs\u002Fapp-services\u002Fautoscaling","en\u002F1.docs\u002F3.app-services\u002F6.autoscaling","i-lucide-scaling",{"title":196,"path":197,"stem":198,"children":199,"icon":38},"Helm Releases","\u002Fen\u002Fdocs\u002Fhelm-releases","en\u002F1.docs\u002F4.helm-releases\u002F1.index",[200,202,206,211,215,220,224,229],{"title":196,"path":197,"stem":198,"icon":201},"i-lucide-package",{"title":203,"path":204,"stem":205,"icon":135},"Deploy PostgreSQL","\u002Fen\u002Fdocs\u002Fhelm-releases\u002Fdeploy-postgresql","en\u002F1.docs\u002F4.helm-releases\u002F2.deploy-postgresql",{"title":207,"path":208,"stem":209,"icon":210},"Deploy Redis","\u002Fen\u002Fdocs\u002Fhelm-releases\u002Fdeploy-redis","en\u002F1.docs\u002F4.helm-releases\u002F3.deploy-redis","i-lucide-zap",{"title":212,"path":213,"stem":214,"icon":210},"Deploy Valkey","\u002Fen\u002Fdocs\u002Fhelm-releases\u002Fdeploy-valkey","en\u002F1.docs\u002F4.helm-releases\u002F3.deploy-valkey",{"title":216,"path":217,"stem":218,"icon":219},"Deploy n8n","\u002Fen\u002Fdocs\u002Fhelm-releases\u002Fdeploy-n8n","en\u002F1.docs\u002F4.helm-releases\u002F4.deploy-n8n","i-lucide-workflow",{"title":221,"path":222,"stem":223,"icon":117},"Deploy RustFS","\u002Fen\u002Fdocs\u002Fhelm-releases\u002Fdeploy-rustfs","en\u002F1.docs\u002F4.helm-releases\u002F5.deploy-rustfs",{"title":225,"path":226,"stem":227,"icon":228},"Deploy OpenSearch","\u002Fen\u002Fdocs\u002Fhelm-releases\u002Fdeploy-opensearch","en\u002F1.docs\u002F4.helm-releases\u002F6.deploy-opensearch","i-lucide-search",{"title":230,"path":231,"stem":232,"icon":233},"Deploy Keycloak","\u002Fen\u002Fdocs\u002Fhelm-releases\u002Fdeploy-keycloak","en\u002F1.docs\u002F4.helm-releases\u002F7.deploy-keycloak","i-lucide-shield-check",{"title":235,"path":236,"stem":237,"children":238,"icon":38},"Glossary","\u002Fen\u002Fdocs\u002Fglossary","en\u002F1.docs\u002F5.glossary\u002F1.index",[239],{"title":235,"path":236,"stem":237,"icon":240},"i-lucide-book-a",{"id":242,"title":243,"body":244,"description":429,"extension":430,"lastUpdated":431,"meta":432,"navigation":433,"path":148,"seo":434,"stem":149,"__hash__":435},"docs\u002Fen\u002F1.docs\u002F2.platform\u002F3.databases\u002F4.public-access.md","Public Access via TCP Proxy",{"type":245,"value":246,"toc":421},"minimark",[247,252,266,270,280,290,293,297,303,310,336,347,351,383,386,392,407,411,417],[248,249,251],"h2",{"id":250},"public-access-via-tcp-proxy","Public access via TCP proxy",[253,254,255,256,260,261,265],"p",{},"Databases on lowcloud Platform are private by default. When you need to connect from outside the project, for example to run a migration from your laptop, plug in a BI tool, or open a SQL client from CI, turn on ",[257,258,259],"strong",{},"External Access",". lowcloud gives you a public ",[262,263,264],"code",{},"host:port"," you can connect to.",[248,267,269],{"id":268},"enable","Enable",[253,271,272,273,276,277,279],{},"Open the database service, go to ",[257,274,275],{},"Settings",", and switch ",[257,278,259],{}," on. lowcloud allocates an available TCP port and shows your public address:",[281,282,287],"pre",{"className":283,"code":285,"language":286},[284],"language-text","proxy.lowcloud.co:14523\n","text",[262,288,285],{"__ignoreMap":289},"",[253,291,292],{},"The port stays stable as long as External Access is enabled.",[248,294,296],{"id":295},"connect-to-postgresql","Connect to PostgreSQL",[281,298,301],{"className":299,"code":300,"language":286},[284],"postgresql:\u002F\u002Fmyuser:\u003Cpassword>@proxy.lowcloud.co:14523\u002Fmyapp?sslmode=require\n",[262,302,300],{"__ignoreMap":289},[253,304,305,306,309],{},"Or with ",[262,307,308],{},"psql",":",[281,311,315],{"className":312,"code":313,"language":314,"meta":289,"style":289},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","psql \"host=proxy.lowcloud.co port=14523 dbname=myapp user=myuser sslmode=require\"\n","bash",[262,316,317],{"__ignoreMap":289},[318,319,322,325,329,333],"span",{"class":320,"line":321},"line",1,[318,323,308],{"class":324},"sBMFI",[318,326,328],{"class":327},"sMK4o"," \"",[318,330,332],{"class":331},"sfazB","host=proxy.lowcloud.co port=14523 dbname=myapp user=myuser sslmode=require",[318,334,335],{"class":327},"\"\n",[253,337,338,339,342,343,346],{},"The PostgreSQL template uses a self-signed certificate, so use ",[262,340,341],{},"sslmode=require"," rather than ",[262,344,345],{},"verify-full",".",[248,348,350],{"id":349},"connect-to-mariadb","Connect to MariaDB",[281,352,354],{"className":312,"code":353,"language":314,"meta":289,"style":289},"mariadb -h proxy.lowcloud.co -P 14523 -u myuser -p\n",[262,355,356],{"__ignoreMap":289},[318,357,358,361,364,367,370,374,377,380],{"class":320,"line":321},[318,359,360],{"class":324},"mariadb",[318,362,363],{"class":331}," -h",[318,365,366],{"class":331}," proxy.lowcloud.co",[318,368,369],{"class":331}," -P",[318,371,373],{"class":372},"sbssI"," 14523",[318,375,376],{"class":331}," -u",[318,378,379],{"class":331}," myuser",[318,381,382],{"class":331}," -p\n",[253,384,385],{},"Or as a URL:",[281,387,390],{"className":388,"code":389,"language":286},[284],"mysql:\u002F\u002Fmyuser:\u003Cpassword>@proxy.lowcloud.co:14523\u002Fmyapp\n",[262,391,389],{"__ignoreMap":289},[253,393,394,395,398,399,402,403,406],{},"MariaDB 11 encrypts connections by default with a self-signed certificate. Most clients negotiate TLS automatically, so no extra flag is needed. Skip strict server certificate verification (",[262,396,397],{},"--ssl-verify-server-cert"," with a CA bundle, or ",[262,400,401],{},"verify-ca"," \u002F ",[262,404,405],{},"verify-identity"," modes in your driver).",[248,408,410],{"id":409},"disable","Disable",[253,412,413,414,416],{},"Switch External Access off in ",[257,415,275],{},". The public address stops accepting connections; the database stays reachable from inside the project. Re-enabling later gets you a fresh port.",[418,419,420],"style",{},"html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .sbssI, html code.shiki .sbssI{--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C}",{"title":289,"searchDepth":422,"depth":422,"links":423},2,[424,425,426,427,428],{"id":250,"depth":422,"text":251},{"id":268,"depth":422,"text":269},{"id":295,"depth":422,"text":296},{"id":349,"depth":422,"text":350},{"id":409,"depth":422,"text":410},"Expose your database on a dedicated public TCP port for migrations, BI tools, and SQL clients.","md","2026-05-12",{},{"icon":150,"title":147},{"title":243,"description":429},"GUNcjlqCq5prGfxhPUQ6rK5N7_jN-3F21xAqj6EWxqM",[437,439],{"title":142,"path":143,"stem":144,"description":438,"icon":145,"children":-1},"Reach your database from a web service in the same project, with no public exposure.",{"title":114,"path":152,"stem":153,"description":440,"icon":117,"children":-1},"Persistent volumes attached to your database survive restarts, redeploys, and container moves.",1779274510496]