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:
@@ -36,6 +36,9 @@ services:
|
||||
- backup_joplin_data:/volumes/joplin_data:ro
|
||||
- backup_jelly_config:/volumes/jelly_config:ro
|
||||
- backup_netdata_config:/volumes/netdata_config:ro
|
||||
- backup_ai_postgres_data:/volumes/ai_postgres_data:ro
|
||||
- backup_ai_webui_data:/volumes/ai_webui_data:ro
|
||||
- backup_ai_crawl4ai_data:/volumes/ai_crawl4ai_data:ro
|
||||
|
||||
environment:
|
||||
TZ: ${TIMEZONE:-Europe/Berlin}
|
||||
@@ -138,6 +141,15 @@ volumes:
|
||||
backup_netdata_config:
|
||||
name: netdata_config
|
||||
external: true
|
||||
backup_ai_postgres_data:
|
||||
name: ai_postgres_data
|
||||
external: true
|
||||
backup_ai_webui_data:
|
||||
name: ai_webui_data
|
||||
external: true
|
||||
backup_ai_crawl4ai_data:
|
||||
name: ai_crawl4ai_data
|
||||
external: true
|
||||
|
||||
networks:
|
||||
compose_network:
|
||||
|
||||
@@ -280,6 +280,26 @@
|
||||
"monthly": 3
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "ai-backup",
|
||||
"repo": "hidrive-backup",
|
||||
"paths": [
|
||||
"/volumes/ai_postgres_data",
|
||||
"/volumes/ai_webui_data",
|
||||
"/volumes/ai_crawl4ai_data"
|
||||
],
|
||||
"schedule": {
|
||||
"cron": "0 3 * * *"
|
||||
},
|
||||
"retention": {
|
||||
"policyTimeBucketed": {
|
||||
"daily": 7,
|
||||
"weekly": 4,
|
||||
"monthly": 6,
|
||||
"yearly": 2
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user