SearXNG 部署指南
环境要求
- Python 版本:≥ 3.11(推荐 3.13)
- 依赖管理:pip
- 配置目录 :
~/.searxng/
安装步骤
1. 克隆 SearXNG 仓库
bash
cd ~
git clone https://github.com/searxng/searxng.git
2. 安装 Python 依赖
bash
cd searxng
pip install -r requirements.txt
注意 :Python 3.10 用户需额外安装
tomli兼容包:
bashpip install tomli
3. 创建配置目录并复制配置文件
bash
mkdir -p ~/.searxng
cp searx/settings.yml ~/.searxng/settings.yml
4. 配置环境变量并启动服务
bash
cd ~/searxng
export SEARXNG_SECRET=$(openssl rand -hex 32)
export SEARXNG_SETTINGS_PATH=~/.searxng/settings.yml
PYTHONPATH=. /home/frank/miniconda3/bin/python searx/webapp.py &
服务配置
默认监听地址
- 地址:127.0.0.1
- 端口:8888
外网访问配置
如需外网访问,修改 ~/.searxng/settings.yml 中的 bind_address:
yaml
server:
bind_address: "0.0.0.0"
反向代理配置(推荐)
使用 Nginx 或 Caddy 配置反向代理,将域名指向 SearXNG 服务。
常见问题
1. Python 版本不足
问题:SearXNG 要求 Python ≥ 3.11,系统默认 Python 3.10 不满足要求。
解决方案:
-
使用 conda 环境(推荐):
bashconda activate base # Python 3.13 cd ~/searxng pip install -r requirements.txt
2. Docker 权限不足
问题 :无法访问 /var/run/docker.sock。
解决方案:
- 避免使用 Docker 部署
- 直接使用 Python 运行服务
3. SQLite 多线程警告
警告内容 :SQLite is not configured for multi-threaded access
解决方案 :在 settings.yml 中配置 SQLite 连接池:
yaml
database:
url: "sqlite:///searx.sqlite"
connection_args:
check_same_thread: false
4. 部分引擎初始化失败
原因:部分引擎需要网络访问或 Tor(如 wikidata、ahmia)。
影响:不影响基本搜索功能,可后续配置启用。
启动脚本(推荐)
创建 ~/searxng/start.sh:
bash
#!/bin/bash
cd ~/searxng
export SEARXNG_SECRET=$(openssl rand -hex 32)
export SEARXNG_SETTINGS_PATH=~/.searxng/settings.yml
PYTHONPATH=. /home/user/miniconda3/bin/python searx/webapp.py
运行:
bash
chmod +x ~/searxng/start.sh
nohup ~/searxng/start.sh > ~/searxng/searxng.log 2>&1 &
验证部署
访问 http://127.0.0.1:8888,页面正常显示即表示部署成功。