From cb5604a6a752db35638d86911b0f8aea3345f30e Mon Sep 17 00:00:00 2001 From: Bill Date: Mon, 29 Dec 2025 20:20:01 -0500 Subject: [PATCH] docs: add Docker deployment instructions --- README.md | 65 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 65 insertions(+) diff --git a/README.md b/README.md index 908e51b..b35e241 100644 --- a/README.md +++ b/README.md @@ -172,6 +172,71 @@ grist-mcp/ └── pyproject.toml ``` +## Docker Deployment + +### Prerequisites + +- Docker and Docker Compose + +### Quick Start + +```bash +# 1. Copy example files +cp .env.example .env +cp config.yaml.example config.yaml + +# 2. Edit .env with your tokens and API keys +# - Set GRIST_MCP_TOKEN to a secure agent token +# - Set your Grist API keys + +# 3. Edit config.yaml with your document settings +# - Configure your Grist documents +# - Set up token scopes and permissions + +# 4. Start the server +docker compose up -d +``` + +### Environment Variables + +| Variable | Description | Default | +|----------|-------------|---------| +| `PORT` | Server port | `3000` | +| `GRIST_MCP_TOKEN` | Agent authentication token (required) | - | +| `CONFIG_PATH` | Path to config file inside container | `/app/config.yaml` | +| `GRIST_*_API_KEY` | Grist API keys referenced in config.yaml | - | + +### Using Prebuilt Images + +To use a prebuilt image from a container registry: + +```yaml +# docker-compose.yaml +services: + grist-mcp: + image: your-registry/grist-mcp:latest + ports: + - "${PORT:-3000}:3000" + volumes: + - ./config.yaml:/app/config.yaml:ro + env_file: + - .env + restart: unless-stopped +``` + +### Building Locally + +```bash +# Build the image +docker build -t grist-mcp . + +# Run directly +docker run -p 3000:3000 \ + -v $(pwd)/config.yaml:/app/config.yaml:ro \ + --env-file .env \ + grist-mcp +``` + ## License MIT