最近自己研究Dify,使用到Firecrawl这个比较好用的工具。用Firecrawl官网的不知道为什么总是卡住得不到结果,于是我打算自己去本地部署一个。好家伙真给我人搞麻了,太多问题了。
我是在京东云上面租的一台服务器。
首先就是docker的安装,这里个人建议选个比较新的版本,因为我有个服务器装了个旧一点的版本的docker 装到后面给我报rust版本错误了。不知道啥原因,由于这个服务器要跑dify就没在这个服务器上面弄了。
error: failed to parse lock file at: /app/sharedLibs/html-transformer/Cargo.lock Caused by: lock file version `4` was found, but this version of Cargo does not understand this lock file, perhaps Cargo needs to be updated?
如果有rust版本错误的,可以去修改firecrawl/apps/api/Dockerfile这个文件的内容
把FROM rust:1-slim AS rust-base 该为 FROM rust:1.70 AS rust-base
然后就是 GO访问不了外网的问题
Get "https://proxy.golang.org/github.com/tomkosm/html-to-markdown/@v/v0.0.0-20250128162844-2f19490e042d.zip": dial tcp 142.250.217.81:443: i/o timeout
在firecrawl/apps/api/Dockerfile中
RUN cd /app/sharedLibs/go-html-to-md && \
go mod tidy && \
go build -o html-to-markdown.so -buildmode=c-shared html-to-markdown.go && \
chmod +x html-to-markdown.so
前面加上一行 设置国内代理
ENV GOPROXY=https://goproxy.cn,direct
最后当我部署完成之后用dify调用,总是说未授权,找了很久发现是开始设置环境配置文件.env 的时候里面的参数有问题。我是从apps/api 里面复制 .env.example过来的的.env
把你在firecrawl目录下配置的 .env文件中的 USE_DB_AUTHENTICATION 设置为false
还有就是部署过程中有些包下载的很慢,需要耐心等待
最后感谢下面这些文章,帮助我解决了很多问题。也感谢通义和Gemini 的帮助
https://blog.csdn.net/zjw529507929/article/details/146218875
https://blog.csdn.net/Lb_jay/article/details/147632780
https://docs.firecrawl.dev/contributing/self-host
https://blog.csdn.net/weixin_51455837/article/details/145712180