Serve the deployed application with Bun #292

Closed
opened 2026-10-17 02:35:37 +02:00 by nessar · 0 comments
Owner

What to build

The production container delivers the same Angular application
and static assets using Bun's native HTTP server, with working direct navigation,
cache behavior, error handling, and health checks.

Acceptance criteria

  • Replace Express with Bun's native HTTP server and Angular's web request
    engine. Update the server entry/export contract, startup command, and
    callers together; remove Express and its types after checking their uses.
  • Preserve Angular development/build request-handler integration without
    binding an extra listening server when the CLI imports the handler.
  • Preserve the configured rendering modes: current catch-all routes remain
    client-rendered, and leave planning continues in browser Web Workers.
    Direct navigation to the main application and benchmark page works.
  • Preserve static-file delivery, content types, cache behavior, configurable
    port, missing-resource and error handling, and protections against serving
    files outside the public asset root. Do not expose source or server files.
  • Pin both Docker stages to the verified Bun version, use frozen installs,
    retain production-only runtime dependencies, and remove the build's Node
    installation once actual build and server execution under Bun is proven.
  • Add focused HTTP behavior tests for configured routes, direct navigation,
    JavaScript/CSS assets, cache/content-type headers, missing assets, error
    responses, and traversal protection. Test responses rather than internal
    routing or adapter shapes.
  • Build and smoke-test the production container, including startup, configured
    port, and health check, with Node unavailable to project commands. Record
    any container-specific incompatibility as a blocker.
  • Update server/container usage documentation. Work on the shared Bun
    integration branch; integrate these checks into ticket 05's final gate
    without introducing a temporary parallel Express server.

Blocked by

  • #289 — Verify Bun and Angular compatibility
## What to build The production container delivers the same Angular application and static assets using Bun's native HTTP server, with working direct navigation, cache behavior, error handling, and health checks. ## Acceptance criteria - [ ] Replace Express with Bun's native HTTP server and Angular's web request engine. Update the server entry/export contract, startup command, and callers together; remove Express and its types after checking their uses. - [ ] Preserve Angular development/build request-handler integration without binding an extra listening server when the CLI imports the handler. - [ ] Preserve the configured rendering modes: current catch-all routes remain client-rendered, and leave planning continues in browser Web Workers. Direct navigation to the main application and benchmark page works. - [ ] Preserve static-file delivery, content types, cache behavior, configurable port, missing-resource and error handling, and protections against serving files outside the public asset root. Do not expose source or server files. - [ ] Pin both Docker stages to the verified Bun version, use frozen installs, retain production-only runtime dependencies, and remove the build's Node installation once actual build and server execution under Bun is proven. - [ ] Add focused HTTP behavior tests for configured routes, direct navigation, JavaScript/CSS assets, cache/content-type headers, missing assets, error responses, and traversal protection. Test responses rather than internal routing or adapter shapes. - [ ] Build and smoke-test the production container, including startup, configured port, and health check, with Node unavailable to project commands. Record any container-specific incompatibility as a blocker. - [ ] Update server/container usage documentation. Work on the shared Bun integration branch; integrate these checks into ticket 05's final gate without introducing a temporary parallel Express server. ## Blocked by - #289 — Verify Bun and Angular compatibility
nessar added the ready-for-agent label 2026-10-17 02:35:37 +02:00
nessar added a new dependency 2026-10-17 02:35:38 +02:00
nessar added a new dependency 2026-10-17 02:35:38 +02:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Blocks Depends on
Reference: nessar/vac-optimizer#292