From dea1cd57e0729f5588a3f96bdcb3d76ff7afe7fb Mon Sep 17 00:00:00 2001 From: sithu015 Date: Sat, 6 Jun 2026 22:05:13 +0630 Subject: [PATCH 1/9] fix(cli): route all pino logs to stderr to prevent stdout pollution in stdio transport --- packages/utilities/src/logger.ts | 21 ++++++++++++--------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/packages/utilities/src/logger.ts b/packages/utilities/src/logger.ts index 48d49c98a..323fe8a99 100644 --- a/packages/utilities/src/logger.ts +++ b/packages/utilities/src/logger.ts @@ -10,6 +10,17 @@ const LOG_ERROR_STACK = process.env.LOG_ERROR_STACK === "true"; export type Logger = pino.Logger; +const stream = LOG_PRETTY + ? pinoPretty({ + colorize: true, + translateTime: "HH:MM:ss", + ignore: "pid,hostname", + destination: 2, + // uncomment to hide json objects for any level other than trace or debug + // hideObject: !["trace", "debug"].includes(LOG_LEVEL.toLowerCase()), + }) + : pino.destination(2); + const logger = pino( { level: LOG_LEVEL.toLowerCase(), @@ -39,15 +50,7 @@ const logger = pino( }, }, }, - LOG_PRETTY - ? pinoPretty({ - colorize: true, - translateTime: "HH:MM:ss", - ignore: "pid,hostname", - // uncomment to hide json objects for any level other than trace or debug - // hideObject: !["trace", "debug"].includes(LOG_LEVEL.toLowerCase()), - }) - : undefined, + stream ); export const getLogger = (name: string): Logger => logger.child({ name }); From 134f35af3d63e14cf14cfacf76fed95e347c1fab Mon Sep 17 00:00:00 2001 From: sithu015 Date: Sat, 6 Jun 2026 22:34:08 +0630 Subject: [PATCH 2/9] fix(docker): build from source to include latest auth features --- apps/docker/Dockerfile | 43 +++++++++++++++++++++--------------------- 1 file changed, 22 insertions(+), 21 deletions(-) diff --git a/apps/docker/Dockerfile b/apps/docker/Dockerfile index a866df89d..86c603643 100644 --- a/apps/docker/Dockerfile +++ b/apps/docker/Dockerfile @@ -1,36 +1,37 @@ -FROM node:20-slim +FROM oven/bun:1.1-slim AS builder -# Update dependencies -RUN apt-get update +WORKDIR /app -# Install dependencies -RUN apt-get install -y \ +# Copy the monorepo source code +COPY . . + +# Install dependencies and build +RUN bun install +RUN bun run build + +FROM oven/bun:1.1-slim AS runner +WORKDIR /app + +# Install system dependencies that might be needed by MCP servers +RUN apt-get update && apt-get install -y \ curl \ git \ python3-pip \ - pipx + pipx \ + && rm -rf /var/lib/apt/lists/* -# Used by many MCP servers +# Install uv for Python MCP servers RUN pipx install uv - -# Add pipx bin directory to PATH so uvx is available ENV PATH="/root/.local/bin:${PATH}" -# Create director directory for volume mounting +# Create director directory RUN mkdir -p /root/.director -# Install Director CLI globally -RUN npm install -g @director.run/cli@latest +# Copy built files and dependencies from builder +COPY --from=builder /app /app -# Set default port ENV GATEWAY_PORT=8080 - -# Expose the gateway port EXPOSE ${GATEWAY_PORT} -# Create a simple healthcheck -# HEALTHCHECK --interval=30s --timeout=3s --start-period=5s --retries=3 \ -# CMD curl -f http://localhost:${GATEWAY_PORT}/health || exit 1 - -# Run director serve -CMD ["sh", "-c", "director serve"] \ No newline at end of file +# Run the local built CLI +CMD ["bun", "run", "./apps/cli/bin/cli.ts", "serve"] \ No newline at end of file From 489194a912f3d3e3cec5e24c5dafa9ab2e9ac82c Mon Sep 17 00:00:00 2001 From: sithu015 Date: Sat, 6 Jun 2026 22:59:24 +0630 Subject: [PATCH 3/9] fix(docker): update to bun 1.x and fix pipx installation --- apps/docker/Dockerfile | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/apps/docker/Dockerfile b/apps/docker/Dockerfile index 86c603643..2eff9f5cc 100644 --- a/apps/docker/Dockerfile +++ b/apps/docker/Dockerfile @@ -1,4 +1,4 @@ -FROM oven/bun:1.1-slim AS builder +FROM oven/bun:1-slim AS builder WORKDIR /app @@ -9,7 +9,7 @@ COPY . . RUN bun install RUN bun run build -FROM oven/bun:1.1-slim AS runner +FROM oven/bun:1-slim AS runner WORKDIR /app # Install system dependencies that might be needed by MCP servers @@ -17,11 +17,12 @@ RUN apt-get update && apt-get install -y \ curl \ git \ python3-pip \ - pipx \ + python3-venv \ && rm -rf /var/lib/apt/lists/* -# Install uv for Python MCP servers -RUN pipx install uv +# Install pipx and uv for Python MCP servers +RUN pip install --no-cache-dir pipx && \ + pipx install uv ENV PATH="/root/.local/bin:${PATH}" # Create director directory From a3b2ebb9a15317a51ce93d4c0d39c763e2bd52c5 Mon Sep 17 00:00:00 2001 From: sithu015 Date: Sat, 6 Jun 2026 23:03:57 +0630 Subject: [PATCH 4/9] fix(docker): use apt-get to install pipx to avoid PEP668 --- apps/docker/Dockerfile | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/apps/docker/Dockerfile b/apps/docker/Dockerfile index 2eff9f5cc..4dd02c582 100644 --- a/apps/docker/Dockerfile +++ b/apps/docker/Dockerfile @@ -18,11 +18,11 @@ RUN apt-get update && apt-get install -y \ git \ python3-pip \ python3-venv \ + pipx \ && rm -rf /var/lib/apt/lists/* -# Install pipx and uv for Python MCP servers -RUN pip install --no-cache-dir pipx && \ - pipx install uv +# Install uv for Python MCP servers using pipx +RUN pipx install uv ENV PATH="/root/.local/bin:${PATH}" # Create director directory From ee9ba8178faea628735bae1c6df9db57440d4bf9 Mon Sep 17 00:00:00 2001 From: sithu015 Date: Sat, 6 Jun 2026 23:10:01 +0630 Subject: [PATCH 5/9] feat(auth): add DISABLE_SIGNUPS env var to prevent public registration --- apps/gateway/src/auth.ts | 8 ++++++++ apps/gateway/src/env.ts | 4 ++++ 2 files changed, 12 insertions(+) diff --git a/apps/gateway/src/auth.ts b/apps/gateway/src/auth.ts index 1596bd84b..a61e1bab2 100644 --- a/apps/gateway/src/auth.ts +++ b/apps/gateway/src/auth.ts @@ -48,6 +48,14 @@ export const auth = betterAuth({ databaseHooks: { user: { create: { + before: async (user) => { + if (env.DISABLE_SIGNUPS) { + throw new Error("Signups are disabled on this instance"); + } + return { + data: user, + }; + }, after: async (user) => { // Create a default API key for the new user and store encrypted try { diff --git a/apps/gateway/src/env.ts b/apps/gateway/src/env.ts index fd52f7479..f62ff73c8 100644 --- a/apps/gateway/src/env.ts +++ b/apps/gateway/src/env.ts @@ -62,6 +62,10 @@ export const env = createEnv({ .string() .default("false") .transform((s) => s === "true"), + DISABLE_SIGNUPS: z + .string() + .default("false") + .transform((s) => s === "true"), // API key rate limiting configuration API_KEY_RATE_LIMIT_WINDOW_SECONDS: z .string() From 2dc680ff86096045f29829763f8a458dbdaed065 Mon Sep 17 00:00:00 2001 From: sithu015 Date: Sat, 6 Jun 2026 23:43:31 +0630 Subject: [PATCH 6/9] chore: add authCheck for debugging --- apps/gateway/src/routers/trpc/index.ts | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/apps/gateway/src/routers/trpc/index.ts b/apps/gateway/src/routers/trpc/index.ts index 416ffd2d7..1467c4f0a 100644 --- a/apps/gateway/src/routers/trpc/index.ts +++ b/apps/gateway/src/routers/trpc/index.ts @@ -55,6 +55,10 @@ export function createAppRouter() { store: createPlaybookStoreRouter(), tools: createToolsRouter(), settings: createSettingsRouter(), + authCheck: publicProcedure.query(({ ctx }) => { + const context = ctx as GatewayContext; + return { userId: context.userId, headers: "Check console" }; + }), }); } @@ -75,6 +79,9 @@ export function createTRPCExpressMiddleware({ headers: req.headers as Record, }); + console.log("TRPC createContext req.headers:", req.headers); + console.log("TRPC createContext session:", session); + if (session) { userId = session.user.id; // Get user status from the session user object From 482a537328fc99f8eda66b2e8c8ab754dde9c42b Mon Sep 17 00:00:00 2001 From: sithu015 Date: Sun, 7 Jun 2026 00:05:50 +0630 Subject: [PATCH 7/9] fix(docker): symlink director binary to fix dokploy execution --- apps/docker/Dockerfile | 3 +++ 1 file changed, 3 insertions(+) diff --git a/apps/docker/Dockerfile b/apps/docker/Dockerfile index 4dd02c582..2b2ae875f 100644 --- a/apps/docker/Dockerfile +++ b/apps/docker/Dockerfile @@ -34,5 +34,8 @@ COPY --from=builder /app /app ENV GATEWAY_PORT=8080 EXPOSE ${GATEWAY_PORT} +# Create director symlink for dokploy environments +RUN ln -s /app/apps/cli/bin/cli.ts /usr/local/bin/director && chmod +x /usr/local/bin/director + # Run the local built CLI CMD ["bun", "run", "./apps/cli/bin/cli.ts", "serve"] \ No newline at end of file From 35a93280026c4bcf7aa33545f5aafd281ae49e0b Mon Sep 17 00:00:00 2001 From: sithu015 Date: Sun, 7 Jun 2026 00:14:55 +0630 Subject: [PATCH 8/9] fix: replace director symlink with wrapper script --- apps/docker/Dockerfile | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/apps/docker/Dockerfile b/apps/docker/Dockerfile index 2b2ae875f..c1a1f1d19 100644 --- a/apps/docker/Dockerfile +++ b/apps/docker/Dockerfile @@ -34,8 +34,10 @@ COPY --from=builder /app /app ENV GATEWAY_PORT=8080 EXPOSE ${GATEWAY_PORT} -# Create director symlink for dokploy environments -RUN ln -s /app/apps/cli/bin/cli.ts /usr/local/bin/director && chmod +x /usr/local/bin/director +# Create a wrapper script for the director executable +RUN echo '#!/bin/sh' > /usr/local/bin/director && \ + echo 'exec bun run /app/apps/cli/bin/cli.ts "$@"' >> /usr/local/bin/director && \ + chmod +x /usr/local/bin/director # Run the local built CLI -CMD ["bun", "run", "./apps/cli/bin/cli.ts", "serve"] \ No newline at end of file +CMD ["bun", "run", "/app/apps/cli/bin/cli.ts", "serve"] \ No newline at end of file From d8c02b01296288fa6e9405911110f3885bdcfbe7 Mon Sep 17 00:00:00 2001 From: sithu015 Date: Sun, 7 Jun 2026 00:21:58 +0630 Subject: [PATCH 9/9] fix: update docker CMD to run gateway server instead of cli serve --- apps/docker/Dockerfile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/apps/docker/Dockerfile b/apps/docker/Dockerfile index c1a1f1d19..b0b2205f1 100644 --- a/apps/docker/Dockerfile +++ b/apps/docker/Dockerfile @@ -39,5 +39,5 @@ RUN echo '#!/bin/sh' > /usr/local/bin/director && \ echo 'exec bun run /app/apps/cli/bin/cli.ts "$@"' >> /usr/local/bin/director && \ chmod +x /usr/local/bin/director -# Run the local built CLI -CMD ["bun", "run", "/app/apps/cli/bin/cli.ts", "serve"] \ No newline at end of file +# Run the gateway server +CMD ["bun", "run", "/app/apps/gateway/bin/server.ts"] \ No newline at end of file