Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
47 changes: 0 additions & 47 deletions .github/workflows/publish.yml

This file was deleted.

2 changes: 1 addition & 1 deletion CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -127,7 +127,7 @@ EOF
docker compose --profile all up
```

Note: Production-ready images are published to `ghcr.io/sentinel-one/purple-mcp` on on release tags. See [DOCKER.md](DOCKER.md) for deployment options and [PRODUCTION_SETUP.md](PRODUCTION_SETUP.md) for production with authentication.
Note: For production deployments, build the image locally and push to your container registry. See [DOCKER.md](DOCKER.md) for deployment options and [PRODUCTION_SETUP.md](PRODUCTION_SETUP.md) for production with authentication.

## Architecture: Tools vs Libraries

Expand Down
28 changes: 15 additions & 13 deletions DOCKER.md
Original file line number Diff line number Diff line change
Expand Up @@ -21,30 +21,32 @@ docker compose version

**Note:** Docker Compose V1 (`docker-compose` with a hyphen) is deprecated and not supported. Use `docker compose` (space, not hyphen) for V2.

## Getting the Image
## Building the Image

Pre-built images are published to `ghcr.io/sentinel-one/purple-mcp`:
Build the Docker image locally:

```bash
# Pull the latest image
docker pull ghcr.io/sentinel-one/purple-mcp:latest
# Build locally
docker build -t purple-mcp:latest .

# Or a specific version
docker pull ghcr.io/sentinel-one/purple-mcp:v0.5.1
# Build with BuildKit (faster caching)
DOCKER_BUILDKIT=1 docker build -t purple-mcp:latest .
```

Images are automatically published on release tags (e.g., `v0.5.1`).
### Pushing to Your Registry

## Building Locally
After building, you can tag and push the image to your container registry:

```bash
# Build locally
docker build -t purple-mcp:latest .
# Tag for your registry
docker tag purple-mcp:latest your-registry.example.com/purple-mcp:latest

# Build with BuildKit (faster caching)
DOCKER_BUILDKIT=1 docker build -t purple-mcp:latest .
# Push to your registry
docker push your-registry.example.com/purple-mcp:latest
```

Replace `your-registry.example.com` with your actual registry URL (e.g., Docker Hub, AWS ECR, Google Container Registry, Azure Container Registry, or a private registry).

## Running with Docker

All examples below assume your credentials are set:
Expand Down Expand Up @@ -247,7 +249,7 @@ spec:
spec:
containers:
- name: purple-mcp
image: ghcr.io/sentinel-one/purple-mcp:latest
image: your-registry.example.com/purple-mcp:latest
ports:
- containerPort: 8000
env:
Expand Down
9 changes: 6 additions & 3 deletions PRODUCTION_SETUP.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,11 +20,14 @@ docker compose version # Should show v2.0.0+

## Quick Reference

Pre-built images: `ghcr.io/sentinel-one/purple-mcp:latest`
Build the image locally before deployment:

```bash
docker pull ghcr.io/sentinel-one/purple-mcp:latest
docker compose pull
# Build the image
docker build -t purple-mcp:latest .

# Or use docker compose to build
docker compose build
```

## Quick Start
Expand Down
19 changes: 19 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,25 @@ export PURPLEMCP_CONSOLE_BASE_URL="https://your-console.sentinelone.net"
uvx --from git+https://github.com/Sentinel-One/purple-mcp.git purple-mcp --mode=stdio
```

### Using Docker

```bash
# Build the image
docker build -t purple-mcp:latest .

# Run with your credentials
export PURPLEMCP_CONSOLE_TOKEN="your_token"
export PURPLEMCP_CONSOLE_BASE_URL="https://your-console.sentinelone.net"

docker run -p 8000:8000 \
-e PURPLEMCP_CONSOLE_TOKEN \
-e PURPLEMCP_CONSOLE_BASE_URL \
purple-mcp:latest \
--mode streamable-http
```

For production deployments, see [Deployment Guide](DOCKER.md).

**Note:** Purple AI MCP does not include built-in authentication. For network-exposed deployments, place it behind a reverse proxy or load balancer. See [Production Setup](PRODUCTION_SETUP.md) for cloud load balancer configurations (AWS ALB, GCP Cloud Load Balancing, Azure Application Gateway) or nginx examples for self-hosted deployments.

---
Expand Down
Loading