Self-host Khoj: Как создать свое личное AI-второе мозг для поиска и автоматизации
Полный гайд по развертыванию Khoj — self-hostable AI-второго мозга. Узнайте, как настроить личный ассистент для поиска по документам, вебу и LLM, сохраняя полный контроль над данными.
Создание рабочей директории
Откройте терминал и создайте папку для Khoj.
mkdir khoj
cd khojСоздание файла docker-compose.yml
Создайте файл docker-compose.yml в папке khoj и скопируйте в него следующую конфигурацию. Замените your-secret-key-here на случайную строку (генерация: openssl rand -hex 32) и укажите параметры LLM (провайдер, ключ, модель). Для локальной модели через Ollama убедитесь, что Ollama запущен.
version: '3'
services:
khoj:
image: khojai/khoj:latest
container_name: khoj
restart: unless-stopped
environment:
- KHOJ_BACKEND_PORT=8000
- KHOJ_FRONTEND_PORT=4200
- KHOJ_DATABASE_URL=postgresql://postgres:password@db:5432/khoj
- KHOJ_DB_USER=postgres
- KHOJ_DB_PASSWORD=password
- KHOJ_DB_NAME=khoj
- KHOJ_DB_HOST=db
- KHOJ_REDIS_URL=redis://redis:6379/0
- KHOJ_SECRET_KEY=your-secret-key-here
- KHOJ_DEBUG=False
- KHOJ_LLM_PROVIDER=openai # или ollama, anthropic
- KHOJ_LLM_API_KEY=sk-... # Ваш API-ключ (если используете OpenAI)
- KHOJ_LLM_MODEL=gpt-3.5-turbo # Модель (например, gpt-3.5-turbo или llama3:8b для Ollama)
ports:
- "4200:4200" # Фронтенд
- "8000:8000" # Бэкенд (API)
volumes:
- ./khoj_data:/app/data
depends_on:
- db
- redis
networks:
- khoj_net
db:
image: postgres:15
container_name: khoj_db
restart: unless-stopped
environment:
- POSTGRES_USER=postgres
- POSTGRES_PASSWORD=password
- POSTGRES_DB=khoj
volumes:
- ./postgres_data:/var/lib/postgresql/data
networks:
- khoj_net
redis:
image: redis:7-alpine
container_name: khoj_redis
restart: unless-stopped
command: redis-server --appendonly yes
volumes:
- ./redis_data:/data
networks:
- khoj_net
networks:
khoj_net:
driver: bridgeЗапуск контейнеров
В терминале в папке khoj выполните команду для запуска контейнеров в фоновом режиме.
docker compose up -dПроверка статуса и логов
Убедитесь, что контейнеры запущены, и проверьте логи на наличие ошибок.
docker compose ps
docker compose logs -f khojПервичная настройка LLM
Откройте веб-интерфейс Khoj по адресу http://<ваш_адрес_сервера>:4200 (например, http://localhost:4200). Перейдите в раздел 'Settings' -> 'LLM'. Выберите провайдера (OpenAI, Ollama, Anthropic) и укажите необходимые параметры (API-ключ, URL для Ollama, модель). Для локальной модели через Ollama убедитесь, что хост доступен из контейнера (например, http://host.docker.internal:11434).
Настройка базы знаний (Data Sources)
В разделе 'Data Sources' добавьте источники данных. Для локальных файлов укажите путь внутри контейнера (например, /app/data/my_files). Сначала создайте папку на хосте: mkdir -p ./khoj_data/my_files. Для веб-страниц укажите URL. После добавления нажмите 'Save' или 'Sync' для начала индексации.
Проверка работы
Перейдите в раздел 'Chat' или 'Search' и задайте вопрос, относящийся к вашим данным (например, 'Что было в отчете за прошлый квартал?'). Khoj вернет ответ с цитатами из источников.
Безопасность и бэкап
Настройте firewall для портов 4200 и 8000, используйте HTTPS через reverse proxy. Для бэкапа создайте скрипт backup.sh и настройте cron.
#!/bin/bash
BACKUP_DIR=/path/to/backup/khoj/$(date +%Y%m%d)
mkdir -p $BACKUP_DIR
cp -r ./khoj_data $BACKUP_DIR/
docker exec khoj_db pg_dump -U postgres khoj > $BACKUP_DIR/khoj_db.sql
echo "Backup created at $BACKUP_DIR"