自行部署
前置要求
要自行部署 Refly,您需要安装以下软件:
- Docker
- Docker Compose
- 可选:PostgreSQL 客户端(可以是
psql
或基于 GUI 的工具),用于管理可用的 LLM 模型
INFO
我们计划在未来提供功能完善的原生应用程序,以隐私为重点提供无缝的安装体验。敬请期待!
部署步骤
- 克隆代码仓库
bash
git clone https://github.com/refly-ai/refly.git
TIP
如果您只需要使用 Docker 部署,可以在 clone
命令中添加 --depth 1
参数来节省磁盘空间和下载时间。
- 准备环境配置
bash
cd refly/deploy/docker
cp .env.example .env
环境变量说明:
- LLM 推理相关环境变量:
OPENAI_API_KEY
:您的 OpenAI API 密钥OPENROUTER_API_KEY
:您的 OpenRouter API 密钥(如果提供,将覆盖官方 OpenAI 端点)
- 向量嵌入相关环境变量:
EMBEDDINGS_PROVIDER
:向量嵌入提供商,目前支持openai
、jina
和fireworks
EMBEDDINGS_MODEL_NAME
:向量嵌入模型名称,不同提供商可能不同OPENAI_API_KEY
:如果EMBEDDINGS_PROVIDER
为openai
则必需JINA_API_KEY
:如果EMBEDDINGS_PROVIDER
为jina
则必需FIREWORKS_API_KEY
:如果EMBEDDINGS_PROVIDER
为fireworks
则必需
- 网络搜索相关环境变量:
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';
- 启动 docker compose
bash
docker compose up -d
您可以运行 docker ps
来检查容器的状态。每个容器的预期状态应该是 Up
和 healthy
。以下是示例输出:
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 应用程序。
故障排除
如果应用程序无法正常运行,您可以尝试以下步骤:
- 运行
docker ps
来识别不健康的容器。 - 运行
docker logs <container_id>
来获取更多错误信息。 - 如果不健康的容器是
refly_api
,您可以运行docker restart refly_api
来重启容器。 - 对于其他容器,您可以在容器日志中搜索错误消息的原因。
如果问题仍然存在,您可以在我们的 GitHub 仓库提出问题,或在我们的 Discord 服务器中联系我们。