mcptesta/docker-compose.dev.yml
Ryan Malloy bea4a2e5d3 Initial release: MCPTesta v1.0.0 🧪
Community-driven testing excellence for the MCP ecosystem

MCPTesta is a comprehensive testing framework for FastMCP servers that brings
scientific rigor and enterprise-grade capabilities to MCP protocol testing.

🎯 Core Features:
• Comprehensive FastMCP server testing with advanced protocol support
• Parallel execution with intelligent dependency resolution
• Flexible CLI and YAML configuration system
• Rich reporting: console, HTML, JSON, and JUnit formats
• Advanced MCP protocol features: notifications, cancellation, progress tracking
• Production-ready Docker environment with caddy-docker-proxy integration

🧪 Advanced Testing Capabilities:
• Multi-transport support (stdio, SSE, WebSocket)
• Authentication testing (Bearer tokens, OAuth flows)
• Stress testing and performance validation
• Memory profiling and leak detection
• CI/CD integration with comprehensive reporting

🎨 Professional Assets:
• Complete logo package with lab experiment theme
• Comprehensive documentation with Diátaxis framework
• Community-focused branding and messaging
• Multi-platform favicon and social media assets

📚 Documentation:
• Getting started tutorials and comprehensive guides
• Complete CLI and YAML reference documentation
• Architecture explanations and testing strategies
• Team collaboration and security compliance guides

🚀 Ready for:
• Community contributions and external development
• Enterprise deployment and production use
• Integration with existing FastMCP workflows
• Extension and customization for specific needs

Built with modern Python practices using uv, FastMCP, and Starlight documentation.
Designed for developers who demand scientific precision in their testing tools.

Repository: https://git.supported.systems/mcp/mcptesta
Documentation: https://mcptesta.l.supported.systems
2025-09-20 03:20:49 -06:00

132 lines
3.2 KiB
YAML

# Development override for MCPTesta Docker Compose
# Use with: docker compose -f docker-compose.yml -f docker-compose.dev.yml up
services:
docs:
build:
target: development
args:
NODE_ENV: development
environment:
NODE_ENV: development
# Enable Astro development features
ASTRO_TELEMETRY_DISABLED: 1
# Development debugging
DEBUG: "astro:*"
# Development volume mounts for hot reloading
volumes:
- ./docs:/app
- /app/node_modules # Prevent host node_modules from overriding container
- docs_dev_cache:/app/.astro # Cache Astro build artifacts
# Development ports (exposed for debugging)
ports:
- "4321:4321" # Astro dev server
- "9229:9229" # Node.js debugging port
# Development command with debugging
command: ["npm", "run", "dev", "--", "--host", "0.0.0.0", "--port", "4321", "--verbose"]
# Relaxed security for development
security_opt: []
read_only: false
user: "1000:1000"
# Development labels (less caching, more verbose)
labels:
caddy: ${DOCS_DOMAIN:-mcptesta.l.supported.systems}
caddy.reverse_proxy: "{{upstreams 4321}}"
caddy.encode: gzip
caddy.header.Cache-Control: "no-cache, no-store, must-revalidate"
caddy.header.X-Dev-Mode: "true"
# Development resource limits (more generous)
deploy:
resources:
limits:
cpus: '2.0'
memory: 1g
reservations:
memory: 512m
# Development file watcher (optional)
docs-watcher:
image: node:20-alpine
working_dir: /app
volumes:
- ./docs:/app
command: >
sh -c "
apk add --no-cache inotify-tools &&
while true; do
inotifywait -r -e modify,create,delete ./src &&
echo '🔄 Files changed, Astro will auto-reload...'
done
"
profiles:
- watcher
networks:
- monitoring
# Development database for testing (SQLite in volume)
dev-db:
image: alpine:latest
volumes:
- dev_data:/data
command: >
sh -c "
mkdir -p /data &&
touch /data/mcptesta-dev.db &&
echo 'Development database ready at /data/mcptesta-dev.db' &&
tail -f /dev/null
"
profiles:
- database
networks:
- internal
# Development Redis for caching tests
dev-redis:
image: redis:7-alpine
ports:
- "6379:6379"
volumes:
- dev_redis:/data
command: redis-server --appendonly yes --maxmemory 128mb --maxmemory-policy allkeys-lru
profiles:
- cache
networks:
- internal
deploy:
resources:
limits:
memory: 128m
# Live reload proxy for enhanced development
livereload:
image: nginx:alpine
volumes:
- ./config/nginx-dev.conf:/etc/nginx/nginx.conf:ro
ports:
- "35729:35729" # LiveReload port
profiles:
- livereload
networks:
- caddy
depends_on:
- docs
volumes:
# Development-specific volumes
docs_dev_cache:
driver: local
name: ${COMPOSE_PROJECT}_docs_dev_cache
dev_data:
driver: local
name: ${COMPOSE_PROJECT}_dev_data
dev_redis:
driver: local
name: ${COMPOSE_PROJECT}_dev_redis