绿联NAS上利用Docker部署SearXNG与Open-WebUI的YAML配置实战

张开发
2026/4/6 11:18:43 15 分钟阅读

分享文章

绿联NAS上利用Docker部署SearXNG与Open-WebUI的YAML配置实战
1. 绿联NAS与Docker的完美组合如果你手头有一台绿联NAS那你就拥有了一个强大的家庭数据中心。作为国产NAS中的佼佼者绿联NAS不仅提供了友好的操作界面还内置了Docker支持这让它成为了技术爱好者折腾的理想平台。我用了大半年时间在绿联NAS上部署各种服务最让我惊喜的就是它的Docker兼容性——和群晖、威联通这些国际大牌相比毫不逊色。为什么要用Docker部署服务想象一下你家的NAS是个大房子每个Docker容器就是一间独立的小房间。SearXNG和Open-WebUI这两个服务如果直接安装在系统里就像把家具都堆在客厅既混乱又容易冲突。而用Docker部署就像给它们各自分配了专属房间互不干扰还方便管理。2. SearXNG元搜索引擎初探SearXNG可能对很多人来说还是个陌生名字但它其实是个非常有意思的开源元搜索引擎。简单来说它就像个搜索代理当你输入关键词时它会同时向Google、Bing、DuckDuckGo等多家搜索引擎发送请求然后把结果去重、排序后呈现给你。这样做有两个明显好处一是避免了单一搜索引擎的偏见二是保护了隐私——因为这些搜索引擎只能看到SearXNG服务器的IP而不是你的真实IP。我在绿联NAS上部署SearXNG后发现它特别适合用来做技术资料的对比搜索。比如搜索某个编程问题可以一次性看到Stack Overflow、GitHub、官方文档等多个来源的结果。配置得当的话搜索速度也很快基本感觉不到延迟。3. Open-WebUI的定制化需求Open-WebUI是SearXNG的一个现代化用户界面插件它让这个原本技术感很强的搜索引擎变得对普通用户更友好。默认安装的SearXNG界面比较简陋而Open-WebUI提供了更美观的布局、暗黑模式支持、以及更直观的搜索过滤选项。但在绿联NAS上部署时我发现Open-WebUI有些配置需要特别注意。比如它的默认绑定地址是127.0.0.1这意味着只能从NAS本地访问。为了让家里其他设备也能使用需要修改为0.0.0.0。另外界面语言、主题颜色等设置也需要通过YAML文件预先配置好。4. 实战部署全流程4.1 准备工作首先确保你的绿联NAS已经开启Docker服务。以UGOS系统为例进入「应用管理」→「Docker」→「服务设置」确认Docker引擎已启用。建议同时开启自动启动选项这样NAS重启后容器会自动恢复。接下来需要通过SSH连接到NAS。在「系统设置」→「高级设置」中开启SSH然后用终端连接ssh admin你的NAS本地IP输入密码后建议先创建一个专用目录来存放配置文件mkdir -p /mnt/用户数据/docker/searxng cd /mnt/用户数据/docker/searxng4.2 编写docker-compose.yml这是整个部署的核心文件我优化后的版本如下version: 3.8 services: searxng: image: searxng/searxng:latest container_name: searxng ports: - 8080:8080 volumes: - ./searxng:/etc/searxng environment: - SEARXNG_BASE_URLhttp://你的NAS本地IP:8080/ restart: unless-stopped networks: - searxng-net openwebui: image: ghcr.io/searxng/searxng-open-webui:main container_name: searxng-openwebui ports: - 8081:8080 volumes: - ./openwebui/config:/app/config depends_on: - searxng restart: unless-stopped networks: - searxng-net networks: searxng-net: driver: bridge关键参数说明ports映射中冒号左边是主机端口右边是容器端口volumes将配置持久化到NAS本地避免容器重启后设置丢失networks让两个容器在同一个虚拟网络内方便互相通信4.3 配置SearXNG创建配置文件目录并设置权限mkdir -p searxng chmod 755 searxng新建searxng/settings.yml文件这是我的推荐配置server: bind_address: 0.0.0.0 port: 8080 base_url: http://你的NAS本地IP:8080/ secret_key: 你的随机密钥 # 可以用openssl rand -hex 32生成 search: safe_search: 0 autocomplete: google default_lang: zh-CN ui: default_theme: simple center_alignment: true static_use_hash: false4.4 配置Open-WebUI创建Open-WebUI的配置目录mkdir -p openwebui/config新建openwebui/config/config.ymlgeneral: debug: false instance_name: 我的私人搜索 contact_url: mailto:你的邮箱example.com brand: new_issue_url: https://github.com/searxng/searxng/issues docs_url: https://docs.searxng.org server: bind_address: 0.0.0.0 port: 8080 base_url: http://你的NAS本地IP:8081/4.5 启动服务一切就绪后在包含docker-compose.yml的目录下执行docker-compose up -d首次启动会下载镜像耐心等待完成后就可以通过浏览器访问SearXNG原始界面http://你的NAS本地IP:8080Open-WebUI界面http://你的NAS本地IP:80815. 常见问题排查5.1 端口冲突问题如果启动时报错端口被占用可以通过以下命令查看占用情况netstat -tulnp | grep 8080然后修改docker-compose.yml中的端口映射比如改成8082:8080。5.2 镜像拉取失败国内用户可能会遇到拉取镜像慢的问题可以尝试修改docker-compose.yml中的镜像地址image: dockerproxy.com/searxng/searxng:latest或者在NAS的Docker设置中配置镜像加速器。5.3 界面无法访问检查容器是否正常运行docker ps -a如果容器状态不是Up查看日志docker logs searxng docker logs searxng-openwebui6. 进阶优化建议6.1 启用HTTPS为了安全考虑建议通过反向代理配置HTTPS。如果你有域名可以使用绿联NAS自带的Nginx或者单独部署一个Nginx容器。6.2 定期更新SearXNG和Open-WebUI都在活跃开发中建议每季度更新一次docker-compose pull docker-compose up -d --force-recreate6.3 性能调优如果搜索响应慢可以修改settings.yml中的超时设置outgoing: request_timeout: 2.0 max_request_timeout: 5.0 pool_connections: 50 pool_maxsize: 107. 实际使用体验经过三个月的实际使用这个组合完全满足了我的家庭搜索需求。特别是技术文档搜索方面比直接用Google效率更高。家人也喜欢Open-WebUI的简洁界面说比百度清爽多了。内存占用方面两个容器加起来大约占用300MB对NAS性能影响很小。

更多文章