Skip to content

m2p Documentation

Welcome to the mpy-metapackage (m2p) documentation. m2p transforms simple YAML configuration into production-ready Kubernetes deployments with integrated routing, security, monitoring, and debugging.

Quick Start

New to m2p?Usage Guide - Learn the basics
Writing configurations?Parts Reference - Complete config options
Using Muppy GUI?Platform Guide - Web interface workflows
Need examples?Common Patterns - Real-world configurations

Documentation Sections

Getting Started

  • Usage Guide - Basic workflow, deployment patterns, and troubleshooting
  • Common Patterns - Real-world examples with managed PostgreSQL and Vault

Configuration Reference

Platform Integration

I want to...

Goal Go to
Deploy my first application Usage Guide
See working examples Common Patterns
Configure advanced features Parts Reference
Use the Muppy web interface Platform Guide
Integrate with databases Common Patterns
Expose different ports on subdomains Routing Patterns
Debug deployment issues Usage Guide + Platform Guide
Build AI integrations MCP Specification

Key Concepts

Parts - Application components (server, worker, cronjob, http) Managed Services - Use Muppy's HA PostgreSQL and Vault instead of containers host_prefix - Create unique subdomains for multi-service applications (see details) Debug Modes - Shell access (basic) or VSCode Server (codr)

⚠️ Critical: Service Discovery

THE MOST COMMON MISTAKE: Hardcoding service names breaks inter-service communication.

Muppy generates unique keys for each deployment (e.g., myapp-abc123). All Kubernetes resources are prefixed with this key:

What You Write What Gets Created How to Reference It
Part: mongodb Service: myapp-abc123-mongodb-svc "@{ obj.key }@-mongodb-svc"
Part: redis Service: myapp-abc123-redis-svc "@{ obj.key }@-redis-svc"
Part: backend Service: myapp-abc123-backend-svc "@{ obj.key }@-backend-svc"

Always use template variables for: - Database connection strings - Internal API URLs
- Redis/cache connections - Any inter-service communication

Example:

env_vars:
  - name: DATABASE_URL
    value: "postgresql://@{ obj.key }@-postgres-svc:5432/mydb"  # ✅ CORRECT
    # NOT: value: postgresql://postgres:5432/mydb              # ❌ BROKEN

Sample Configurations

Browse real-world configurations in mpy_meta_config_samples/:

  • checkmate-m2p-config.yaml - Multi-service app with MongoDB
  • xtraho_stack.yaml - Complex multi-service deployment
  • muppy13-m2p-config.yaml - Production Muppy configuration

💡 Tip: Start with Usage Guide for step-by-step instructions, then use Parts Reference as your configuration cookbook.