AgenticSeek Docker Compose配置:多服务协同工作的网络设置

AgenticSeek Docker Compose配置:多服务协同工作的网络设置

【免费下载链接】agenticSeek A open, local Manus AI alternative. Powered with Deepseek R1. No APIs, no $456 monthly bills. Enjoy an AI agent that reason, code, and browse with no worries. 【免费下载链接】agenticSeek 项目地址: https://gitcode.com/GitHub_Trending/ag/agenticSeek

多服务协同架构概述

AgenticSeek作为本地AI代理解决方案,通过Docker Compose实现了前端、后端、搜索服务和缓存系统的无缝协同。项目采用分层架构设计,各服务通过专用网络实现安全通信,同时保持开发灵活性和生产环境稳定性。核心服务包括:

  • 前端服务:React开发环境,提供用户交互界面
  • 后端服务:Python API服务,处理核心业务逻辑
  • SearXNG:元搜索引擎,提供聚合搜索能力
  • Redis:高性能缓存数据库,支持服务状态管理

Docker Compose核心配置解析

基础网络架构

项目使用agentic-seek-net桥接网络实现服务间通信,所有服务通过容器名称而非IP地址访问,提升配置稳定性。基础网络定义位于docker-compose.yml第107-109行:

networks:
  agentic-seek-net:
    driver: bridge

核心服务配置详解

Redis缓存服务

Redis作为状态存储核心,采用Valkey(Redis兼容版)实现数据持久化,配置位于docker-compose.yml第4-24行:

services:
  redis:
    container_name: redis
    profiles: ["core", "full"]
    image: docker.io/valkey/valkey:8-alpine
    command: valkey-server --save 30 1 --loglevel warning
    restart: unless-stopped
    volumes:
      - redis-data:/data
    networks:
      - agentic-seek-net

关键安全配置包括:

  • 权限最小化:仅添加必要Linux capabilities(SETGID、SETUID等)
  • 日志限制:单文件最大1MB,最多保留1个日志文件
  • 持久化存储:使用命名卷redis-data确保数据不丢失
SearXNG搜索服务

元搜索引擎配置位于docker-compose.yml第26-52行,通过8080端口提供搜索API:

searxng:
  container_name: searxng
  profiles: ["core", "full"]
  image: docker.io/searxng/searxng:latest
  ports:
    - "8080:8080"
  volumes:
    - ./searxng:/etc/searxng:rw,z
  environment:
    - SEARXNG_BASE_URL=${SEARXNG_BASE_URL:-http://localhost:8080/}
  depends_on:
    - redis
  networks:
    - agentic-seek-net

服务依赖关系通过depends_on确保启动顺序,本地配置文件通过绑定挂载实现实时更新,无需重建镜像。

前后端服务协同

前端React应用与后端Python API的通信通过环境变量配置实现:

前端配置docker-compose.yml第54-70行):

frontend:
  container_name: frontend
  build:
    context: ./frontend
    dockerfile: Dockerfile.frontend
  ports:
    - "3000:3000"
  environment:
    - REACT_APP_BACKEND_URL=http://localhost:7777
  volumes:
    - ./frontend/agentic-seek-front/src:/app/src:rw,z
  networks:
    - agentic-seek-net

后端配置docker-compose.yml第72-99行):

backend:
  container_name: backend
  build:
    context: .
    dockerfile: Dockerfile.backend
  ports:
    - ${BACKEND_PORT:-7777}:${BACKEND_PORT:-7777}
  environment:
    - SEARXNG_BASE_URL=${SEARXNG_BASE_URL:-http://searxng:8080}
    - REDIS_URL=${REDIS_BASE_URL:-redis://redis:6379/0}
  networks:
    - agentic-seek-net

特别注意:前端通过宿主机localhost:7777访问后端,而后端通过容器名称searxngredis访问其他服务,体现了Docker网络的多宿主通信特性。

多环境部署策略

服务组合管理

通过Docker Compose profiles实现灵活部署:

  • core:基础功能(Redis + SearXNG)
  • backend:仅后端服务
  • full:完整系统(全部服务)

启动完整系统命令:

docker-compose --profile full up -d

环境变量配置

敏感信息和环境特定参数通过环境变量注入,主要配置项包括:

  • API密钥:OPENAI_API_KEYDEEPSEEK_API_KEY等AI服务凭证
  • 端口映射:BACKEND_PORT自定义后端服务端口
  • 服务URL:SEARXNG_BASE_URLREDIS_URL等内部服务地址

建议通过.env文件管理这些变量,避免直接修改配置文件。

网络安全最佳实践

容器隔离措施

所有服务均采用最小权限原则:

  • 移除所有Linux capabilities,仅添加必要权限
  • 使用非root用户运行(SearXNG服务使用UID/GID 1000)
  • 挂载卷添加z选项(SELinux上下文标签)增强安全性

数据持久化方案

项目使用两种持久化策略:

  1. 命名卷:Redis数据存储(redis-data
  2. 绑定挂载:代码目录实时同步(前端src目录、后端代码根目录)

部署与维护指南

快速启动流程

  1. 克隆仓库:
git clone https://gitcode.com/GitHub_Trending/ag/agenticSeek
cd agenticSeek
  1. 启动完整服务:
docker-compose --profile full up -d
  1. 访问服务:
  • 前端界面:http://localhost:3000
  • 后端API:http://localhost:7777
  • 搜索服务:http://localhost:8080

服务状态监控

查看运行状态:

docker-compose ps

查看服务日志(以下以backend为例):

docker-compose logs -f backend

配置更新方法

修改配置文件后无需重启整个系统,仅需重启相关服务:

# 修改后端代码后
docker-compose restart backend

# 更新SearXNG配置后
docker-compose restart searxng

架构优化建议

网络性能调优

对于生产环境,建议:

  1. agentic-seek-net网络驱动改为macvlan实现直接网络接入
  2. 添加Traefik反向代理实现SSL终止和请求路由
  3. 配置Redis主从复制提高缓存服务可用性

资源限制配置

为避免资源竞争,可添加资源限制:

services:
  backend:
    deploy:
      resources:
        limits:
          cpus: '2'
          memory: 2G
        reservations:
          cpus: '0.5'
          memory: 512M

总结

AgenticSeek通过Docker Compose实现了复杂AI代理系统的简化部署,核心优势包括:

  • 服务解耦:各组件独立扩展,避免单点故障
  • 环境一致性:开发与生产环境配置统一
  • 安全隔离:最小权限原则和网络隔离保护系统安全
  • 灵活扩展:通过profiles和环境变量支持多场景部署

完整配置文件参见项目根目录下的docker-compose.yml,更多高级配置可参考SearXNG专用配置和官方文档docs/目录。

【免费下载链接】agenticSeek A open, local Manus AI alternative. Powered with Deepseek R1. No APIs, no $456 monthly bills. Enjoy an AI agent that reason, code, and browse with no worries. 【免费下载链接】agenticSeek 项目地址: https://gitcode.com/GitHub_Trending/ag/agenticSeek

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

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

抵扣说明:

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

余额充值