Skip to content

Conversation

@mmcc007
Copy link

@mmcc007 mmcc007 commented Nov 17, 2025

Summary

  • Add production deployment guide for running MCP servers on VMs
  • Provide systemd service templates for production services
  • Include example deployment automation script
  • Document production nginx configuration with SSE optimization

Changes

  • docs/DEPLOYMENT.md: Comprehensive production deployment guide
  • docs/scripts/deploy-example.sh: Example deployment automation script
  • docs/setup/example-mcp.service: systemd service template for MCP server
  • docs/setup/example-assets.service: systemd service template for asset server
  • docs/setup/example-nginx-production.conf: Production nginx configuration

Key Features

  • Service Management: systemd services with auto-restart on failure
  • Deployment Automation: rsync-based deployment script template
  • SSL/TLS: nginx reverse proxy with Let's Encrypt SSL
  • Monitoring: journalctl logging and health check examples
  • Scalability: Multi-app deployment on single VM

Differences from Development Setup

  • Code runs directly on VM (no SSH tunnels)
  • Services managed by systemd (not manual processes)
  • Production-grade nginx configuration
  • Automated deployment scripts

Prerequisites

This PR builds upon the development setup documentation added in PR #119.

Target Audience

Developers ready to deploy their tested MCP servers to production environments.

Test Plan

  • Documentation is clear and complete
  • Example configurations are generic (not app-specific)
  • Deployment script template is reusable
  • References to development setup are accurate

This commit adds comprehensive documentation and tooling for deploying
MCP servers to production environments using systemd, nginx, and Let's
Encrypt SSL.

## Overview

Production deployment runs MCP servers directly on VMs with systemd
service management, nginx reverse proxy, and automated deployment
workflows.

## Changes

**Documentation:**
- `docs/DEPLOYMENT.md` - Generic production deployment guide
- Covers systemd setup, nginx configuration, SSL certificates
- Includes concrete pizzaz example as implementation reference

**Deployment Automation:**
- `docs/scripts/deploy-example.sh` - Automated deployment script template
- Handles building, syncing, dependency installation, service restart
- Health checks and verification

**Setup Files:**
- `docs/setup/example-mcp.service` - Systemd service template for MCP server
- `docs/setup/example-assets.service` - Systemd service for assets (optional)
- `docs/setup/example-nginx-production.conf` - Production nginx with SSE

## Key Features

- **Generic approach**: Works with any MCP server (Node.js, Python, etc.)
- **Systemd integration**: Auto-restart on failure, logging to journalctl
- **nginx optimization**: SSE-specific settings for MCP protocol
- **Automated deployment**: One-command deployment with verification
- **Security**: HTTPS with Let's Encrypt, firewall guidelines
- **Monitoring**: Service status checks, log viewing commands
- **Pizzaz example**: Concrete two-server architecture implementation

## Production Features

- Service management with systemd
- Automatic restarts on failure
- Centralized logging with journalctl
- SSL termination with nginx
- Health verification after deployment
- Rollback instructions
- Multi-app support on single VM

This enables developers to quickly deploy any MCP server from this
repository to production with proper service management, monitoring,
and security.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants