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
- Parts Reference ⭐ - Complete
mpy_meta_configoptions for all part types - Advanced Features - User manifests, volumes, vault integration, debugging
Platform Integration
- Muppy Platform Guide - Using the web interface, Parts Config sync
- MCP Specification - AI integration API for package management
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.