From f9c4fbda8326fbf7d730abeffc9bbc4db1250aec Mon Sep 17 00:00:00 2001 From: Abdulazizzn Date: Fri, 19 Sep 2025 00:02:45 +0300 Subject: [PATCH] feat: Add Dockerfile for Railway deployment - Create optimized Dockerfile for n8n enterprise unlocked - Use Node.js 20 Alpine for smaller image size - Install pnpm and build all packages - Configure production environment variables - Expose port 5678 for Railway deployment --- Dockerfile | 42 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 Dockerfile diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000000..c876f733ec --- /dev/null +++ b/Dockerfile @@ -0,0 +1,42 @@ +# Dockerfile for n8n Enterprise Unlocked +FROM node:20-alpine + +# Install pnpm +RUN npm install -g pnpm@latest + +# Set working directory +WORKDIR /app + +# Copy package files +COPY package.json pnpm-workspace.yaml pnpm-lock.yaml ./ +COPY packages/cli/package.json ./packages/cli/ + +# Copy all package.json files for proper dependency resolution +COPY packages/@n8n/*/package.json ./packages/@n8n/*/ +COPY packages/frontend/*/package.json ./packages/frontend/*/ +COPY packages/core/package.json ./packages/core/ +COPY packages/workflow/package.json ./packages/workflow/ +COPY packages/nodes-base/package.json ./packages/nodes-base/ +COPY packages/node-dev/package.json ./packages/node-dev/ +COPY packages/testing/package.json ./packages/testing/ +COPY packages/extensions/*/package.json ./packages/extensions/*/ + +# Install dependencies +RUN pnpm install --frozen-lockfile + +# Copy source code +COPY . . + +# Build the application +RUN pnpm build + +# Expose port +EXPOSE 5678 + +# Set environment variables +ENV N8N_HOST=0.0.0.0 +ENV N8N_PORT=5678 +ENV NODE_ENV=production + +# Start n8n +CMD ["pnpm", "--filter=n8n", "start"] \ No newline at end of file