feat: add AI stack with Open WebUI, Crawl4AI, and pgvector

Created complete AI infrastructure stack at ai.pivoine.art:

**New Services:**
- **Open WebUI** (ai.pivoine.art)
  - ChatGPT-like interface for AI models
  - Multi-user chat with authentication
  - RAG (Retrieval-Augmented Generation) support
  - Document upload and processing
  - Claude API integration via Anthropic

- **PostgreSQL with pgvector** (dedicated AI database)
  - Vector similarity search for RAG
  - Separate from production databases
  - Stores embeddings and documents

- **Crawl4AI** (internal API service)
  - Web scraping optimized for LLMs
  - Converts websites to clean Markdown
  - Called by n8n workflows
  - No public exposure (internal only)

**Configuration:**
- Added 18 AI environment variables to arty.yml
- Configured email notifications via IONOS SMTP
- OpenAI API compatibility for Claude integration
- Traefik SSL termination and compression

**Backup:**
- Added 3 AI volumes to Restic backup
- Daily backup at 3 AM
- Retention: 7 daily, 4 weekly, 6 monthly, 2 yearly

**Integration:**
- Shares falcon_network with existing services
- Ready for n8n workflow automation
- Mattermost notifications support
- Watchtower auto-updates enabled

Ready for Phase 2: GPU server integration with Ollama, Whisper, and
Stable Diffusion when IONOS A10 server is provisioned.

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

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
2025-11-08 22:34:46 +01:00
parent ff7f6ab697
commit 0679b7d738
5 changed files with 170 additions and 0 deletions

View File

@@ -162,6 +162,24 @@ envs:
# Sablier
SABLIER_COMPOSE_PROJECT_NAME: sablier
SABLIER_VERSION: latest
# AI Stack
AI_TRAEFIK_ENABLED: true
AI_COMPOSE_PROJECT_NAME: ai
AI_POSTGRES_IMAGE: pgvector/pgvector:pg16
AI_WEBUI_IMAGE: ghcr.io/open-webui/open-webui:main
AI_CRAWL4AI_IMAGE: unclecode/crawl4ai:latest
AI_TRAEFIK_HOST: ai.pivoine.art
AI_DB_USER: ai
AI_DB_NAME: openwebui
AI_WEBUI_NAME: Pivoine AI
AI_ENABLE_SIGNUP: true
AI_ENABLE_RAG_WEB_SEARCH: true
AI_ENABLE_RAG_SSL_VERIFY: true
AI_RAG_EMBEDDING_ENGINE: openai
AI_RAG_EMBEDDING_MODEL: text-embedding-3-small
AI_VECTOR_DB: pgvector
AI_CRAWL4AI_PORT: 11235
AI_OPENAI_API_BASE_URLS: https://api.anthropic.com/v1
# Watchtower
WATCHTOWER_POLL_INTERVAL: 300
WATCHTOWER_LABEL_ENABLE: true