DEPLOYMENT.md•4.15 kB
# FastMail MCP Server - Deployment Guide
## 🚀 Docker Hub Publishing
To publish the image to Docker Hub (requires Docker Hub account):
```bash
# Login to Docker Hub
docker login
# Tag the image
docker tag fastmail-mcp-server:latest yourdockerhub/fastmail-mcp-server:latest
docker tag fastmail-mcp-server:latest yourdockerhub/fastmail-mcp-server:v1.0.0
# Push to Docker Hub
docker push yourdockerhub/fastmail-mcp-server:latest
docker push yourdockerhub/fastmail-mcp-server:v1.0.0
```
## 🏗️ Building from Source
Users can build directly from the GitHub repository:
```bash
# Clone the repository
git clone https://github.com/gr3enarr0w/fastmail-mcp-server.git
cd fastmail-mcp-server
# Build the image
docker build -t fastmail-mcp-server .
# Run the container
docker run -d \
--name fastmail-mcp-server \
--restart unless-stopped \
-e FASTMAIL_API_TOKEN=your_token \
-e FASTMAIL_EMAIL=your_email@fastmail.com \
fastmail-mcp-server:latest
```
## 🔧 Unraid Deployment Options
### Option 1: Community Applications (Recommended)
1. **Install from Community Applications**:
- Go to **Apps** tab in Unraid
- Search for "FastMail MCP"
- Click **Install**
### Option 2: Manual Template Installation
1. **Download template**:
```bash
wget https://raw.githubusercontent.com/gr3enarr0w/fastmail-mcp-server/main/unraid-template.xml
```
2. **Import in Unraid**:
- Go to **Docker** tab
- Click **Add Container**
- Click **Template** and select the downloaded XML
### Option 3: Docker Compose Plugin
1. **Install Compose Manager plugin**
2. **Create compose file** at `/mnt/user/appdata/fastmail-mcp/docker-compose.yml`:
```yaml
version: '3.8'
services:
fastmail-mcp-server:
image: fastmail-mcp-server:latest # Build locally first
container_name: fastmail-mcp-server
restart: unless-stopped
environment:
- FASTMAIL_API_TOKEN=${FASTMAIL_API_TOKEN}
- FASTMAIL_EMAIL=${FASTMAIL_EMAIL}
env_file:
- .env
```
## 🔍 Testing Unraid Compatibility
The template includes Unraid-specific features:
- **Security hardening**: `--read-only --tmpfs /tmp --security-opt no-new-privileges:true`
- **Resource limits**: 256MB RAM, 0.5 CPU cores
- **Persistent storage**: `/mnt/user/appdata/fastmail-mcp`
- **Environment variables**: Masked API tokens for security
- **Health checks**: Container monitoring
- **Logging**: JSON logs with rotation
## 🚀 GitHub Actions (Future Enhancement)
For automated Docker Hub publishing, add this workflow:
```yaml
# .github/workflows/docker.yml
name: Build and Push Docker Image
on:
push:
branches: [ main ]
tags: [ 'v*' ]
jobs:
docker:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Login to Docker Hub
uses: docker/login-action@v3
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
- name: Build and push
uses: docker/build-push-action@v5
with:
context: .
push: true
tags: |
gr3enarr0w/fastmail-mcp-server:latest
gr3enarr0w/fastmail-mcp-server:${{ github.ref_name }}
```
## 📋 Unraid Template Validation
The template passes Unraid validation requirements:
- ✅ **Container version 2** format
- ✅ **Required fields**: Name, Repository, Description
- ✅ **Security options**: Non-privileged, read-only filesystem
- ✅ **Resource management**: Memory and CPU limits
- ✅ **Networking**: Bridge mode (no exposed ports)
- ✅ **Storage**: Persistent data volume
- ✅ **Environment variables**: Properly configured with defaults
## 🔗 Installation URLs
- **GitHub Repository**: https://github.com/gr3enarr0w/fastmail-mcp-server
- **Template URL**: https://raw.githubusercontent.com/gr3enarr0w/fastmail-mcp-server/main/unraid-template.xml
- **Documentation**: See README.md and DOCKER.md in the repository
Users can deploy this immediately on Unraid by building the image locally or waiting for Docker Hub publishing.