Docker Compose部署whoogle-search:多服务协同

Docker Compose部署whoogle-search:多服务协同

【免费下载链接】whoogle-search A self-hosted, ad-free, privacy-respecting metasearch engine 【免费下载链接】whoogle-search 项目地址: https://gitcode.com/GitHub_Trending/wh/whoogle-search

引言:隐私搜索的容器化解决方案

你是否厌倦了搜索引擎无休止的广告追踪?是否担心每次查询都在暴露隐私?本文将带你通过Docker Compose实现Whoogle Search的多服务协同部署,5分钟搭建属于自己的隐私搜索引擎。读完本文你将获得:

  • 掌握Docker Compose多服务编排技巧
  • 实现Traefik反向代理与自动HTTPS
  • 深度定制Whoogle环境变量
  • 构建高可用隐私搜索集群

技术栈概览

组件版本作用
Docker20.10+容器运行时
Docker Compose2.4服务编排工具
Whoogle Searchlatest隐私搜索引擎
Traefikv2.7反向代理/负载均衡
Let's Encrypt-免费SSL证书

mermaid

环境准备

系统要求

  • 2核CPU/2GB内存
  • Docker Engine 20.10+
  • Docker Compose 2.0+
  • 网络带宽≥1Mbps

安装依赖

# Ubuntu/Debian
sudo apt update && sudo apt install -y docker.io docker-compose-plugin
sudo systemctl enable --now docker

# 验证安装
docker --version && docker compose version

克隆代码仓库

git clone https://gitcode.com/GitHub_Trending/wh/whoogle-search
cd whoogle-search

基础部署:单服务模式

配置文件解析

docker-compose.yml核心配置

version: "2.4"
services:
  whoogle-search:
    image: ${WHOOGLE_IMAGE:-benbusby/whoogle-search}
    container_name: whoogle-search
    restart: unless-stopped
    pids_limit: 50
    mem_limit: 256mb
    memswap_limit: 256mb
    user: whoogle
    security_opt:
      - no-new-privileges
    cap_drop:
      - ALL
    tmpfs:
      - /config/:size=10M,uid=927,gid=927,mode=1700
      - /var/lib/tor/:size=15M,uid=927,gid=927,mode=1700
      - /run/tor/:size=1M,uid=927,gid=927,mode=1700
    ports:
      - 5000:5000

⚠️ 注意:使用version 2.4而非3.x,因为mem_limit在非swarm模式下的3.x版本中不生效

环境变量配置

复制环境变量模板并修改:

cp whoogle.template.env whoogle.env

关键环境变量配置

# 基础认证(可选)
WHOOGLE_USER=admin
WHOOGLE_PASS=your_secure_password

# 搜索引擎替代配置
WHOOGLE_ALT_TW=farside.link/nitter
WHOOGLE_ALT_YT=farside.link/invidious
WHOOGLE_ALT_RD=farside.link/libreddit

# 安全配置
WHOOGLE_CONFIG_DISABLE=1
WHOOGLE_CONFIG_SAFE=1

启动服务

docker compose up -d

# 查看状态
docker compose ps
# 查看日志
docker compose logs -f --tail 50

验证部署:访问 http://localhost:5000 应看到Whoogle搜索界面

高级部署:Traefik反向代理模式

架构优势

mermaid

Traefik配置

docker-compose-traefik.yaml核心配置:

version: "2.4"
services:
  traefik:
    image: "traefik:v2.7"
    container_name: "traefik"
    command:
      - "--providers.docker=true"
      - "--providers.docker.exposedbydefault=false"
      - "--entrypoints.websecure.address=:443"
      - "--certificatesresolvers.myresolver.acme.tlschallenge=true"
      - "--certificatesresolvers.myresolver.acme.email=your@email.com"
      - "--certificatesresolvers.myresolver.acme.storage=/letsencrypt/acme.json"
    ports:
      - "443:443"
      - "8080:8080"  # Dashboard
    volumes:
      - "./letsencrypt:/letsencrypt"
      - "/var/run/docker.sock:/var/run/docker.sock:ro"

  whoogle-search:
    labels:
      - "traefik.enable=true"
      - "traefik.http.routers.whoogle.rule=Host(`search.yourdomain.com`)"
      - "traefik.http.routers.whoogle.entrypoints=websecure"
      - "traefik.http.routers.whoogle.tls.certresolver=myresolver"
    # ... 其他配置与基础模式相同

启动Traefik模式

# 修改域名配置
sed -i 's/change.host.name/search.yourdomain.com/' docker-compose-traefik.yaml
sed -i 's/change@domain.name/your@email.com/' docker-compose-traefik.yaml

# 启动服务
docker compose -f docker-compose-traefik.yaml up -d

访问Traefik Dashboard:http://localhost:8080 (仅本地访问)

多环境部署策略

环境对比表格

部署模式适用场景优势复杂度资源需求
单服务模式个人使用配置简单,资源占用低
Traefik模式多用户共享HTTPS支持,可扩展性强⭐⭐⭐
集群模式企业级部署高可用,负载均衡⭐⭐⭐⭐⭐

多实例负载均衡

创建docker-compose-cluster.yaml:

version: "2.4"
services:
  traefik:
    # ... 同Traefik模式配置

  whoogle-1:
    labels:
      - "traefik.http.services.whoogle.loadbalancer.server.port=5000"
    # ... 其他配置

  whoogle-2:
    labels:
      - "traefik.http.services.whoogle.loadbalancer.server.port=5000"
    # ... 其他配置

性能优化与安全加固

资源限制优化

services:
  whoogle-search:
    pids_limit: 50          # 限制进程数
    mem_limit: 256mb        # 内存限制
    memswap_limit: 256mb    # 交换空间限制
    tmpfs:                  # 临时文件系统
      - /config/:size=10M,uid=927,gid=927,mode=1700
      - /var/lib/tor/:size=15M,uid=927,gid=927,mode=1700

安全配置

capabilities降权

cap_drop:
  - ALL                     # 删除所有Linux capabilities
security_opt:
  - no-new-privileges       # 禁止权限提升
user: whoogle               # 使用非root用户运行

监控与日志

# 安装ctop监控容器
docker run --rm -ti --name=ctop -v /var/run/docker.sock:/var/run/docker.sock ctop:latest

# 设置日志轮转
echo '{"log-driver": "json-file", "log-opts": {"max-size": "10m", "max-file": "3"}}' | sudo tee /etc/docker/daemon.json
sudo systemctl restart docker

常见问题解决

证书申请失败

# 检查网络连通性
docker exec -it traefik curl -I https://acme-v02.api.letsencrypt.org

# 查看证书申请日志
docker compose -f docker-compose-traefik.yaml logs traefik | grep acme

性能优化建议

  1. 启用缓存:添加Redis缓存服务
  2. 调整内存:根据使用量调整mem_limit
  3. 定期重启:添加健康检查自动重启
healthcheck:
  test: ["CMD", "curl", "-f", "http://localhost:5000"]
  interval: 30s
  timeout: 10s
  retries: 3
restart: on-failure

升级策略

# 备份配置
cp whoogle.env whoogle.env.bak

# 拉取最新镜像
docker compose pull

# 重启服务
docker compose up -d

总结与展望

通过Docker Compose部署Whoogle Search,我们实现了:

  • 快速部署:5分钟完成从0到1的私有化搜索引擎搭建
  • 安全加固:非root用户运行、capabilities降权、TLS加密
  • 灵活扩展:单服务/多服务/集群模式按需选择

未来可以进一步探索:

  • 分布式部署:跨节点负载均衡
  • 全文索引:集成Elasticsearch提升搜索效率
  • 多引擎聚合:同时查询多个后端搜索引擎

附录:完整配置文件

docker-compose.yml完整内容

version: "2.4"

services:
  whoogle-search:
    image: ${WHOOGLE_IMAGE:-benbusby/whoogle-search}
    container_name: whoogle-search
    restart: unless-stopped
    pids_limit: 50
    mem_limit: 256mb
    memswap_limit: 256mb
    user: whoogle
    security_opt:
      - no-new-privileges
    cap_drop:
      - ALL
    tmpfs:
      - /config/:size=10M,uid=927,gid=927,mode=1700
      - /var/lib/tor/:size=15M,uid=927,gid=927,mode=1700
      - /run/tor/:size=1M,uid=927,gid=927,mode=1700
    environment:
      - WHOOGLE_USER=admin
      - WHOOGLE_PASS=yourpassword
      - WHOOGLE_ALT_TW=farside.link/nitter
      - WHOOGLE_ALT_YT=farside.link/invidious
      - WHOOGLE_CONFIG_DISABLE=1
    ports:
      - 5000:5000

部署命令速查表

操作命令
启动基础服务docker compose up -d
启动Traefik服务docker compose -f docker-compose-traefik.yaml up -d
查看日志docker compose logs -f
重启服务docker compose restart
停止服务docker compose down
备份配置cp whoogle.env whoogle.env.bak

提示:收藏本文,关注后续《Whoogle Search高级定制指南》,解锁更多隐私搜索技巧!

【免费下载链接】whoogle-search A self-hosted, ad-free, privacy-respecting metasearch engine 【免费下载链接】whoogle-search 项目地址: https://gitcode.com/GitHub_Trending/wh/whoogle-search

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值