Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
L
LLM-Filter
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
2026_NGIT
LLM-Filter
Commits
71168801
Commit
71168801
authored
Mar 04, 2026
by
uuo00_n
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
feat(docs): 更新启动脚本使用说明,添加演示数据初始化选项
parent
2c99e8f1
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
112 additions
and
15 deletions
+112
-15
DEVELOPMENT.md
DEVELOPMENT.md
+7
-4
README.md
README.md
+7
-5
START_SCRIPT_USAGE.md
START_SCRIPT_USAGE.md
+15
-3
start.sh
start.sh
+83
-3
No files found.
DEVELOPMENT.md
View file @
71168801
...
...
@@ -24,8 +24,8 @@
# 1) 首次生成 .env
./start.sh init-env
# 2) 启动全部服务
./start.sh up
# 2) 启动全部服务
(首次建议带演示数据初始化)
./start.sh up
--init-data
# 3) 查看状态 / 日志
./start.sh ps
...
...
@@ -36,11 +36,14 @@
1.
执行
`./start.sh init-env`
会调用
`scripts/generate_secrets.py`
自动生成根目录
`.env`
。
2.
生成后至少检查这些配置:
`DB_PASSWORD`
、
`JWT_SECRET`
、
`DIFY_API_KEY_LLM`
、
`DIFY_API_KEY_SECURITY`
。
3.
`./start.sh up`
启动时会自动读取根目录
`.env`
注入各服务容器。
4.
修改
`.env`
后,优先执行
`./start.sh rebuild`
使配置生效(或
`./start.sh down && ./start.sh up`
全量重启)。
4.
如需初始化演示数据(默认账号、教务示例、敏感词),执行
`./start.sh init-data`
或直接
`./start.sh up --init-data`
。
5.
修改
`.env`
后,优先执行
`./start.sh rebuild`
使配置生效(或
`./start.sh down && ./start.sh up`
全量重启)。
### 常用脚本命令
```
bash
./start.sh up
# 启动全部服务
./start.sh up
# 启动全部服务(不初始化数据)
./start.sh up
--init-data
# 启动并自动初始化演示数据
./start.sh init-data
# 单独执行演示数据初始化(会提示确认)
./start.sh rebuild
# 重构全部服务容器
./start.sh rebuild auth-service
# 重构指定服务容器
./start.sh down
# 停止并删除容器
...
...
README.md
View file @
71168801
...
...
@@ -12,8 +12,8 @@
# 1) 首次生成 .env
./start.sh init-env
# 2) 启动全部服务
./start.sh up
# 2) 启动全部服务
并初始化演示数据
./start.sh up
--init-data
# 3) 查看状态与日志
./start.sh ps
...
...
@@ -23,13 +23,15 @@
`.env`
使用说明:
1.
`./start.sh init-env`
会自动生成根目录
`.env`
。
2.
启动时
`./start.sh up`
会把
`.env`
注入所有容器。
3.
Dify 建议分别填写
`DIFY_API_KEY_LLM`
(LLM 服务)与
`DIFY_API_KEY_SECURITY`
(Security 服务);旧版
`DIFY_API_KEY`
仍兼容。
4.
修改
`.env`
后可重构容器生效:
`./start.sh rebuild`
(或全量重启:
`./start.sh down && ./start.sh up`
)。
5.
如果
`.env`
权限异常,可执行:
`sudo chown $USER:staff .env && chmod 640 .env`
。
3.
首次启动如需默认账号/教务示例/敏感词,请执行
`./start.sh init-data`
(或直接
`./start.sh up --init-data`
)。
4.
Dify 建议分别填写
`DIFY_API_KEY_LLM`
(LLM 服务)与
`DIFY_API_KEY_SECURITY`
(Security 服务);旧版
`DIFY_API_KEY`
仍兼容。
5.
修改
`.env`
后可重构容器生效:
`./start.sh rebuild`
(或全量重启:
`./start.sh down && ./start.sh up`
)。
6.
如果
`.env`
权限异常,可执行:
`sudo chown $USER:staff .env && chmod 640 .env`
。
常用维护命令:
-
`./start.sh rebuild [service]`
:重构容器(默认全部,可指定服务)
-
`./start.sh rm <service...>`
:删除指定容器(可多个)
-
`./start.sh init-data [--yes]`
:初始化演示数据(会重置业务数据)
## 系统架构
...
...
START_SCRIPT_USAGE.md
View file @
71168801
...
...
@@ -14,8 +14,8 @@
# 1) 首次生成 .env
./start.sh init-env
# 2) 启动全部服务
./start.sh up
# 2) 启动全部服务
并初始化演示数据
./start.sh up
--init-data
# 3) 查看状态
./start.sh ps
...
...
@@ -60,7 +60,10 @@
```
bash
./start.sh
help
# 查看帮助
./start.sh init-env
# 生成 .env(首次)
./start.sh up
# 构建并启动所有服务
./start.sh up
# 构建并启动所有服务(不初始化数据)
./start.sh up
--init-data
# 启动后自动执行数据库初始化脚本
./start.sh init-data
# 单独执行数据库初始化脚本(会提示确认)
./start.sh init-data
--yes
# 单独执行数据库初始化脚本(跳过确认)
./start.sh rebuild
# 重构全部服务容器
./start.sh rebuild gateway
# 重构指定服务容器
./start.sh down
# 停止并删除容器
...
...
@@ -101,3 +104,12 @@ chmod 640 .env
./start.sh reset
./start.sh up
```
### 6.3 为什么没有默认账号(如 `admin_edu`)
默认
`./start.sh up`
不会自动执行
`scripts/init_postgres.sql`
和其他初始化脚本。
如需写入演示账号/数据,请执行:
```
bash
./start.sh init-data
```
start.sh
View file @
71168801
...
...
@@ -24,7 +24,8 @@ LLM Filter 统一脚本
用法:
./start.sh init-env 生成 .env(仅首次)
./start.sh up 构建并启动所有服务
./start.sh up [--init-data] 构建并启动所有服务(可选初始化演示数据)
./start.sh init-data [--yes] 初始化 PostgreSQL/Mongo 演示数据
./start.sh rebuild [svc] 重构容器(默认全部,可指定服务)
./start.sh down 停止并删除容器
./start.sh rm <svc...> 删除指定容器(可多个)
...
...
@@ -36,7 +37,7 @@ LLM Filter 统一脚本
推荐首次使用:
1) ./start.sh init-env
2) 编辑 .env(至少确认 DB_PASSWORD / JWT_SECRET / DIFY_API_KEY_LLM / DIFY_API_KEY_SECURITY)
3) ./start.sh up
3) ./start.sh up
--init-data
EOF
}
...
...
@@ -65,8 +66,80 @@ cmd_init_env() {
echo
"[INFO] .env 生成完成。请检查关键配置后再启动。"
}
load_env_vars
()
{
require_env
# shellcheck disable=SC1091
set
-a
source
.env
set
+a
}
wait_for_postgres
()
{
local
retries
=
30
local
i
for
((
i
=
1
;
i<
=
retries
;
i++
))
;
do
if
"
${
COMPOSE_CMD
[@]
}
"
exec
-T
-e
PGPASSWORD
=
"
${
DB_PASSWORD
}
"
postgres
\
pg_isready
-U
"
${
DB_USER
}
"
-d
"
${
DB_NAME
}
"
>
/dev/null 2>&1
;
then
return
0
fi
sleep
2
done
echo
"[ERROR] PostgreSQL 未就绪,初始化中止。"
exit
1
}
cmd_init_data
()
{
require_env
local
yes_flag
=
"
${
1
:-}
"
if
[
"
${
yes_flag
}
"
!=
"--yes"
]
;
then
echo
"[WARN] 将执行初始化脚本并重置业务数据:"
echo
" - scripts/init_postgres.sql (TRUNCATE + 默认账号)"
echo
" - scripts/init_edu_postgres.py (教务演示数据)"
echo
" - scripts/init_mongo.py (敏感词/对话相关集合)"
read
-r
-p
"确认继续? (yes/no): "
answer
if
[
"
${
answer
}
"
!=
"yes"
]
;
then
echo
"[INFO] 已取消。"
return
0
fi
fi
load_env_vars
echo
"[INFO] 确保初始化所需服务已启动..."
"
${
COMPOSE_CMD
[@]
}
"
up
-d
postgres redis mongo llm-service
echo
"[INFO] 等待 PostgreSQL 就绪..."
wait_for_postgres
echo
"[INFO] 执行 PostgreSQL 基础初始化 (init_postgres.sql)..."
cat
scripts/init_postgres.sql |
"
${
COMPOSE_CMD
[@]
}
"
exec
-T
\
-e
PGPASSWORD
=
"
${
DB_PASSWORD
}
"
\
postgres psql
-v
ON_ERROR_STOP
=
1
-U
"
${
DB_USER
}
"
-d
"
${
DB_NAME
}
"
echo
"[INFO] 执行 PostgreSQL 教务演示数据初始化 (init_edu_postgres.py)..."
"
${
COMPOSE_CMD
[@]
}
"
exec
-T
\
-e
DB_HOST
=
postgres
\
-e
DB_PORT
=
5432
\
-e
DB_USER
=
"
${
DB_USER
}
"
\
-e
DB_PASSWORD
=
"
${
DB_PASSWORD
}
"
\
-e
DB_NAME
=
"
${
DB_NAME
}
"
\
llm-service python /app/scripts/init_edu_postgres.py
echo
"[INFO] 执行 MongoDB 初始化 (init_mongo.py)..."
"
${
COMPOSE_CMD
[@]
}
"
exec
-T
llm-service python /app/scripts/init_mongo.py
echo
"[INFO] 数据初始化完成。"
}
cmd_up
()
{
require_env
local
init_data_flag
=
"
${
1
:-}
"
if
[
"
${
init_data_flag
}
"
!=
""
]
&&
[
"
${
init_data_flag
}
"
!=
"--init-data"
]
;
then
echo
"[ERROR] up 仅支持可选参数: --init-data"
echo
"[INFO] 用法: ./start.sh up [--init-data]"
exit
1
fi
"
${
COMPOSE_CMD
[@]
}
"
up
-d
--build
echo
"[INFO] 服务启动完成。"
echo
"[INFO] 网关地址: http://localhost:8080"
...
...
@@ -75,6 +148,10 @@ cmd_up() {
echo
" - http://localhost:8080/docs/edu/"
echo
" - http://localhost:8080/docs/llm/"
echo
" - http://localhost:8080/docs/security/"
if
[
"
${
init_data_flag
}
"
=
"--init-data"
]
;
then
cmd_init_data
--yes
fi
}
cmd_rebuild
()
{
...
...
@@ -128,8 +205,11 @@ case "$ACTION" in
init-env
)
cmd_init_env
;;
init-data
)
cmd_init_data
"
${
2
:-}
"
;;
up
)
cmd_up
cmd_up
"
${
2
:-}
"
;;
rebuild
)
cmd_rebuild
"
${
@
:2
}
"
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment