自行托管
了解如何在您的机器上自行托管 Khoj。
自行托管的优势:
- 隐私性:您的数据永远不会离开您的私有网络。如果在个人电脑上部署,您甚至可以在没有互联网连接的情况下使用 Khoj。
- 可定制性:您可以按需定制 Khoj,从模型选择到主机 URL,再到功能启用。
设置 Khoj
以下是自行托管 Khoj 的通用设置说明。您可以通过 Docker 或 Pip 安装 Khoj 服务器。
离线模型 + GPU
要使用离线聊天模型并启用 GPU 加速,我们推荐使用带 Ollama 的 Docker 方案。您也可以直接通过 Python 包进行本地 Khoj 设置。
首次运行
首次运行后请重启 Khoj 服务器以确保所有设置正确应用。
• Docker • Pip
• MacOS • Windows • Linux
先决条件
Docker
• 选项1:点击安装 Docker Desktop。请确保同时安装 Docker Compose 工具。 • 选项2:使用 Homebrew 安装 Docker 和 Docker Compose。
brew install --cask docker
brew install docker-compose
设置步骤
从 Github 下载 Khoj 的 docker-compose.yml 文件
mkdir ~/.khoj && cd ~/.khoj
wget https://raw.githubusercontent.com/khoj-ai/khoj/master/docker-compose.yml
配置
docker-compose.yml
中的环境变量 • 设置安全的KHOJ_ADMIN_PASSWORD
、KHOJ_DJANGO_SECRET_KEY
(可选设置KHOJ_ADMIN_EMAIL
)。这将允许您通过管理面板后续定制 Khoj。 • 如需使用 OpenAI、Anthropic 或 Gemini 的商业聊天模型,请设置对应的OPENAI_API_KEY
、ANTHROPIC_API_KEY
或GEMINI_API_KEY
。 • 取消注释OPENAI_BASE_URL
以使用主机运行的 Ollama,或设置为您的 OpenAI 兼容 API(如 vLLM 或 LMStudio)的 URL。在包含 docker-compose.yml 文件的目录中运行以下命令启动 Khoj
cd ~/.khoj
docker-compose up
先决条件
安装 WSL2 并重启机器
# 在 PowerShell 中运行
wsl --install
安装 Docker Desktop 并启用 WSL2 后端(默认选项)
设置步骤
从 Github 下载 Khoj 的 docker-compose.yml 文件
# Windows 用户应使用 WSL2 终端运行这些命令
mkdir ~/.khoj && cd ~/.khoj
wget https://raw.githubusercontent.com/khoj-ai/khoj/master/docker-compose.yml
配置
docker-compose.yml
中的环境变量(同 MacOS 步骤)启动命令(需在 WSL2 终端运行):
cd ~/.khoj
docker-compose up
先决条件
安装 Docker Desktop。您也可以使用系统包管理器安装 Docker Engine 和 Docker Compose。
设置步骤
- 下载 docker-compose.yml 文件(同 MacOS 步骤)
- 环境变量配置(同 MacOS 步骤)
启动命令:
cd ~/.khoj
docker-compose up
远程访问
默认情况下 Khoj 仅限运行主机访问。要从远程机器访问,请参阅 远程访问文档。
当终端服务器日志显示 🌖 Khoj is ready to use
时表示设置完成。
使用 Khoj
现在您可以通过 http://localhost:42110 访问网页应用开始交互!
以下定制步骤可选:
添加聊天模型
登录管理面板
访问 http://localhost:42110/server/admin 使用安装时设置的管理员凭证登录。
配置模型
支持本地和在线聊天模型:
• OpenAI • Anthropic • Gemini • 离线模型
同步知识库
• 通过桌面端/Obsidian/Emacs 客户端同步文件 • 直接同步 Notion 工作区 • 网页端支持拖拽上传文件
升级与卸载
升级服务器
• Pip 用户:pip install --upgrade khoj
• Docker 用户:在 docker-compose.yml 目录运行 docker-compose up --build
卸载
• Pip 用户:卸载包后删除 PostgreSQL 数据库
• Docker 用户:运行 docker-compose down --volumes
故障排查
常见问题解决方案包括: • 使用虚拟环境解决依赖冲突 • 安装 Rust 编译 tokenizers 包 • 增加 Docker 内存分配
(注:为保持简洁,部分重复操作步骤已合并,完整流程请参考原文链接)