0002: Our own proxy instead of nginx or Caddy
Status: accepted
Context
Section titled “Context”Sites need TLS by SNI with certificates issued on demand, FastCGI to PHP, proxying to dev servers with WebSockets, request recording, and a share listener with access rules.
Decision
Section titled “Decision”Write the proxy in Rust with hyper, rustls and fastcgi-client, inside devkitd. PHP requests go through a Valet-derived server.php for framework compatibility.
Consequences
Section titled “Consequences”One process to supervise and no config files to generate or reload. Request recording and access rules are ordinary code with tests. We own HTTP edge cases ourselves.