Skip to content

自行部署

前置要求

要自行部署 Refly,您需要安装以下软件:

  • Docker
  • Docker Compose
  • 可选:PostgreSQL 客户端(可以是 psql 或基于 GUI 的工具),用于管理可用的 LLM 模型

INFO

我们计划在未来提供功能完善的原生应用程序,以隐私为重点提供无缝的安装体验。敬请期待!

部署步骤

  1. 克隆代码仓库
bash
git clone https://github.com/refly-ai/refly.git

TIP

如果您只需要使用 Docker 部署,可以在 clone 命令中添加 --depth 1 参数来节省磁盘空间和下载时间。

  1. 准备环境配置
bash
cd refly/deploy/docker
cp .env.example .env

环境变量说明:

  • LLM 推理相关环境变量
    • OPENAI_API_KEY:您的 OpenAI API 密钥
    • OPENROUTER_API_KEY:您的 OpenRouter API 密钥(如果提供,将覆盖官方 OpenAI 端点)
  • 向量嵌入相关环境变量
    • EMBEDDINGS_PROVIDER:向量嵌入提供商,目前支持 openaijinafireworks
    • EMBEDDINGS_MODEL_NAME:向量嵌入模型名称,不同提供商可能不同
    • OPENAI_API_KEY:如果 EMBEDDINGS_PROVIDERopenai 则必需
    • JINA_API_KEY:如果 EMBEDDINGS_PROVIDERjina 则必需
    • FIREWORKS_API_KEY:如果 EMBEDDINGS_PROVIDERfireworks 则必需
  • 网络搜索相关环境变量
    • SERPER_API_KEY:Serper API 密钥

TIP

所有配置选项的完整列表可以在配置指南中找到。

WARNING

目前,应用程序将使用 OpenRouter 兼容的模型名称进行配置。如果未提供 OPENROUTER_API_KEY,应用程序将使用官方 OpenAI 端点,此时您需要对模型配置进行调整:

sql
UPDATE refly.model_info SET name = TRIM(LEADING 'openai/' FROM name) WHERE provider = 'openai';
  1. 启动 docker compose
bash
docker compose up -d

您可以运行 docker ps 来检查容器的状态。每个容器的预期状态应该是 Uphealthy。以下是示例输出:

bash
CONTAINER ID   IMAGE                                      COMMAND                  CREATED       STATUS                 PORTS                                                                                  NAMES
71681217973e   reflyai/refly-api:latest                   "docker-entrypoint.s…"   5 hours ago   Up 5 hours (healthy)   3000/tcp, 0.0.0.0:5800-5801->5800-5801/tcp, :::5800-5801->5800-5801/tcp                refly_api
462d7e1181ca   reflyai/qdrant:v1.13.1                     "./entrypoint.sh"        5 hours ago   Up 5 hours (healthy)   0.0.0.0:6333-6334->6333-6334/tcp, :::6333-6334->6333-6334/tcp                          refly_qdrant
fd287fa0a04e   redis/redis-stack:6.2.6-v18                "/entrypoint.sh"         5 hours ago   Up 5 hours (healthy)   0.0.0.0:6379->6379/tcp, :::6379->6379/tcp, 0.0.0.0:8001->8001/tcp, :::8001->8001/tcp   refly_redis
16321d38fc34   reflyai/refly-web:latest                   "/docker-entrypoint.…"   5 hours ago   Up 5 hours             0.0.0.0:5700->80/tcp, [::]:5700->80/tcp                                                refly_web
2e14ec2e55a2   reflyai/elasticsearch:7.10.2               "/tini -- /usr/local…"   5 hours ago   Up 5 hours (healthy)   0.0.0.0:9200->9200/tcp, :::9200->9200/tcp, 9300/tcp                                    refly_elasticsearch
a13f349fe35b   minio/minio:RELEASE.2025-01-20T14-49-07Z   "/usr/bin/docker-ent…"   5 hours ago   Up 5 hours (healthy)   0.0.0.0:9000-9001->9000-9001/tcp, :::9000-9001->9000-9001/tcp                          refly_minio
e7b398dbd02b   postgres:16-alpine                         "docker-entrypoint.s…"   5 hours ago   Up 5 hours (healthy)   0.0.0.0:5432->5432/tcp, :::5432->5432/tcp                                              refly_db

最后,您可以通过访问 http://localhost:5700 来使用 Refly 应用程序。

故障排除

如果应用程序无法正常运行,您可以尝试以下步骤:

  1. 运行 docker ps 来识别不健康的容器。
  2. 运行 docker logs <container_id> 来获取更多错误信息。
  3. 如果不健康的容器是 refly_api,您可以运行 docker restart refly_api 来重启容器。
  4. 对于其他容器,您可以在容器日志中搜索错误消息的原因。

如果问题仍然存在,您可以在我们的 GitHub 仓库提出问题,或在我们的 Discord 服务器中联系我们。