feat: add tatlock stack for homelab butler API

- OpenAI-compatible API server with LLM agent orchestration
- Port 8000, connects to docker-dataplane network
- Integrates with ollama, searxng, redis-shared services
- Watchtower auto-update enabled

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
2025-12-11 18:28:04 +01:00
co-authored by Claude Opus 4.5
parent 6581a743ac
commit 235b694356
+67
View File
@@ -0,0 +1,67 @@
version: '3.8'
# Tatlock - The Homelab Butler
# Purpose: OpenAI-compatible API server with LLM agent orchestration
# Port: 8000 (API)
# Network: docker-dataplane
# Image: git.schweitz.net/jpmschweitzer/tatlock (private registry)
services:
tatlock:
image: git.schweitz.net/jpmschweitzer/tatlock:latest
container_name: tatlock
restart: unless-stopped
ports:
- "8000:8000"
environment:
- ENVIRONMENT=production
- LOG_LEVEL=INFO
- API_HOST=0.0.0.0
- API_PORT=8000
# Ollama (shared service)
- OLLAMA_HOST=http://ollama:11434
- OLLAMA_DEFAULT_MODEL=mistral-nemo:latest
- OLLAMA_TIMEOUT=120
# SearXNG (optional, shared service)
- SEARXNG_HOST=http://searxng:8080
- SEARXNG_TIMEOUT=30
# Redis (optional, shared service)
- REDIS_HOST=redis-shared
- REDIS_PORT=6379
- REDIS_DB=6
- REDIS_TIMEOUT=5
# Features
- ENABLE_BENCHMARKS=true
- CORS_ORIGINS=*
- PYTHONPATH=/app
volumes:
- /home/jpmschweitzer/docker-data/tatlock/logs:/app/logs
networks:
- docker-dataplane
deploy:
resources:
limits:
cpus: '1.0'
memory: 1G
reservations:
memory: 256M
labels:
- "com.centurylinklabs.watchtower.enable=true"
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:8000/health"]
interval: 30s
timeout: 10s
retries: 3
start_period: 30s
networks:
docker-dataplane:
external: true
name: docker-dataplane