Skip to content

Docker Compose 一键部署 ​

← 部署 · English

使用项目根目录的 docker/ 一条命令拉起全部服务:后端(aideepin-api)、Redis、用户端、管理端、Nginx。PostgreSQL 不在 compose 内,需先自行安装并初始化。

1. 初始化数据库 ​

安装 PostgreSQL 与扩展 ​

系统的存储分三部分,向量与图库各自可在 PostgreSQL 扩展与 Neo4j 之间二选一:

用途PostgreSQL 方案(默认)替代方案切换配置
主业务库PostgreSQL(必需)——
向量检索pgvector 扩展Neo4jadi.vector-database: pgvector / neo4j
知识图谱Apache AGE 扩展Neo4jadi.graph-database: apache-age / neo4j

PostgreSQL 主业务库在任何方案下都必需。Ubuntu 建议先添加 PGDG 源,然后一键安装 PostgreSQL 及所需扩展:

bash
sudo apt install -y postgresql-16 postgresql-16-pgvector postgresql-16-age

NOTE

扩展按需安装:改用 Neo4j 的部分无需安装对应扩展,apt 命令与 CREATE EXTENSION 均可省略对应项。

启用扩展并创建数据库:

sql
CREATE EXTENSION IF NOT EXISTS vector;
CREATE EXTENSION IF NOT EXISTS age;
CREATE DATABASE aideepin;

使用默认方案(pgvector + Apache AGE)

无需额外配置。

向量库或图库切换到 Neo4j

两项独立,可只切其一。Docker Compose 部署:

  1. 在 .env 的 JAVA_OPTS 中追加对应参数:向量库 -Dadi.vector-database=neo4j,图库 -Dadi.graph-database=neo4j
  2. 取消 docker-compose.yml 中 ADI_NEO4J_* 的注释,并在 .env 填入连接信息(任一项切换即需要)

源码部署:直接修改对应 profile 的 application-*.yml。

执行初始化脚本 ​

脚本位于 server/db_migration/,按顺序执行:

  1. all_ddl.sql —— 创建所有表、触发器和注释
  2. all_dml.sql —— 插入基础数据(管理员账号、系统配置、模型平台、AI 模型)
  3. all_dml_cn.sql 或 all_dml_en.sql —— 二选一,按语言插入展示数据(预设角色、工作流组件、MCP 服务)

NOTE

DDL 默认 SCHEMA 为 public,如有不同请先调整。脚本命名规范与说明见 db_migration/README。

2. 配置并启动 ​

bash
cd docker

# 修改 .env(compose 默认读取 .env;生产配置可指定 .env.prod)
# ⚠️ 必改项:ADI_DB_HOST、ADI_DB_USERNAME、ADI_DB_PASSWORD、
#    ADI_MAIL_HOST、ADI_MAIL_USERNAME、ADI_MAIL_PASSWORD、ADI_ENCRYPT_AES_KEY

# 内存 ≥ 8G 的服务器:直接并行构建
docker compose up -d --build

# 内存 < 8G 的服务器:顺序构建以避免 OOM
docker compose build aideepin-admin-web aideepin-user-web
docker compose build aideepin-api
docker compose up -d

常用命令:docker compose logs -f 查看日志;docker compose down 停止全部服务。

3. 服务架构 ​

浏览器 → nginx:80
          ├── /api/      → aideepin-api:9999(后端服务)
          ├── /admin/    → aideepin-admin-web:80(管理端前端)
          └── /          → aideepin-user-web:80(用户端前端)

4. 首次初始化 ​

启动后至少启用一个模型平台,普通用户才能正常使用。管理员账号由 all_dml.sql 初始化,登录管理端后:

  • 推荐:在管理端「平台配置」中填入模型平台的 API Key 并启用(见管理端使用);
  • 或直接 SQL 配置(示例):
sql
-- DeepSeek
UPDATE adi_model_platform SET api_key = 'my_deepseek_secret_key' WHERE name = 'deepseek';

-- OpenAI
UPDATE adi_model_platform SET api_key = 'my_openai_secret_key' WHERE name = 'openai';

-- 灵积
UPDATE adi_model_platform SET api_key = 'my_dashscope_api_key' WHERE name = 'dashscope';

-- 硅基流动
UPDATE adi_model_platform SET api_key = 'my_siliconflow_api_key' WHERE name = 'siliconflow_setting';

-- Ollama
UPDATE adi_model_platform SET base_url = 'my_ollama_base_url' WHERE name = 'ollama';

再启用需要的模型:

sql
UPDATE adi_ai_model SET is_enable = true WHERE name = 'deepseek-flash';

配置项参考(.env) ​

变量说明默认值
TZ时区Asia/Shanghai
IMAGE_VERSION后端镜像版本v1.1.0-dev
APP_VERSION应用版本1.0.0-SNAPSHOT
APP_PROFILESpring 环境(dev/prod)dev
JAVA_OPTSJVM 参数-Xms1024m -Xmx2048m ...
ADI_DB_HOSTPostgreSQL 主机localhost
ADI_DB_PORTPostgreSQL 端口5432
ADI_DB_NAMEPostgreSQL 数据库名aideepin
ADI_DB_USERNAMEPostgreSQL 用户名your-db-account
ADI_DB_PASSWORDPostgreSQL 密码your-db-password
ADI_REDIS_HOSTRedis 主机redis
ADI_REDIS_PORTRedis 端口6379
ADI_MAIL_HOSTSMTP 邮件主机your-email-host
ADI_MAIL_USERNAMESMTP 邮件用户名your-email-username
ADI_MAIL_PASSWORDSMTP 邮件密码your-email-password
ADI_ENCRYPT_AES_KEYAES 加密密钥(16 位字符)your-16-char-key
ADI_NEO4J_HOSTNeo4j 主机(可选)localhost
ADI_NEO4J_PORTNeo4j 端口(可选)7687
ADI_NEO4J_USERNAMENeo4j 用户名(可选)neo4j
ADI_NEO4J_PASSWORDNeo4j 密码(可选)your-neo4j-password
ADI_NEO4J_DATABASENeo4j 数据库名(可选)neo4j

TIP

生产环境建议将 APP_PROFILE 设为 prod,并使用 .env.prod 管理配置。


上一篇:部署 | 下一篇:Docker 独立部署