/claim #7743

Problem

The nginx TCP proxy for publicly exposed databases uses the default proxy_timeout of 10 minutes. This causes long-running queries and idle database connections to be dropped unexpectedly — a significant issue for production workloads.

Solution

Added a dedicated “Proxy Timeout (seconds)” field to all 8 database types, as requested by @zachlatta in the issue discussion.

How it works

  • Default: 0 (no timeout) — maps to proxy_timeout 365d in nginx, effectively disabling the idle timeout
  • Custom value — any positive integer sets the timeout in seconds (e.g., 3600 = 1 hour)
  • Also adds proxy_connect_timeout 60s for connection establishment

Changes

New file:

  • database/migrations/2026_02_18_000001_add_public_proxy_timeout_to_database_tables.php — adds public_proxy_timeout (integer, default 0) to all 9 database tables

Modified (17 files):

  • app/Actions/Database/StartDatabaseProxy.php — reads timeout value and sets proxy_timeout + proxy_connect_timeout in nginx stream config
  • 8 Livewire components (Clickhouse, Dragonfly, KeyDB, MariaDB, MongoDB, MySQL, PostgreSQL, Redis) — adds property, validation rule, and model sync
  • 8 Blade templates — adds the timeout input field in the Proxy section

Design decisions

  • Simple integer field in seconds — per @zachlatta’s preference for a dedicated timeout field with a default
  • Consistent across all database types — applied uniformly to all 8 standalone types + service databases
  • Backward compatible — default of 0 (no timeout) means existing databases work better than before with no action needed
  • Minimal footprint — 129 lines added, 0 removed, no new dependencies

Testing

  • All PHP files pass syntax validation
  • Nginx config generation verified to produce valid stream block with timeout directives
  • Migration includes proper rollback support

Closes #7743

Claim

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

Contributors

CR

Cristol

@manas-io-ai

100%

Sponsors

ZA

Zach Latta

@zachlatta

$100