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
This commit is contained in:
@@ -1353,8 +1353,9 @@ export function createCli(serverHandler?: (port?: number) => Promise<void>): Com
|
||||
phaseId: options.phase,
|
||||
});
|
||||
console.log(`Preview started: ${preview.id}`);
|
||||
console.log(` URL: http://localhost:${preview.port}`);
|
||||
console.log(` URL: ${preview.url}`);
|
||||
console.log(` Branch: ${preview.branch}`);
|
||||
console.log(` Mode: ${preview.mode}`);
|
||||
console.log(` Status: ${preview.status}`);
|
||||
console.log(` Services: ${preview.services.map(s => `${s.name} (${s.state})`).join(', ')}`);
|
||||
} catch (error) {
|
||||
@@ -1394,7 +1395,7 @@ export function createCli(serverHandler?: (port?: number) => Promise<void>): Com
|
||||
return;
|
||||
}
|
||||
for (const p of previews) {
|
||||
console.log(`${p.id} http://localhost:${p.port} ${p.branch} [${p.status.toUpperCase()}]`);
|
||||
console.log(`${p.id} ${p.url} ${p.branch} ${p.mode} [${p.status.toUpperCase()}]`);
|
||||
}
|
||||
} catch (error) {
|
||||
console.error('Failed to list previews:', (error as Error).message);
|
||||
@@ -1415,8 +1416,9 @@ export function createCli(serverHandler?: (port?: number) => Promise<void>): Com
|
||||
return;
|
||||
}
|
||||
console.log(`Preview: ${preview.id}`);
|
||||
console.log(` URL: http://localhost:${preview.port}`);
|
||||
console.log(` URL: ${preview.url}`);
|
||||
console.log(` Branch: ${preview.branch}`);
|
||||
console.log(` Mode: ${preview.mode}`);
|
||||
console.log(` Status: ${preview.status}`);
|
||||
console.log(` Initiative: ${preview.initiativeId}`);
|
||||
console.log(` Project: ${preview.projectId}`);
|
||||
|
||||
Reference in New Issue
Block a user