diff --git a/public/svgs/metamcp.png b/public/svgs/metamcp.png new file mode 100644 index 000000000..e1eeb5c06 Binary files /dev/null and b/public/svgs/metamcp.png differ diff --git a/templates/compose/metamcp.yaml b/templates/compose/metamcp.yaml new file mode 100644 index 000000000..152b7a2d2 --- /dev/null +++ b/templates/compose/metamcp.yaml @@ -0,0 +1,53 @@ +# documentation: https://github.com/metatool-ai/metamcp +# slogan: MCP Aggregator, Orchestrator, Middleware, Gateway in one app +# tags: mcp, ai, sse +# category: mcp +# logo: svgs/metamcp.png +# port: 12008 + +services: + app: + container_name: metamcp + image: 'ghcr.io/metatool-ai/metamcp:latest' + ports: + - '12008:12008' + environment: + - SERVICE_URL_METAMCP_12008 + - 'POSTGRES_HOST=${POSTGRES_HOST:?postgres}' + - 'POSTGRES_PORT=${POSTGRES_PORT:?5432}' + - 'POSTGRES_USER=${SERVICE_USER_DB}' + - 'POSTGRES_PASSWORD=${SERVICE_PASSWORD_DB}' + - 'POSTGRES_DB=${POSTGRES_DB:-metamcp_db}' + - 'DATABASE_URL=postgresql://${POSTGRES_USER}:${POSTGRES_PASSWORD}@${POSTGRES_HOST}:${POSTGRES_PORT}/${POSTGRES_DB}' + - APP_URL=$SERVICE_URL_METAMCP + - 'NEXT_PUBLIC_APP_URL=${APP_URL}' + - BETTER_AUTH_SECRET=$SERVICE_PASSWORD_AUTH + - 'TRANSFORM_LOCALHOST_TO_DOCKER_INTERNAL=${TRANSFORM_LOCALHOST_TO_DOCKER_INTERNAL:?true}' + depends_on: + postgres: + condition: service_healthy + healthcheck: + test: + - CMD + - curl + - '-f' + - 'http://localhost:12008/health' + interval: 30s + timeout: 10s + postgres: + image: 'postgres:16-alpine' + container_name: metamcp-pg + environment: + - 'POSTGRES_DB=${POSTGRES_DB:-metamcp_db}' + - 'POSTGRES_USER=${POSTGRES_USER:-metamcp_user}' + - 'POSTGRES_PASSWORD=${POSTGRES_PASSWORD:-m3t4mcp}' + ports: + - '9433:5432' + volumes: + - 'postgres_data:/var/lib/postgresql/data' + healthcheck: + test: + - CMD-SHELL + - 'pg_isready -U ${POSTGRES_USER:-metamcp_user} -d ${POSTGRES_DB:-metamcp_db}' + interval: 10s + timeout: 5s