Khoj 是一个开源的“第二大脑”AI 应用,能让你在自己的文档和互联网上进行语义搜索与对话。它支持自托管,数据完全由你掌控。

部署 Khoj 主要分为三种场景,你可以根据自己的需求选择最合适的方案:

🐳 方案一:使用 Docker Compose 部署(最通用)

这是官方推荐的方式,适合大多数用户,能一次性启动所有核心服务,包括主服务器、向量数据库、代码执行沙箱和搜索引擎。

1. 准备工作

  • 确保服务器已安装 DockerDocker Compose
  • (可选)如果你打算使用 Ollama 运行本地模型,请提前安装并启动 Ollama。

2. 下载与配置
在终端中执行以下命令:

1
2
3
4
5
# 创建并进入项目目录
mkdir ~/.khoj && cd ~/.khoj

# 下载官方 docker-compose.yml 文件
wget https://raw.githubusercontent.com/khoj-ai/khoj/master/docker-compose.yml

修改环境变量:编辑 docker-compose.yml 文件,在 server 服务的 environment 部分,必须设置以下变量:

  • KHOJ_ADMIN_EMAIL:你的管理员邮箱。
  • KHOJ_ADMIN_PASSWORD:你的管理员密码。
  • KHOJ_DJANGO_SECRET_KEY:一个长的随机字符串,用于会话加密。可用 openssl rand -hex 50 生成。
  • 添加模型API密钥(至少选择一个):
    • OPENAI_API_KEY:你的 OpenAI API 密钥。
    • ANTHROPIC_API_KEY:你的 Anthropic API 密钥。
    • GEMINI_API_KEY:你的 Google Gemini API 密钥。
  • 使用本地模型(如 Ollama):取消 OPENAI_BASE_URL 的注释,并将其值设置为你的 Ollama 服务地址(例如 http://host.docker.internal:11434)。

3. 启动服务

1
docker-compose up -d

等待镜像拉取和启动完成。

4. 访问与配置
打开浏览器访问 http://localhost:42110,使用你设置的管理员邮箱和密码登录。首次登录后,你可以在后台继续配置其他模型或上传文档。

☁️ 方案二:部署到云端(以 Railway 为例)

如果你想快速在云上部署,避免维护自己的服务器,Railway 提供了一键部署模板。

  1. 访问 Railway 上的 Khoj 部署页面(如 railway.com/deploy/khoj-self-hosted-ai-second-brain--khoj-ai-second-brain)。
  2. 点击 “Deploy Now” 按钮,按照指引连接 GitHub 账号。
  3. 在部署前,Railway 会让你设置环境变量,其中 必须填写 的包括 KHOJ_ADMIN_EMAILKHOJ_ADMIN_PASSWORDKHOJ_DJANGO_SECRET_KEY 以及至少一个大模型提供商的 API 密钥(如 OPENAI_API_KEY)。
  4. 点击部署,Railway 会自动为你配置好 PostgreSQL (pgvector)、Terrarium 沙箱和 SearxNG 搜索服务。部署完成后,Railway 会提供一个公网 URL 供你访问。

注意:在 Railway 这类平台部署时,建议将 GUNICORN_WORKERS 环境变量设为 23,以避免因默认工作进程数过多导致内存溢出(OOM)。

💻 方案三:从源码运行(高级用户/开发者)

这种方式更灵活,适合需要深度自定义或开发调试的用户。要求已安装 Python 3.11+ 环境。

1. 安装 Khoj
建议在虚拟环境中安装,以避免包冲突。

1
2
3
4
5
6
7
# 创建并激活虚拟环境(可选)
python -m venv khoj-env
source khoj-env/bin/activate # Linux/Mac
# 或 .\khoj-env\Scripts\activate # Windows

# 安装 Khoj 核心包(如需本地模型支持,请参考官方文档安装 khoj[local])
pip install khoj

2. 启动服务
使用匿名模式快速启动(适合本地单用户):

1
khoj --anonymous-mode

首次运行会引导你创建管理员账户。访问 http://localhost:42110 即可使用。

🔧 部署后配置要点

无论使用哪种方式,部署后建议进行以下配置:

  1. 添加聊天模型:登录管理员后台 (/server/admin),在“Server Chat Settings”中添加你拥有的模型 API 密钥。
  2. 配置代码执行(可选):如需让 AI 执行代码,需配置 Terrarium(本地)或 E2B(云端)沙箱。docker-compose.yml 已包含 Terrarium 服务,通常无需额外操作。
  3. 设置远程访问(如需从外网访问):务必配置好反向代理(如 Nginx)并启用 HTTPS。同时,需要设置 KHOJ_DOMAINKHOJ_ALLOWED_DOMAIN 环境变量,以解决跨域和 CSRF 验证问题。

部署中最关键的是确保 LLM API 密钥配置正确,以及如果是远程访问,务必做好安全加固(如使用 HTTPS 和强密码)。文档中提到的 KHOJ_ANONYMOUS_MODE=true 适合本地局域网使用,暴露到公网时强烈建议关闭此模式并设置强密码。