Changes

Adds a configurable proxy timeout for publicly-exposed database TCP proxies. Previously hardcoded to nginx’s default of 10 minutes, which causes long-running queries and idle connections to get dropped unexpectedly.

  • New proxy_timeout column on all database models (default: 3600s)
  • Timeout value flows into the nginx stream config when starting the DB proxy
  • UI field on all 8 database types (Postgres, MySQL, MariaDB, MongoDB, Redis, KeyDB, Dragonfly, ClickHouse)
  • Min value validation (1 second) to prevent misconfiguration
  • Migration adds the column with a sane default

/claim #7743

Issues

  • fixes: #7743

Category

  • New feature

Screenshots or Video (if applicable)

1 of 2: Verifying default timeout value of 3600 and updating to 7200 and saving

https://github.com/user-attachments/assets/8b1e8946-8faa-447c-b80e-55c6fb6c3126

2 of 2: Enabling “Make it publicly available” + verification of nginx stream config being updated.

https://github.com/user-attachments/assets/cf5dd8d8-43d8-4e9f-a110-c309522703b9

Testing the proxy timeout field in local dev environment:

  • Created a PostgreSQL database
  • Set public port to 5432
  • Changed proxy timeout from default to 7200
  • Value saves and persists on page refresh

AI Usage

  • AI is NOT used in the process of creating this PR

Steps to Test

  • Step 1 – spin up to start the dev environment, login at localhost:8000 with test@example.com / password
  • Step 2 – Create any database resource (e.g. PostgreSQL)
  • Step 3 – Scroll to the Proxy section, set a Public Port (e.g. 5432)
  • Step 4 – Verify the “Proxy Timeout (seconds)” field appears with default value 3600
  • Step 5 – Change the timeout to a different value (e.g. 7200), save
  • Step 6 – Refresh the page, confirm the value persists
  • Step 7 – Check “Make it publicly available”, verify the proxy starts with the configured timeout in the nginx stream config

Contributor Agreement

[!IMPORTANT]

  • I have read and understood the contributor guidelines. If I have failed to follow any guideline, I understand that this PR may be closed without review.
  • I have tested the changes thoroughly and am confident that they will work as expected without issues when the maintainer tests them

Claim

Total prize pool $100
Total paid $0
Status Pending
Submitted February 28, 2026
Last updated February 28, 2026

Contributors

BR

Brendan G. Lim

@brendanlim

100%

Sponsors

ZA

Zach Latta

@zachlatta

$100