docs: add project handover notes
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,102 @@
|
||||
# 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:
|
||||
```yaml
|
||||
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):
|
||||
```yaml
|
||||
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):
|
||||
```yaml
|
||||
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)
|
||||
```yaml
|
||||
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:
|
||||
|
||||
```bash
|
||||
# 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
|
||||
Reference in New Issue
Block a user