通过 curl | bash 一键安装/更新 AI问数系统
curl -fsSL https://ai.seek.ninglon.com/install.sh | sudo bash
首次安装后,脚本会自动生成 sample.env 模板。请将其复制为 .env 并填入实际配置后重新运行安装命令启动服务。
curl -fsSL https://ai.seek.ninglon.com/install.sh | sudo bash -s -- -k
-k 参数自动关闭端口占用进程、备份当前版本(含 conf/ 配置)、下载最新版、重启服务并健康检查(失败自动回滚,含 conf/ 一并恢复)。.env 不被覆盖。默认不覆盖 conf/ 目录。
curl -fsSL https://ai.seek.ninglon.com/install.sh | sudo bash -s -- -p 8001 -d /opt/teachseek -k -F
-F 参数强制覆盖 conf/ 配置目录(用新版系统配置替换旧配置)。旧 conf 已在备份中保留,可通过 rollback.sh 回滚恢复。.env 不受影响。适用于:新版系统配置变更需要同步到服务器时。
# Deploy1(端口 16524) curl -fsSL https://ai.seek.ninglon.com/install.sh | sudo bash -s -- -p 16524 -d /opt/teachseek -k -F # Deploy2(端口 3000) curl -fsSL https://ai.seek.ninglon.com/install.sh | sudo bash -s -- -p 3000 -d /opt/teachseek2 -k -F
生产环境 Deploy1 和 Deploy2 均使用宝塔 Supervisor 模式(默认)。-k 强制关闭端口占用,-F 强制同步新版 conf/ 配置。首次安装时需先配置 .env 后重新运行。无外网时使用离线安装(见下方)。
当服务器无法访问 Release 服务器(ai.seek.ninglon.com)时,可将安装包和脚本手动复制到服务器进行离线安装。安装包不会被删除,可重复使用。
# 下载安装包 curl -O https://ai.seek.ninglon.com/release/teachseek-v8.0.4-0829-0133.tar.gz # 下载安装脚本 curl -O https://ai.seek.ninglon.com/install.sh
# 生产环境 Deploy1(端口 16524)— 替代在线 curl 命令 sudo bash install.sh -f teachseek-v8.0.4-0829-0133.tar.gz -p 16524 -d /opt/teachseek -k -F # 生产环境 Deploy2(端口 3000)— 替代在线 curl 命令 sudo bash install.sh -f teachseek-v8.0.4-0829-0133.tar.gz -p 3000 -d /opt/teachseek2 -k -F # 基本离线安装(默认端口 8001) sudo bash install.sh -f teachseek-v8.0.4-0829-0133.tar.gz
-f / --file 参数指定本地 tarball 路径,脚本会自动从文件名提取版本号,跳过在线下载,解压后安装。安装包不会被删除,可重复用于安装或回滚。首次安装后需编辑 .env 配置文件,然后重新运行安装命令启动服务。
curl -fsSL https://ai.seek.ninglon.com/install.sh | sudo bash -s -- -r v8.0.3-0710-0001
curl -fsSL https://ai.seek.ninglon.com/install.sh | sudo bash -s -- -p 8002 -d /opt/teachseek-2
curl -fsSL https://teachseek.ai.ninglon.com/install.sh | sudo bash -s -- -s r1
使用 -s 参数指定 Release 服务器:r1(Release1)、r2(Release2)、auto(默认,优先 Release2,故障切换到 Release1)。
curl -fsSL https://ai.seek.ninglon.com/install.sh | sudo bash -s -- --dry-run
curl -fsSL https://ai.seek.ninglon.com/install.sh | sudo bash -s -- -p 8881 -d /opt/teachseek_feedback
安装后编辑 .env 配置 FEEDBACK_RECEIVER_USERNAME 和 FEEDBACK_RECEIVER_PASSWORD,然后以反馈模式启动:
./teachseek --feedback-only --port 8881
反馈接收服务提供:免认证提交端点(POST /api/feedback/submit)+ 密码登录查看页面(GET /)。CORS 全开,支持跨域提交。
智慧教育数据大屏使用独立安装脚本 bigStream3.0_install.sh(与问数系统安装包相互独立)
curl -fsSL https://ai.seek.ninglon.com/release/bigStream3.0_install.sh | sudo bash
大屏与问数系统共用 Release 发布目录(/release/),版本指针独立为 bigstream-LATEST.md,互不干扰。默认端口 8030,默认安装目录 /opt/bigstream。
sudo bash bigStream3.0_install.sh -f bigstream-v3.1-0904-0143.tar.gz -p 3000 -d /opt/bigstream_3000 -k -F
-p 指定端口,-d 指定安装目录,-k 强制关闭端口占用进程,-F 强制覆盖 conf/ 摄像头配对目录(.env 不受影响)。默认 supervisor 模式(检测到宝塔面板自动注册宝塔 Supervisor,开机自启、面板可见);-m nohup 可切换为临时验证模式。同机多实例按端口区分进程名(如 bigstream_3000)。
# 有外网机器上下载 curl -O https://ai.seek.ninglon.com/release/bigstream-v3.1-0904-0143.tar.gz curl -O https://ai.seek.ninglon.com/release/bigStream3.0_install.sh # 复制到目标服务器后执行(安装包保留,可重复使用) sudo bash bigStream3.0_install.sh -f bigstream-v3.1-0904-0143.tar.gz -p 3000 -d /opt/bigstream_3000 -k -F
首次安装后编辑安装目录下的 .env 填入 DATABASE_URL(达梦/MySQL 均支持)等配置,重新运行安装命令即完成启动。更新自动备份旧版本(含 conf/),健康检查失败自动回滚。v3.1-0825-0116 起包内自带静态 ffmpeg(RTSP→FLV 转码不再依赖系统 ffmpeg);生产部署需放行『后端服务器 → RTSP 流媒体服务器:554 TCP』,部署后可执行 curl -s -X POST http://<host>:<port>/api/video/diagnose 验证(rtsp_reach 与 ffmpeg 步骤应 passed)。
sudo bash /opt/bigstream_3000/service.sh {start|stop|restart|status|log|health}
sudo bash /opt/bigstream_3000/rollback.sh # 交互式回滚
sudo bash /opt/bigstream_3000/rollback.sh -l # 仅列版本
安装脚本支持从两台 Release 服务器下载部署包,默认自动切换
| 服务器 | 域名 | IP | 角色 |
|---|---|---|---|
| Release1 | teachseek.ai.ninglon.com | 8.138.245.105 | 备用 |
| Release2 | ai.seek.ninglon.com | 8.130.133.217 | 主(默认优先) |
auto 模式下,脚本先尝试 Release2,连接或下载失败后自动切换到 Release1。使用 -s 参数可手动指定源。
首次安装自动生成 sample.env 模板,复制为 .env 后填入实际配置
sample.env 模板文件sample.env 为 .env:cp sample.env .env.env 填入实际的数据库、LLM 等配置注意:后续更新不会覆盖已有的 .env 文件,各环境配置独立维护。
| 配置项 | 说明 | 示例 |
|---|---|---|
PORT |
服务监听端口,安装脚本会读取此值作为默认端口 | 8001 |
DATABASE_URL |
数据库连接串。支持 MySQL 和达梦 DM8 | mysql+pymysql://user:pwd@host:3306/db |
JWT_SECRET |
JWT 认证密钥,请使用随机字符串 | your-jwt-secret-key |
JWT_EXPIRE_MINUTES |
JWT 过期时间(分钟) | 1440(24小时) |
DEFAULT_ADMIN_USERNAME |
管理员用户名(首次启动自动创建) | admin |
DEFAULT_ADMIN_PASSWORD |
管理员密码(首次启动自动创建) | your-password |
LLM_API_KEY |
大模型 API 密钥 | your-api-key |
LLM_BASE_URL |
大模型 API 地址 | https://api.example.com/v1 |
LLM_MODEL |
模型名称 | qwen3.5-27b |
CORS_ORIGINS |
跨域允许的域名,多个用逗号分隔 | https://your-domain.com |
LOG_LEVEL |
日志级别 | INFO |
FEEDBACK_RECEIVER_USERNAME |
反馈查看器登录用户名(仅 --feedback-only 模式) | admin |
FEEDBACK_RECEIVER_PASSWORD |
反馈查看器登录密码(仅 --feedback-only 模式,请使用高强度密码) | your-feedback-password |
FEEDBACK_STORAGE_DIR |
反馈数据存储目录(空则用 {runtime_dir}/data/feedback) | /opt/teachseek_feedback/data/feedback |
安装脚本支持的命令行参数
| 参数 | 全称 | 说明 |
|---|---|---|
-f |
--file |
离线安装:指定本地 tarball 路径,跳过在线下载,安装包不删除 |
-r |
--release |
指定安装版本号(默认从 LATEST.md 自动获取) |
-p |
--port |
指定服务端口(默认从 .env 读取 PORT 变量,再默认 8001) |
-d |
--dir |
指定安装目录(默认 /opt/teachseek) |
-s |
--source |
指定 Release 服务器:r1(Release1)、r2(Release2)、auto(默认,优先 Release2,故障切换到 Release1) |
-k |
--kill-port |
强制关闭占用端口的进程(默认不启用) |
-F |
--force-config |
强制覆盖 conf/ 配置目录(用新版系统配置替换旧配置,保留 .env 不动)。默认不覆盖 conf/ |
-m |
--mode |
部署模式:supervisor(默认)或 nohup |
-V |
--version |
显示脚本自身版本号 |
-n |
--dry-run |
试运行模式,只打印执行步骤不实际操作 |
-h |
--help |
显示帮助信息 |
部署前请确认服务器满足以下条件
| 项目 | 要求 | 说明 |
|---|---|---|
| 操作系统 | 统信 UOS / CentOS 7+ / Ubuntu 20+ | Linux x86_64 |
| 磁盘空间 | 500MB+ | 程序文件 + 日志 + 备份 |
| 网络 | 需访问千问模型 API | vLLM 内网或阿里云 API |
| 权限 | root(sudo) | 安装脚本需 root 权限执行 |
| 数据库 | MySQL 5.7+ 或 达梦 DM8 | 根据部署环境选择 |
脚本自动执行以下步骤