feat: add configurable timeout for public database TCP proxy

Adds a per-database 'Proxy Timeout' setting for publicly exposed databases.
The nginx stream proxy_timeout can now be configured in the UI, defaulting
to 3600s (1 hour) instead of nginx's 10min default. Set to 0 for no timeout.

Fixes #7743
This commit is contained in:
Brendan G. Lim
2026-02-26 21:12:58 -08:00
parent 78aea9a7ec
commit 30c1d9bbd0
28 changed files with 150 additions and 0 deletions
@@ -54,6 +54,8 @@ class StartDatabaseProxy
if (isDev()) {
$configuration_dir = '/var/lib/docker/volumes/coolify_dev_coolify_data/_data/databases/'.$database->uuid.'/proxy';
}
$timeout = $database->public_port_timeout ?? 3600;
$timeoutConfig = $timeout === 0 ? 'proxy_timeout 0;' : "proxy_timeout {$timeout}s;";
$nginxconf = <<<EOF
user nginx;
worker_processes auto;
@@ -67,6 +69,8 @@ class StartDatabaseProxy
server {
listen $database->public_port;
proxy_pass $containerName:$internalPort;
$timeoutConfig
proxy_connect_timeout 60s;
}
}
EOF;