Files
portainer-core/PROJECT_CLAUDIFICATION_HANDOVER.md
T
2026-02-26 10:35:09 +01:00

2.8 KiB

Tatlock Claudification Handover - portainer-core

Context

Tatlock (the butler) is being upgraded to use Claude as its primary LLM backend instead of Ollama. This requires infrastructure changes to support the new configuration.

Parent Issue: See /mnt/media/Projects/tatlock/PROJECT_CLAUDIFICATION.md

Impact on portainer-core

Portainer-core manages Docker Swarm stacks. The Tatlock stack needs updated configuration.

Required Changes

Priority: High (Required for Claude backend)

  • Update stacks/agents.yml (or wherever Tatlock is defined)

    Add new environment variables:

    services:
      tatlock:
        environment:
          # Anthropic Configuration (Claude - preferred backend)
          - ANTHROPIC_API_KEY=${ANTHROPIC_API_KEY}
          - ANTHROPIC_MODEL=claude-sonnet-4-20250514
          - PREFER_CLOUD_BACKEND=true
          # Existing Ollama config remains as fallback
          - OLLAMA_HOST=http://ollama:11434
          - OLLAMA_DEFAULT_MODEL=mistral-nemo:latest
    
  • Configure secrets management

    Options:

    1. Docker secrets (recommended for Swarm):

      secrets:
        anthropic_api_key:
          external: true
      services:
        tatlock:
          secrets:
            - anthropic_api_key
          environment:
            - ANTHROPIC_API_KEY_FILE=/run/secrets/anthropic_api_key
      
    2. Environment file (simpler but less secure):

      services:
        tatlock:
          env_file:
            - ./secrets/tatlock.env
      
  • Update CONTAINERS.md

    • Document new environment variables
    • Note Claude as preferred backend with Ollama fallback
    • Update any API documentation

Priority: Medium (Phase 2 - MCP Server)

  • Add tatlock-mcp service definition (when Phase 2 is ready)
    tatlock-mcp:
      image: git.schweitz.net/jpmschweitzer/tatlock:latest
      command: ["python", "-m", "src.mcp.server"]
      ports:
        - "8778:8778"
      environment:
        - MCP_AUTH_TOKEN=${MCP_AUTH_TOKEN}
      # ... other config
    

Priority: Low (Optimization)

  • Review resource limits
    • Claude backend may have different resource profile than Ollama
    • Monitor memory/CPU after deployment
    • Adjust limits if needed

Testing

After stack update:

# Check Tatlock logs for backend selection
docker service logs tatlock_tatlock 2>&1 | grep -E "claude|backend"

# Should see:
# model_backend_configured backend=claude model=claude-sonnet-4-20250514
# OR (if no API key):
# claude_health_check_skipped reason=no_api_key
# model_backend_configured backend=ollama

Timeline

  • Blocking: Yes - required for production Claude deployment
  • When to implement: When ANTHROPIC_API_KEY is available
  • Effort: ~1 hour for stack updates, ~30 min for secrets setup