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