Files
Codewalkers/apps/server/preview/index.ts
Lukas May 143aad58e8 feat: Replace per-preview Caddy sidecars with shared gateway architecture
Refactor preview deployments to use a single shared Caddy gateway container
with subdomain routing (<previewId>.localhost:<port>) instead of one Caddy
sidecar and one port per preview. Adds dev/preview modes, git worktree
support for branch checkouts, and auto-start on phase:pending_review.

- Add GatewayManager for shared Caddy lifecycle + Caddyfile generation
- Add git worktree helpers for preview mode branch checkouts
- Add dev mode: volume-mount + dev server image instead of build
- Remove per-preview Caddy sidecar and port publishing
- Use shared cw-preview-net Docker network with container name DNS
- Auto-start previews when phase enters pending_review
- Delete unused PreviewPanel.tsx
- Update all tests (40 pass), docs, events, CLI, tRPC, frontend
2026-03-05 12:22:29 +01:00

47 lines
1.0 KiB
TypeScript

/**
* Preview Module — Barrel Exports
*/
export { PreviewManager } from './manager.js';
export { discoverConfig, parseCwPreviewConfig } from './config-reader.js';
export {
generateComposeFile,
generateLabels,
} from './compose-generator.js';
export {
GatewayManager,
generateGatewayCaddyfile,
} from './gateway.js';
export type { GatewayRoute } from './gateway.js';
export {
createPreviewWorktree,
removePreviewWorktree,
} from './worktree.js';
export {
isDockerAvailable,
composeUp,
composeDown,
composePs,
listPreviewProjects,
getContainerLabels,
ensureDockerNetwork,
removeDockerNetwork,
dockerNetworkExists,
} from './docker-client.js';
export { waitForHealthy } from './health-checker.js';
export { allocatePort } from './port-allocator.js';
export type {
PreviewConfig,
PreviewServiceConfig,
PreviewServiceDevConfig,
PreviewStatus,
StartPreviewOptions,
HealthResult,
} from './types.js';
export {
PREVIEW_LABELS,
COMPOSE_PROJECT_PREFIX,
GATEWAY_PROJECT_NAME,
GATEWAY_NETWORK,
} from './types.js';