Made deployable on Railway (#53)
* Rename Dockerfile to __Dockerfile * Update and rename __Dockerfile to Dockerfile * Update Dockerfile * Update Dockerfile * Update Dockerfile * Update Dockerfile * Update Dockerfile * Update Dockerfile * Update Dockerfile * Rename Dockerfile to Dockerfile.railway * Create Docherfile * Rename Docherfile to Dockerfile * Create railway.json * Update README.md
This commit is contained in:
78
Dockerfile.railway
Normal file
78
Dockerfile.railway
Normal file
@@ -0,0 +1,78 @@
|
|||||||
|
# syntax=docker/dockerfile:1.7
|
||||||
|
# Railway-compatible Dockerfile for n8n-mcp
|
||||||
|
|
||||||
|
# --- Stage 1: Builder ---
|
||||||
|
FROM node:20-alpine AS builder
|
||||||
|
WORKDIR /app
|
||||||
|
|
||||||
|
# Install system dependencies for native modules
|
||||||
|
RUN apk add --no-cache python3 make g++ && \
|
||||||
|
rm -rf /var/cache/apk/*
|
||||||
|
|
||||||
|
# Copy package files
|
||||||
|
COPY package*.json tsconfig.json ./
|
||||||
|
|
||||||
|
# Install all dependencies (including devDependencies for build)
|
||||||
|
RUN npm ci --no-audit --no-fund
|
||||||
|
|
||||||
|
# Copy source code
|
||||||
|
COPY src ./src
|
||||||
|
|
||||||
|
# Build the application
|
||||||
|
RUN npm run build
|
||||||
|
|
||||||
|
# --- Stage 2: Runtime ---
|
||||||
|
FROM node:20-alpine AS runtime
|
||||||
|
WORKDIR /app
|
||||||
|
|
||||||
|
# Install system dependencies
|
||||||
|
RUN apk add --no-cache curl python3 make g++ && \
|
||||||
|
rm -rf /var/cache/apk/*
|
||||||
|
|
||||||
|
# Copy package files
|
||||||
|
COPY package*.json ./
|
||||||
|
|
||||||
|
# Install only production dependencies
|
||||||
|
RUN npm ci --only=production --no-audit --no-fund && \
|
||||||
|
npm cache clean --force
|
||||||
|
|
||||||
|
# Copy built application from builder stage
|
||||||
|
COPY --from=builder /app/dist ./dist
|
||||||
|
|
||||||
|
# Copy necessary data and configuration files
|
||||||
|
COPY data/ ./data/
|
||||||
|
COPY src/database/schema-optimized.sql ./src/database/schema-optimized.sql
|
||||||
|
COPY .env.example ./
|
||||||
|
|
||||||
|
# Create data directory if it doesn't exist and set permissions
|
||||||
|
RUN mkdir -p ./data && \
|
||||||
|
chmod 755 ./data
|
||||||
|
|
||||||
|
# Add metadata labels
|
||||||
|
LABEL org.opencontainers.image.source="https://github.com/czlonkowski/n8n-mcp"
|
||||||
|
LABEL org.opencontainers.image.description="n8n MCP Server - Integration between n8n workflow automation and Model Context Protocol"
|
||||||
|
LABEL org.opencontainers.image.licenses="MIT"
|
||||||
|
LABEL org.opencontainers.image.title="n8n-mcp"
|
||||||
|
LABEL org.opencontainers.image.version="2.7.13"
|
||||||
|
|
||||||
|
# Create non-root user for security
|
||||||
|
RUN addgroup -g 1001 -S nodejs && \
|
||||||
|
adduser -S nodejs -u 1001 && \
|
||||||
|
chown -R nodejs:nodejs /app
|
||||||
|
USER nodejs
|
||||||
|
|
||||||
|
# Set environment variables
|
||||||
|
ENV NODE_ENV=production
|
||||||
|
ENV IS_DOCKER=true
|
||||||
|
ENV MCP_MODE=http
|
||||||
|
ENV USE_FIXED_HTTP=true
|
||||||
|
|
||||||
|
# Expose port (Railway will set PORT automatically)
|
||||||
|
EXPOSE 3000
|
||||||
|
|
||||||
|
# Health check
|
||||||
|
HEALTHCHECK --interval=30s --timeout=10s --start-period=5s --retries=3 \
|
||||||
|
CMD curl -f http://127.0.0.1:${PORT:-3000}/health || exit 1
|
||||||
|
|
||||||
|
# Start the application in HTTP mode
|
||||||
|
CMD ["node", "dist/mcp/index.js", "--http"]
|
||||||
@@ -9,6 +9,9 @@
|
|||||||
|
|
||||||
A Model Context Protocol (MCP) server that provides AI assistants with comprehensive access to n8n node documentation, properties, and operations. Deploy in minutes to give Claude and other AI assistants deep knowledge about n8n's 525+ workflow automation nodes.
|
A Model Context Protocol (MCP) server that provides AI assistants with comprehensive access to n8n node documentation, properties, and operations. Deploy in minutes to give Claude and other AI assistants deep knowledge about n8n's 525+ workflow automation nodes.
|
||||||
|
|
||||||
|
[](https://railway.app/new/template?sourceUrl=https://github.com/czlonkowski/n8n-mcp)
|
||||||
|
|
||||||
|
|
||||||
## Overview
|
## Overview
|
||||||
|
|
||||||
n8n-MCP serves as a bridge between n8n's workflow automation platform and AI models, enabling them to understand and work with n8n nodes effectively. It provides structured access to:
|
n8n-MCP serves as a bridge between n8n's workflow automation platform and AI models, enabling them to understand and work with n8n nodes effectively. It provides structured access to:
|
||||||
|
|||||||
10
railway.json
Normal file
10
railway.json
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
{
|
||||||
|
"name": "n8n-mcp",
|
||||||
|
"services": [
|
||||||
|
{
|
||||||
|
"name": "n8n-mcp",
|
||||||
|
"source": ".",
|
||||||
|
"dockerfilePath": "Dockerfile.railway"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user