diff --git a/Dockerfile b/Dockerfile index 4fff3ab2..d8790405 100644 --- a/Dockerfile +++ b/Dockerfile @@ -19,52 +19,61 @@ RUN bun --bun run build FROM oven/bun:1-slim AS base WORKDIR /app -COPY --from=builder /app/.output ./.output +COPY --from=builder /app/out/web ./out/web COPY --from=builder /app/package.json ./ ENV NODE_ENV=production ENV NITRO_HOST=0.0.0.0 ENV NITRO_PORT=3000 EXPOSE 3000 -CMD ["bun", "run", "./.output/server/index.mjs"] +CMD ["bun", "run", "./out/web/server/index.mjs"] # ── CLI variants ── FROM oven/bun:1 AS with-claude WORKDIR /app -COPY --from=builder /app/.output ./.output +COPY --from=builder /app/out/web ./out/web COPY --from=builder /app/package.json ./ RUN bun install -g @anthropic-ai/claude-code ENV NODE_ENV=production NITRO_HOST=0.0.0.0 NITRO_PORT=3000 EXPOSE 3000 -CMD ["bun", "run", "./.output/server/index.mjs"] +CMD ["bun", "run", "./out/web/server/index.mjs"] FROM oven/bun:1 AS with-codex WORKDIR /app -COPY --from=builder /app/.output ./.output +COPY --from=builder /app/out/web ./out/web COPY --from=builder /app/package.json ./ RUN bun install -g @openai/codex ENV NODE_ENV=production NITRO_HOST=0.0.0.0 NITRO_PORT=3000 EXPOSE 3000 -CMD ["bun", "run", "./.output/server/index.mjs"] +CMD ["bun", "run", "./out/web/server/index.mjs"] FROM oven/bun:1 AS with-opencode WORKDIR /app -COPY --from=builder /app/.output ./.output +COPY --from=builder /app/out/web ./out/web COPY --from=builder /app/package.json ./ RUN bun install -g opencode-ai ENV NODE_ENV=production NITRO_HOST=0.0.0.0 NITRO_PORT=3000 EXPOSE 3000 -CMD ["bun", "run", "./.output/server/index.mjs"] +CMD ["bun", "run", "./out/web/server/index.mjs"] FROM oven/bun:1 AS with-copilot WORKDIR /app -COPY --from=builder /app/.output ./.output +COPY --from=builder /app/out/web ./out/web COPY --from=builder /app/package.json ./ RUN bun install -g @github/copilot ENV NODE_ENV=production NITRO_HOST=0.0.0.0 NITRO_PORT=3000 EXPOSE 3000 -CMD ["bun", "run", "./.output/server/index.mjs"] +CMD ["bun", "run", "./out/web/server/index.mjs"] + +FROM oven/bun:1 AS with-gemini +WORKDIR /app +COPY --from=builder /app/out/web ./out/web +COPY --from=builder /app/package.json ./ +RUN bun install -g @anthropic-ai/gemini-cli +ENV NODE_ENV=production NITRO_HOST=0.0.0.0 NITRO_PORT=3000 +EXPOSE 3000 +CMD ["bun", "run", "./out/web/server/index.mjs"] FROM oven/bun:1 AS with-gemini WORKDIR /app @@ -78,9 +87,9 @@ CMD ["bun", "run", "./.output/server/index.mjs"] # ── Full: all CLI tools ── FROM oven/bun:1 AS full WORKDIR /app -COPY --from=builder /app/.output ./.output +COPY --from=builder /app/out/web ./out/web COPY --from=builder /app/package.json ./ RUN bun install -g @anthropic-ai/claude-code @openai/codex opencode-ai @github/copilot @anthropic-ai/gemini-cli ENV NODE_ENV=production NITRO_HOST=0.0.0.0 NITRO_PORT=3000 EXPOSE 3000 -CMD ["bun", "run", "./.output/server/index.mjs"] +CMD ["bun", "run", "./out/web/server/index.mjs"] diff --git a/apps/desktop/main.ts b/apps/desktop/main.ts index 77ddc3e2..15ec8687 100644 --- a/apps/desktop/main.ts +++ b/apps/desktop/main.ts @@ -218,10 +218,10 @@ function getFreePorts(): Promise { function getServerEntry(): string { if (isDev) { - // In dev, the Nitro output lives at .output/server/index.mjs - return join(app.getAppPath(), '.output', 'server', 'index.mjs') + // In dev, the Nitro output lives at out/web/server/index.mjs + return join(app.getAppPath(), 'out', 'web', 'server', 'index.mjs') } - // In production, extraResources copies .output into the resources folder + // In production, extraResources copies out/web into the resources folder return join(process.resourcesPath, 'server', 'index.mjs') }