Compare commits

..

104 Commits
main ... 1

Author SHA1 Message Date
孙小云 f9d7a55d7a 修改配置 2025-05-29 20:47:36 +08:00
孙小云 5dbf981aa5 修改配置 2025-05-29 20:10:05 +08:00
孙小云 0fc255a6c9 修改数据库配置 2025-05-29 20:04:26 +08:00
孙小云 d1493028d6 修改数据库配置 2025-05-29 19:44:50 +08:00
孙小云 66353e5193 修改数据库配置 2025-05-29 19:26:21 +08:00
孙小云 cb5dc25817 修改数据库配置 2025-05-29 19:14:29 +08:00
孙小云 d03cba6a14 修改数据库配置 2025-05-29 19:14:17 +08:00
孙小云 6a197ab2d1 修改数据库配置 2025-05-29 13:40:51 +08:00
孙小云 cbb5c3f10d 修改数据库配置 2025-05-28 17:53:55 +08:00
孙小云 16b65da888 修改数据库配置 2025-05-28 17:11:21 +08:00
孙小云 11cc54be51 修改数据库配置 2025-05-28 17:05:45 +08:00
孙小云 3b37a0ee51 修改数据库配置 2025-05-27 15:57:31 +08:00
孙小云 564b94ae42 添加business 2025-05-27 15:42:22 +08:00
孙小云 5a2bb05970 添加business 2025-05-27 15:33:14 +08:00
孙小云 d7115cb663 添加business 2025-05-27 14:31:13 +08:00
孙小云 81fc16555a 添加business 2025-05-27 11:33:38 +08:00
孙小云 48c8481b57 添加business 2025-05-27 11:21:57 +08:00
孙小云 3977917c40 添加business 2025-05-27 11:00:00 +08:00
孙小云 27c617df6f 添加business 2025-05-27 10:59:53 +08:00
孙小云 fa25437358 添加版本的控制 2025-05-27 10:03:46 +08:00
孙小云 c5c5b5d4fa 添加版本的控制 2025-05-26 16:24:08 +08:00
孙小云 0b9b8b50d4 添加版本的控制 2025-05-26 14:56:15 +08:00
孙小云 d444865686 添加版本的控制 2025-05-26 11:05:21 +08:00
孙小云 109d9272ec 添加版本的控制 2025-05-26 10:44:18 +08:00
孙小云 7d04804799 添加版本的控制 2025-05-26 09:42:53 +08:00
孙小云 cc0efb2cb7 添加版本的控制 2025-05-26 09:17:00 +08:00
孙小云 d6e2356056 添加版本的控制 2025-05-24 15:09:33 +08:00
孙小云 5b5618e961 添加版本的控制 2025-05-24 14:58:06 +08:00
孙小云 1c1edcba9f 添加版本的控制 2025-05-23 20:10:27 +08:00
孙小云 bce58a2535 添加版本的控制 2025-05-23 19:07:29 +08:00
孙小云 a756161d51 添加版本的控制 2025-05-23 19:05:33 +08:00
孙小云 ddd5e2ed2e 添加版本的控制 2025-05-23 19:04:42 +08:00
孙小云 0805560ac9 添加版本的控制 2025-05-23 18:53:38 +08:00
孙小云 3e95cf1228 添加版本的控制 2025-05-23 18:51:23 +08:00
孙小云 a02595db0f 添加版本的控制 2025-05-23 16:50:50 +08:00
孙小云 b86c4b2271 添加版本的控制 2025-05-23 16:45:26 +08:00
孙小云 e8841653f8 添加版本的控制 2025-05-23 16:19:33 +08:00
孙小云 bdfc47325a 添加版本的控制 2025-05-23 15:38:13 +08:00
孙小云 2ca4559d9c 添加版本的控制 2025-05-23 15:35:55 +08:00
孙小云 8b6e932fde 添加版本的控制 2025-05-23 15:32:08 +08:00
孙小云 be2f6ea9d3 添加版本的控制 2025-05-23 14:54:47 +08:00
孙小云 7a40d302a7 添加版本的控制 2025-05-23 14:10:27 +08:00
孙小云 1fecb0f4e3 添加版本的控制 2025-05-23 14:08:55 +08:00
孙小云 6ea880645b 修改环境变量 2025-05-23 10:21:21 +08:00
孙小云 77392d7103 修改环境变量 2025-05-23 09:55:35 +08:00
孙小云 22dbf9c9f3 修改环境变量 2025-05-23 09:12:07 +08:00
孙小云 94dacb40f0 修改环境变量 2025-05-22 16:46:02 +08:00
孙小云 380012d6bf 修改环境变量 2025-05-22 16:41:04 +08:00
孙小云 37c9107f32 修改环境变量 2025-05-22 16:23:12 +08:00
孙小云 b32b4e1a94 xxx 2025-05-22 15:38:21 +08:00
孙小云 e7a6e47730 xxx 2025-05-22 15:35:05 +08:00
孙小云 be69a207f4 xxx 2025-05-22 11:28:55 +08:00
孙小云 13acda42cb xxx 2025-05-22 11:18:08 +08:00
孙小云 f04d24416b xxx 2025-05-22 11:15:38 +08:00
孙小云 9552b1aaa4 xxx 2025-05-22 10:52:52 +08:00
孙小云 6a2f818b70 xxx 2025-05-22 09:50:17 +08:00
孙小云 1912d9c1c5 xxx 2025-05-21 16:40:59 +08:00
孙小云 5cf33201b5 xxx 2025-05-21 16:40:35 +08:00
孙小云 310f21872e xxx 2025-05-21 16:40:27 +08:00
孙小云 e4060bcfc7 xxx 2025-05-21 16:40:11 +08:00
孙小云 af2ef2bf72 xxx 2025-05-21 13:34:19 +08:00
孙小云 35ee3c7b6d xxx 2025-05-21 11:36:56 +08:00
孙小云 8f49a9922b xxx 2025-05-21 11:36:49 +08:00
孙小云 46f02ddaf1 xxx 2025-05-20 14:39:58 +08:00
孙小云 4d6cea6065 xxx 2025-05-20 14:37:26 +08:00
孙小云 c3bd64b7d8 xxx 2025-05-20 11:44:59 +08:00
孙小云 aff83df3ea xxx 2025-05-20 11:36:17 +08:00
孙小云 a31c4b62b2 xxx 2025-05-19 12:51:10 +08:00
孙小云 1b79f6d22c xxx 2025-05-19 10:48:33 +08:00
孙小云 04d5ab6616 xxx 2025-05-19 10:45:45 +08:00
孙小云 122e5fb7fa xxx 2025-05-19 10:41:05 +08:00
孙小云 736c25f740 xx 2025-05-19 10:28:09 +08:00
孙小云 e3097d3e05 xx 2025-05-19 10:22:15 +08:00
孙小云 ff70bee080 xxx 2025-05-19 09:55:37 +08:00
孙小云 bfbced2af2 xxx 2025-05-19 09:54:30 +08:00
孙小云 0c22eec977 xx 2025-05-17 15:05:20 +08:00
孙小云 619817ff37 删除交互等待 2025-05-17 14:28:24 +08:00
sunpeng 4af9bff13b xx 2025-05-17 13:51:32 +08:00
孙小云 475d73e77f xxx 2025-05-16 17:15:43 +08:00
孙小云 a731c05a0d xxx 2025-05-16 17:09:04 +08:00
孙小云 67a9a24f5a xxx 2025-05-16 17:08:03 +08:00
孙小云 8c13df59e3 xxx 2025-05-16 16:56:53 +08:00
孙小云 258250d574 xxx 2025-05-16 16:54:43 +08:00
孙小云 d76424a208 xxx 2025-05-16 16:43:27 +08:00
孙小云 c17ee35947 xxx 2025-05-16 16:35:39 +08:00
孙小云 c85e5ffc8b xxx 2025-05-16 16:26:22 +08:00
孙小云 c00ef3a6a8 xxx 2025-05-16 16:10:46 +08:00
孙小云 9de4071b52 xxx 2025-05-16 15:51:34 +08:00
孙小云 533a367e45 xxx 2025-05-16 15:47:45 +08:00
孙小云 1a1dd4f4d6 xxx 2025-05-16 15:41:33 +08:00
孙小云 5d1cabf7c7 xxx 2025-05-16 15:38:27 +08:00
孙小云 f16055710a xx 2025-05-16 15:31:44 +08:00
孙小云 7e0d60d1af xx 2025-05-16 15:14:22 +08:00
孙小云 aa9a82a3d3 xx 2025-05-16 15:07:04 +08:00
孙小云 efcd946fd5 x 2025-05-16 14:03:05 +08:00
孙小云 0bc36bf44d add dsp 2025-05-16 14:00:40 +08:00
孙小云 cd6288aa19 add Business 2025-05-16 13:55:15 +08:00
孙小云 eb24f7540d xx 2025-05-16 11:48:08 +08:00
sunpeng dd39d9cd3d xx 2025-05-16 11:45:17 +08:00
孙小云 fa225c80f3 xx 2025-05-16 11:43:50 +08:00
sunpeng 98ed74c2c0 xx 2025-05-16 11:42:50 +08:00
孙小云 2951afc624 remove 2025-05-16 11:40:22 +08:00
孙小云 5ae0281656 xx 2025-05-16 11:37:32 +08:00
孙小云 d6ea1cc3bc xx 2025-05-16 11:34:52 +08:00
82 changed files with 1928 additions and 528 deletions

37
.cursorrules Normal file
View File

@ -0,0 +1,37 @@
# Role
你是一名极其优秀具有20年经验的产品经理和精通所有编程语言的工程师。与你交流的用户是不懂代码的初中生不善于表达产品和代码需求。你的工作对用户来说非常重要完成后将获得10000美元奖励。
# Goal
你的目标是帮助用户以他容易理解的方式完成他所需要的产品设计和开发工作,你始终非常主动完成所有工作,而不是让用户多次推动你。
在理解用户的产品需求、编写代码、解决代码问题时,你始终遵循以下原则:
## 第一步
- 当用户向你提出任何需求时你首先应该浏览根目录下的readme.md文件了解当前项目的状态和存在的问题并根据实际情况调整你的工作计划。
# 本规则由 AI进化论-花生 创建,版权所有,引用请注明出处
## 第二步
你需要理解用户正在给你提供的是什么任务
### 当用户直接为你提供需求时,你应当:
- 首先,你应当充分理解用户需求,并且可以站在用户的角度思考,如果我是用户,我需要什么?
- 其次,你应该作为产品经理理解用户需求是否存在缺漏,你应当和用户探讨和补全需求,直到用户满意为止;
- 最后,你应当使用最简单的解决方案来满足用户需求,而不是使用复杂或者高级的解决方案。
### 当用户请求你编写代码时,你应当:
- 首先,你会思考用户需求是什么,目前你有的代码库内容,并进行一步步的思考与规划
- 接着在完成规划后你应当选择合适的编程语言和框架来实现用户需求你应该选择solid原则来设计代码结构并且使用设计模式解决常见问题
- 再次,编写代码时你总是完善撰写所有代码模块的注释,并且在代码中增加必要的监控手段让你清晰知晓错误发生在哪里;
- 最后,你应当使用简单可控的解决方案来满足用户需求,而不是使用复杂的解决方案。
### 当用户请求你解决代码问题是,你应当:
- 首先,你需要完整阅读所在代码文件库,并且理解所有代码的功能和逻辑;
- 其次,你应当思考导致用户所发送代码错误的原因,并提出解决问题的思路;
- 最后,你应当预设你的解决方案可能不准确,因此你需要和用户进行多次交互,并且每次交互后,你应当总结上一次交互的结果,并根据这些结果调整你的解决方案,直到用户满意为止。
- 特别注意当一个bug经过两次调整仍未解决时你将启动系统二思考模式
1. 首先系统性分析导致bug的可能原因列出所有假设
2. 然后,为每个假设设计验证方法
3. 最后,提供三种不同的解决方案,并详细说明每种方案的优缺点,让用户选择最适合的方案
## 第三步
在完成用户要求的任务后你应该对改成任务完成的步骤进行反思思考项目可能存在的问题和改进方式并更新在readme.md文件中

7
.gitnore Normal file
View File

@ -0,0 +1,7 @@
*.jar
*temp_vhosts*
*temp*
.DS_Store
*.tgz
readme.md
.cursorrules

8
.idea/.gitignore vendored Normal file
View File

@ -0,0 +1,8 @@
# 默认忽略的文件
/shelf/
/workspace.xml
# 基于编辑器的 HTTP 客户端请求
/httpRequests/
# Datasource local storage ignored files
/dataSources/
/dataSources.local.xml

9
.idea/docker.iml Normal file
View File

@ -0,0 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?>
<module type="JAVA_MODULE" version="4">
<component name="NewModuleRootManager" inherit-compiler-output="true">
<exclude-output />
<content url="file://$MODULE_DIR$" />
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />
</component>
</module>

6
.idea/misc.xml Normal file
View File

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectRootManager" version="2" languageLevel="JDK_23" default="true" project-jdk-name="openjdk-23" project-jdk-type="JavaSDK">
<output url="file://$PROJECT_DIR$/out" />
</component>
</project>

8
.idea/modules.xml Normal file
View File

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectModuleManager">
<modules>
<module fileurl="file://$PROJECT_DIR$/.idea/docker.iml" filepath="$PROJECT_DIR$/.idea/docker.iml" />
</modules>
</component>
</project>

8
.idea/vcs.xml Normal file
View File

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="VcsDirectoryMappings">
<mapping directory="" vcs="Git" />
<mapping directory="$PROJECT_DIR$/tuoheng_airport_web" vcs="Git" />
<mapping directory="$PROJECT_DIR$/tuoheng_oidc" vcs="Git" />
</component>
</project>

3
.vscode/settings.json vendored Normal file
View File

@ -0,0 +1,3 @@
{
"java.compile.nullAnalysis.mode": "automatic"
}

View File

@ -1,6 +1,6 @@
# 使用一个基础镜像
#FROM openjdk:11-jre-slim
FROM tuoheng/centos:base
FROM registry.t-aaron.com/tuoheng/centos:base
USER th
# 定义构建参数
ARG SW_APP_NAME

4
builder/airport.sh Executable file
View File

@ -0,0 +1,4 @@
source ../environment.sh
rm $AIRPORT_JAR
cp $AIRPORT_REMOTE_JAR $AIRPORT_JAR
./builder.sh $AIRPORT_NAME $AIRPORT_IMAGE $AIRPORT_JAR

Binary file not shown.

4
builder/business.sh Executable file
View File

@ -0,0 +1,4 @@
source ../environment.sh
rm $BUSINESS_JAR
cp $BUSINESS_REMOTE_JAR $BUSINESS_JAR
./builder.sh $BUSINESS_NAME $BUSINESS_IMAGE $BUSINESS_JAR

4
builder/dspadmin.sh Executable file
View File

@ -0,0 +1,4 @@
source ../environment.sh
rm $DSP_ADMIN_JAR
cp $DSP_ADMIN_REMOTE_JAR $DSP_ADMIN_JAR
./builder.sh $DSP_ADMIN_NAME $DSP_ADMIN_IMAGE $DSP_ADMIN_JAR

4
builder/dspapi.sh Executable file
View File

@ -0,0 +1,4 @@
source ../environment.sh
rm $DSP_API_JAR
cp $DSP_API_REMOTE_JAR $DSP_API_JAR
./builder.sh $DSP_API_NAME $DSP_API_IMAGE $DSP_API_JAR

4
builder/dspinspection.sh Executable file
View File

@ -0,0 +1,4 @@
source ../environment.sh
rm $DSP_INSPECTION_JAR
cp $DSP_INSPECTION_REMOTE_JAR $DSP_INSPECTION_JAR
./builder.sh $DSP_INSPECTION_NAME $DSP_INSPECTION_IMAGE $DSP_INSPECTION_JAR

4
builder/dspmini.sh Executable file
View File

@ -0,0 +1,4 @@
source ../environment.sh
rm $DSP_MINI_JAR
cp $DSP_MINI_REMOTE_JAR $DSP_MINI_JAR
./builder.sh $DSP_MINI_NAME $DSP_MINI_IMAGE $DSP_MINI_JAR

4
builder/dspportal.sh Executable file
View File

@ -0,0 +1,4 @@
source ../environment.sh
rm $DSP_PORTAL_JAR
cp $DSP_PORTAL_REMOTE_JAR $DSP_PORTAL_JAR
./builder.sh $DSP_PORTAL_NAME $DSP_PORTAL_IMAGE $DSP_PORTAL_JAR

21
builder/ffmpeg/dockerfile Normal file
View File

@ -0,0 +1,21 @@
FROM alfg/ffmpeg:latest
# 安装OpenJDK 11
RUN apk add --no-cache openjdk11-jre
# 设置Java环境变量
ENV JAVA_HOME=/usr/lib/jvm/java-11-openjdk
ENV PATH=$PATH:$JAVA_HOME/bin
# 验证安装
RUN java -version && \
ffmpeg -version && \
ffmpeg -codecs && \
ffmpeg -formats
# 设置工作目录
WORKDIR /app
# 设置时区
ENV TZ=Asia/Shanghai
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone

4
builder/hhzadmin.sh Executable file
View File

@ -0,0 +1,4 @@
source ../environment.sh
rm $HHZ_ADMIN_JAR
cp $HHZ_ADMIN_REMOTE_JAR $HHZ_ADMIN_JAR
./builder.sh $HHZ_ADMIN_NAME $HHZ_ADMIN_IMAGE $HHZ_ADMIN_JAR

4
builder/hhzapi.sh Executable file
View File

@ -0,0 +1,4 @@
source ../environment.sh
rm $HHZ_API_JAR
cp $HHZ_API_REMOTE_JAR $HHZ_API_JAR
./builder.sh $HHZ_API_NAME $HHZ_API_IMAGE $HHZ_API_JAR

67
builder/stream.sh Executable file
View File

@ -0,0 +1,67 @@
#!/bin/bash
source ../environment.sh
# 检查必要的环境变量
if [ -z "$STREAM_REMOTE_JAR" ]; then
echo "Error: STREAM_REMOTE_JAR environment variable is not set"
exit 1
fi
if [ -z "$STREAM_IMAGE" ]; then
echo "Error: STREAM_IMAGE environment variable is not set"
exit 1
fi
if [ -z "$STREAM_JAR" ]; then
echo "Error: STREAM_JAR environment variable is not set"
exit 1
fi
# 创建临时构建目录
BUILD_DIR=$(mktemp -d)
trap 'rm -rf "$BUILD_DIR"' EXIT
# 复制JAR文件
echo "Copying JAR file from $STREAM_REMOTE_JAR"
cp "$STREAM_REMOTE_JAR" "$BUILD_DIR/${STREAM_JAR}"
# 检查JAR文件是否复制成功
if [ ! -f "$BUILD_DIR/${STREAM_JAR}" ]; then
echo "Error: Failed to copy JAR file"
exit 1
fi
# 创建Dockerfile
cat > "$BUILD_DIR/Dockerfile" << EOF
FROM registry.t-aaron.com/tuoheng/ffmpeg:latest
# 设置工作目录
WORKDIR /app
# 设置时区
ENV TZ=Asia/Shanghai
RUN ln -snf /usr/share/zoneinfo/\$TZ /etc/localtime && echo \$TZ > /etc/timezone
# 创建数据目录
RUN mkdir -p /data/temp && chmod 777 /data/temp
# 创建数据目录
RUN mkdir -p /data/recording && chmod 777 /data/recording
# 创建数据目录
RUN mkdir -p /data/record && chmod 777 /data/record
# 复制JAR文件
COPY ${STREAM_JAR} /app/
# 设置启动命令
ENTRYPOINT ["java", "-jar", "/app/${STREAM_JAR}"]
EOF
# 构建Docker镜像
echo "Building Docker image: $STREAM_IMAGE"
docker build -t "$STREAM_IMAGE" "$BUILD_DIR"
# 清理
# rm -rf "$BUILD_DIR"
echo "Docker image $STREAM_IMAGE has been built successfully"
docker push $STREAM_IMAGE

55
dashuju.sh Executable file
View File

@ -0,0 +1,55 @@
echo "开始执行 dashuju.sh"
export VERSION=default
export DOMAIN=dashuju
export DOMAIN_END=t-aaron.com
# 主机对外爆露的HTTP端口
export NGINX_HTTP_PORT=9999
# 主机对外爆露的HTTPS端口---------
export NGINX_HTTPS_PORT=3443
# MYSQL对外地址 ----
export MYSQL_PORT=3009
export REDIS_PORT=6381
#MQTT 配置
# MQTT对外爆露端口 -- OK
export MQTT_PORT=8000
export MQTT_WS_PORT=9004
export KAFKA_PORT=9292
# SRS对外爆露端口---- OK
export SRS_RTMP_PORT=1935
# Minio对外爆露端口
export MINIO_API_PORT=9700
# Minio控制台对外爆露端口
export MINIO_CONSOLE_PORT=9022
export MINIO_ACCESS_KEY=5x2X7FkeyxEYQPAFOUet
export MINIO_SECRET_KEY=WOH5bzWr3OdrdzrPdN3hXFlxsSWJuRW2kQeRUbJI
# Consul 配置
export CONSUL_PORT=8600
# XXL-Job 配置
export XXLJOB_PORT=8383
export HHZ_ADMIN_WEB_DIST=/home/th/workspace/dockerbuilder/webs/dashuju/tuoheng_hhz_web/dist
export DSP_ADMIN_WEB_DIST=/home/th/workspace/dockerbuilder/webs/dashuju/dsp-admin/dist
export AIRPORT_WEB_DIST=/home/th/workspace/dockerbuilder/webs/dashuju/tuoheng_airport_web/dist
export BUSINESS_WEB_DIST=/home/th/workspace/dockerbuilder/webs/dashuju/business_web/dist
echo $HHZ_ADMIN_WEB_DIST
echo $DSP_ADMIN_WEB_DIST
echo $AIRPORT_WEB_DIST
echo $BUSINESS_WEB_DIST
#域名证书位置写在这边
#export PEM_PATH=/Users/sunpeng/workspace/remote/docker/nginx/vhosts/cert/t-aaron.com.pem
#export KEY_PATH=/Users/sunpeng/workspace/remote/docker/nginx/vhosts/cert/t-aaron.com.key
#前端配置
#export VUE_APP_API_BASE_URL = https://${HHZ_DOMAIN}:${NGINX_HTTPS_PORT}/
#export VUE_APP_AUTHORITY = https://${OIDC_SERVER_DOMAIN}:${NGINX_HTTPS_PORT}
#export VUE_APP_OUT_AUTHORITY = https://${OIDC_SERVER_DOMAIN}:${NGINX_HTTPS_PORT}
#VUE_APP_API_BASE_URL=https://${AIRPORT_DOMAIN}:${NGINX_HTTPS_PORT}/airport
#https://airport-develop.t-aaron.com:3443
#https://hhz-develop.t-aaron.com:3443
#https://oidc-develop.t-aaron.com:3443

View File

@ -1,28 +1,88 @@
#!/bin/bash
# 定基本环境变量并导出
# 所有端口都为主机对外爆露的端口
export DOMAIN=bazhong
# 不同的环境采用不同的DOMAIN
if [ -z "${VERSION}" ]; then
export VERSION=""
echo "环境变量 VERSION 未设置"
else
echo "环境变量 VERSION 已设置,设置为 ${VERSION}"
fi
if [ -z "${DOMAIN}" ]; then
export DOMAIN=bazhong
echo "环境变量 DOMAIN 未设置,设置为默认值 ${DOMAIN}"
else
echo "环境变量 DOMAIN 已设置,设置为 ${DOMAIN}"
fi
if [[ "$(uname)" == "Darwin" ]]; then
echo "当前是 Mac 系统"
export PLATFORM=""
# 这里写 Mac 下要执行的命令
else
echo "当前不是 Mac 系统"
export PLATFORM="linux"
echo "环境变量 PLATFORM 已设置,设置为 ${PLATFORM}"
# 这里写 Linux 或其他系统下要执行的命令
fi
export NETWORK="swarm_network_$DOMAIN"
export HOST_IP=127.0.0.1
# 镜像仓库地址
export REGISTRY=registry.t-aaron.com
export SKY_DOMAIN=sky-${DOMAIN}.t-aaron.com
export CONSUL_DOMAIN=consul-${DOMAIN}.t-aaron.com
export XXLJOB_DOMAIN=xxljob-${DOMAIN}.t-aaron.com
export OIDC_SERVER_DOMAIN=oidc-${DOMAIN}.t-aaron.com
# 主机的域名后缀
if [ -z "${DOMAIN_END}" ]; then
export DOMAIN_END=t-aaron.com
echo "环境变量 DOMAIN_END 未设置,设置为默认值 ${DOMAIN_END}"
else
echo "环境变量 DOMAIN_END 已设置,设置为 ${DOMAIN_END}"
fi
# 主机对外爆露的HTTP端口
if [ -z "$NGINX_HTTP_PORT" ]; then
export NGINX_HTTP_PORT=8899
else
echo "环境变量 NGINX_HTTP_PORT 已设置,设置为 ${NGINX_HTTP_PORT}"
fi
# 主机对外爆露的HTTPS端口
if [ -z "$NGINX_HTTPS_PORT" ]; then
export NGINX_HTTPS_PORT=2443
else
echo "环境变量 NGINX_HTTPS_PORT 已设置,设置为 ${NGINX_HTTPS_PORT}"
fi
export SKYWALKING_UI_DOMAIN=sky-${DOMAIN}.${DOMAIN_END}
export CONSUL_DOMAIN=consul-${DOMAIN}.${DOMAIN_END}
export XXLJOB_DOMAIN=xxljob-${DOMAIN}.${DOMAIN_END}
export OIDC_SERVER_DOMAIN=oidc-${DOMAIN}.${DOMAIN_END}
export OIDC_DOMAIN_FULL=${OIDC_SERVER_DOMAIN}:${NGINX_HTTPS_PORT}
export MINIO_DOMAIN=minio-${DOMAIN}.${DOMAIN_END}
export MINIO_CONSOLE_DOMAIN=minioconsole-${DOMAIN}.${DOMAIN_END}
export AIRPORT_DOMAIN=airport-${DOMAIN}.${DOMAIN_END}
export AIRPORT_DOMAIN_FULL=${AIRPORT_DOMAIN}:${NGINX_HTTPS_PORT}
export BUSINESS_DOMAIN=business-${DOMAIN}.${DOMAIN_END}
export BUSINESS_DOMAIN_FULL=${BUSINESS_DOMAIN}:${NGINX_HTTPS_PORT}
export SRS_DOMAIN=srs-${DOMAIN}.${DOMAIN_END}
export SRS_DOMAIN_FULL=${SRS_DOMAIN}:${NGINX_HTTPS_PORT}
export HHZ_DOMAIN=hhz-${DOMAIN}.${DOMAIN_END}
export DSP_DOMAIN=dsp-${DOMAIN}.${DOMAIN_END}
export REGISTRY_HOST=${REGISTRY}/tuoheng/
#export REGISTRY_HOST=""
#Nginx 配置
export NGINX_NAME=NGINX_${DOMAIN}
export NGINX_IMAGE=${REGISTRY_HOST}nginx:${DOMAIN}
export NGINX_HTTP_PORT=8899
export NGINX_HTTPS_PORT=2443
export NGINX_IMAGE=${REGISTRY_HOST}nginx:${DOMAIN}${VERSION}
export NGINX_MEMORY=256m
#MySql 配置
export MYSQL_PORT=3308
# 数据库对外爆露端口
# 主机对外爆露的HTTPS端口
if [ -z "$MYSQL_PORT" ]; then
export MYSQL_PORT=3308
else
echo "环境变量 MYSQL_PORT 已设置,设置为 ${MYSQL_PORT}"
fi
export MYSQL_ROOT_PASSWORD=tuoheng2024
export MYSQL_IMAGE=${REGISTRY_HOST}mysql:8.0.25
export MYSQL_DATA=${NETWORK}_mysql_data
@ -30,50 +90,112 @@ export MYSQL_NAME=MYSQL_${DOMAIN}
export MYSQL_MEMORY=1g
#Redis 配置
export REDIS_PORT=6380
if [ -z "$REDIS_PORT" ]; then
export REDIS_PORT=6380
else
echo "环境变量 REDIS_PORT 已设置,设置为 ${REDIS_PORT}"
fi
export REDIS_IMAGE=${REGISTRY_HOST}redis:latest
export REDIS_DATA=${NETWORK}_redis_data
export REDIS_NAME=REDIS_${DOMAIN}
export REDIS_MEMORY=512m
#MQTT 配置
export MQTT_PORT=1883
export MQTT_WS_PORT=9001
# MQTT对外爆露端口
if [ -z "$MQTT_PORT" ]; then
export MQTT_PORT=1883
else
echo "环境变量 MQTT_PORT 已设置,设置为 ${MQTT_PORT}"
fi
if [ -z "$MQTT_WS_PORT" ]; then
export MQTT_WS_PORT=9001
else
echo "环境变量 MQTT_WS_PORT 已设置,设置为 ${MQTT_WS_PORT}"
fi
export MQTT_IMAGE=${REGISTRY_HOST}eclipse-mosquitto:latest
export MQTT_NAME=MQTT_${DOMAIN}
export MQTT_MEMORY=512m
#Kafka 配置
export KAFKA_PORT=9092
export KAFKA_IMAGE=${REGISTRY_HOST}confluentinc/cp-kafka:latest
# Kafka对外爆露端口
if [ -z "$KAFKA_PORT" ]; then
export KAFKA_PORT=9092
else
echo "环境变量 KAFKA_PORT 已设置,设置为 ${KAFKA_PORT}"
fi
if [[ "$(uname)" == "Darwin" ]]; then
echo "当前是 Mac 系统"
export KAFKA_IMAGE=${REGISTRY_HOST}bitnami/kafka:latest
# 这里写 Mac 下要执行的命令
else
echo "当前不是 Mac 系统"
export KAFKA_IMAGE=${REGISTRY_HOST}bitnami/kafka:${PLATFORM}
echo "环境变量 KAFKA_IMAGE 已设置,设置为 ${KAFKA_IMAGE}"
# 这里写 Linux 或其他系统下要执行的命令
fi
export KAFKA_NAME=KAFKA_${DOMAIN}
export KAFKA_MEMORY=512m
export KAFKA_MEMORY=1g
export KAFKA_DATA=${NETWORK}_kafka_data
#SRS 配置
export SRS_NAME=SRS_${DOMAIN}
export SRS_HTTP_PORT=8080
export SRS_RTMP_PORT=1935
export SRS_RTC_PORT=8000
# SRS对外爆露端口 Name比较特别,没有DOAMIN后缀
export SRS_NAME=SRS
if [ -z "$SRS_RTMP_PORT" ]; then
export SRS_RTMP_PORT=1935
else
echo "环境变量 SRS_RTMP_PORT 已设置,设置为 ${SRS_RTMP_PORT}"
fi
if [ -z "$SRS_RTC_PORT" ]; then
export SRS_RTC_PORT=8000
else
echo "环境变量 SRS_RTC_PORT 已设置,设置为 ${SRS_RTC_PORT}"
fi
export SRS_RTMP_DOMAIN_FULL=${SRS_DOMAIN}:${SRS_RTMP_PORT}
export SRS_MEMORY=512m
export SRS_IMAGE=registry.cn-hangzhou.aliyuncs.com/ossrs/srs:5
export SRS_IMAGE=${REGISTRY_HOST}ossrs/srs:5${PLATFORM}
export SRS_DATA=${NETWORK}_srs_data
#Minio 配置
export MINIO_NAME=MINIO_${DOMAIN}
#Minio 配置 Name比较特别,没有DOAMIN后缀
export MINIO_NAME=MINIO
export MINIO_MEMORY=512m
export MINIO_IMAGE=quay.io/minio/minio
export MINIO_IMAGE=${REGISTRY_HOST}quay.io/minio:latest${PLATFORM}
export MINIO_DATA=${NETWORK}_minio_data
export MINIO_API_PORT=9000
export MINIO_CONSOLE_PORT=9002
# Minio对外爆露端口
if [ -z "$MINIO_API_PORT" ]; then
export MINIO_API_PORT=9000
else
echo "环境变量 MINIO_API_PORT 已设置,设置为 ${MINIO_API_PORT}"
fi
# Minio控制台对外爆露端口
if [ -z "$MINIO_CONSOLE_PORT" ]; then
export MINIO_CONSOLE_PORT=9002
else
echo "环境变量 MINIO_CONSOLE_PORT 已设置,设置为 ${MINIO_CONSOLE_PORT}"
fi
export MINIO_ROOT_USER=miniopassword
export MINIO_ROOT_PASSWORD=miniopassword
if [ -z "$MINIO_ACCESS_KEY" ]; then
export MINIO_ACCESS_KEY=shvngIfksXjTqlQHKSxt
else
echo "环境变量 MINIO_ACCESS_KEY 已设置,设置为 ${MINIO_ACCESS_KEY}"
fi
if [ -z "$MINIO_SECRET_KEY" ]; then
export MINIO_SECRET_KEY=Xed4RsGAF1iX7bzEsNEXydnEYsWMUHzU4cA4IPGl
else
echo "环境变量 MINIO_SECRET_KEY 已设置,设置为 ${MINIO_SECRET_KEY}"
fi
# Elasticsearch 配置
export ES_NAME=ES_${DOMAIN}
export ES_IMAGE=elasticsearch:7.8.0
export ES_IMAGE=${REGISTRY_HOST}elasticsearch:7.8.0
export ES_MEMORY=1g
# Elasticsearch对外爆露端口
export ES_PORT=9200
export ES_DATA=${NETWORK}_es_data
@ -84,6 +206,7 @@ export SKYWALKING_OAP_IMAGE=apache/skywalking-oap-server:8.6.0-es7
export SKYWALKING_UI_IMAGE=apache/skywalking-ui:8.6.0
export SKYWALKING_OAP_MEMORY=512m
export SKYWALKING_UI_MEMORY=512m
# SkyWalking UI对外爆露端口
export SKYWALKING_UI_PORT=8181
export SW_AGENT_COLLECTOR_BACKEND_SERVICES=${SKYWALKING_OAP_NAME}:11800
export SKYWALKING_USERNAME=skywalking
@ -93,57 +216,186 @@ export SKYWALKING_PASSWORD=skywalking
# Consul 配置
export CONSUL_NAME=CONSUL_${DOMAIN}
export CONSUL_IMAGE=${REGISTRY_HOST}consul:latest
export CONSUL_PORT="8500"
if [ -z "$CONSUL_PORT" ]; then
export CONSUL_PORT=8500
else
echo "环境变量 CONSUL_PORT 已设置,设置为 ${CONSUL_PORT}"
fi
export CONSUL_MEMORY="512m"
# XXL-Job 配置
export XXLJOB_NAME=XXL_JOB_${DOMAIN}
export XXLJOB_IMAGE=${REGISTRY_HOST}xuxueli/xxl-job-admin:2.4.0
export XXLJOB_PORT=8282
export XXLJOB_MEMORY=512m
if [ -z "$XXLJOB_PORT" ]; then
export XXLJOB_PORT=8282
else
echo "环境变量 XXLJOB_PORT 已设置,设置为 ${XXLJOB_PORT}"
fi
export XXLJOB_MEMORY=1g
export XXLJOB_ACCESS_TOKEN=default_token
#SKY_AOP 配置
export SKY_AOP=106.15.229.178:11800
#OIDCServer 配置
export OIDC_SERVER_NAME=OIDC_SERVER_${DOMAIN}
export OIDC_SERVER_IMAGE=${REGISTRY_HOST}oidcserver:${DOMAIN}
export OIDC_SERVER_NAME=OIDC-SERVER${DOMAIN}
export OIDC_SERVER_IMAGE=${REGISTRY_HOST}oidcserver:${DOMAIN}${VERSION}
export OIDC_SERVER_JAR=tuoheng_oidc_server.jar
export OIDC_SERVER_REMOTE_JAR=/home/th/workspace/test/swarm/dockerfile/oidcservice/${OIDC_SERVER_JAR}
export OIDC_SERVER_MEMORY=512m
if [ -z "$OIDC_SERVER_REMOTE_JAR" ]; then
export OIDC_SERVER_REMOTE_JAR=/home/th/workspace/test/swarm/dockerfile/oidcservice/${OIDC_SERVER_JAR}
else
echo "环境变量 OIDC_SERVER_REMOTE_JAR 已设置,设置为 ${OIDC_SERVER_REMOTE_JAR}"
fi
export OIDC_SERVER_MEMORY=1g
#OIDCAdmin 配置
export OIDC_ADMIN_NAME=OIDC_ADMIN_${DOMAIN}
export OIDC_ADMIN_IMAGE=${REGISTRY_HOST}oidcadmin:${DOMAIN}
export OIDC_ADMIN_NAME=OIDC-ADMIN${DOMAIN}
export OIDC_ADMIN_IMAGE=${REGISTRY_HOST}oidcadmin:${DOMAIN}${VERSION}
export OIDC_ADMIN_JAR=tuoheng_oidc_admin.jar
export OIDC_ADMIN_REMOTE_JAR=/home/th/workspace/test/swarm/dockerfile/oidcadmin/${OIDC_ADMIN_JAR}
export OIDC_ADMIN_MEMORY=512m
if [ -z "$OIDC_ADMIN_REMOTE_JAR" ]; then
export OIDC_ADMIN_REMOTE_JAR=/home/th/workspace/test/swarm/dockerfile/oidcadmin/${OIDC_ADMIN_JAR}
else
echo "环境变量 OIDC_ADMIN_REMOTE_JAR 已设置,设置为 ${OIDC_ADMIN_REMOTE_JAR}"
fi
export OIDC_ADMIN_MEMORY=1g
export GATEWAY_NAME=GATEWAY_${DOMAIN}
export GATEWAY_IMAGE=${REGISTRY_HOST}gateway:${DOMAIN}
#网关配置
export GATEWAY_NAME=GATEWAY${DOMAIN}
export GATEWAY_IMAGE=${REGISTRY_HOST}gateway:${DOMAIN}${VERSION}
export GATEWAY_JAR=tuoheng_gateway.jar
export GATEWAY_REMOTE_JAR=/home/th/workspace/test/swarm/dockerfile/gateway/${GATEWAY_JAR}
export GATEWAY_MEMORY=512m
if [ -z "$GATEWAY_REMOTE_JAR" ]; then
export GATEWAY_REMOTE_JAR=/home/th/workspace/test/swarm/dockerfile/gateway/${GATEWAY_JAR}
else
echo "环境变量 GATEWAY_REMOTE_JAR 已设置,设置为 ${GATEWAY_REMOTE_JAR}"
fi
export GATEWAY_MEMORY=1g
#流媒体录制配置
export STREAM_NAME=STREAM
export STREAM_IMAGE=${REGISTRY_HOST}stream:${DOMAIN}${VERSION}
if [ -z "$STREAM_REMOTE_JAR" ]; then
export STREAM_REMOTE_JAR=/Users/sunpeng/workspace/ideaproject/stream_server/target/stream_server-0.0.1-SNAPSHOT.jar
else
echo "环境变量 STREAM_REMOTE_JAR 已设置,设置为 ${STREAM_REMOTE_JAR}"
fi
export STREAM_MEMORY=1g
export STREAM_JAR=stream_server-0.0.1-SNAPSHOT.jar
export STREAM_DATA=${NETWORK}_stream_data
export STREAM_DEBUG_PORT=7878
#河湖长
export HHZ_API_NAME=HHZ-API${DOMAIN}
export HHZ_API_IMAGE=${REGISTRY_HOST}hhzapi:${DOMAIN}${VERSION}
export HHZ_API_JAR=tuoheng_hhz_api.jar
if [ -z "$HHZ_API_REMOTE_JAR" ]; then
export HHZ_API_REMOTE_JAR=/home/th/workspace/test/swarm/dockerfile/hhz-api/${HHZ_API_JAR}
else
echo "环境变量 HHZ_API_REMOTE_JAR 已设置,设置为 ${HHZ_API_REMOTE_JAR}"
fi
export HHZ_API_MEMORY=1g
#河湖长
export HHZ_ADMIN_NAME=HHZ-ADMIN${DOMAIN}
export HHZ_ADMIN_IMAGE=${REGISTRY_HOST}hhzadmin:${DOMAIN}${VERSION}
export HHZ_ADMIN_JAR=tuoheng_hhz_admin.jar
if [ -z "${HHZ_ADMIN_REMOTE_JAR}" ]; then
export HHZ_ADMIN_REMOTE_JAR=/home/th/workspace/test/swarm/dockerfile/hhz-admin/${HHZ_ADMIN_JAR}
else
echo "环境变量 HHZ_ADMIN_REMOTE_JAR 已设置,设置为 ${HHZ_ADMIN_REMOTE_JAR}"
fi
export HHZ_ADMIN_MEMORY=1g
if [ -z "${HHZ_ADMIN_WEB_DIST}" ]; then
export HHZ_ADMIN_WEB_DIST=/Users/sunpeng/workspace/remote/tuoheng_hhz_web/dist
else
echo "环境变量 HHZ_ADMIN_WEB_DIST 已设置,设置为 ${HHZ_ADMIN_WEB_DIST}"
fi
#机场平台
export AIRPORT_NAME=AIRPORT${DOMAIN}
export AIRPORT_IMAGE=${REGISTRY_HOST}airport:${DOMAIN}${VERSION}
export AIRPORT_JAR=tuoheng_airport_admin.jar
if [ -z "${AIRPORT_REMOTE_JAR}" ]; then
export AIRPORT_REMOTE_JAR=/Users/sunpeng/workspace/remote/tuoheng_airport/tuoheng-admin/target/${AIRPORT_JAR}
else
echo "环境变量 AIRPORT_REMOTE_JAR 已设置,设置为 ${AIRPORT_REMOTE_JAR}"
fi
if [ -z "${AIRPORT_WEB_DIST}" ]; then
export AIRPORT_WEB_DIST=/Users/sunpeng/workspace/remote/docker/tuoheng_airport_web/dist
else
echo "环境变量 AIRPORT_WEB_DIST 已设置,设置为 ${AIRPORT_WEB_DIST}"
fi
export AIRPORT_MEMORY=1g
#主机INGRESS_PORT 映射到容器80 INGRESS_SSL_PORT 映射到容器 443
export INGRESS_PORT=80
#export INGRESS_SSL_PORT=443
export OIDC_URL=https://oidc-$DOMAIN-software.t-aaron.com
export OIDC_PORT=8090
export XXL_JOB=http://xxljob:8080/xxl-job-admin
#固定基本配置
export TZ=Asia/Shanghai
export SPRING_CLOUD_CONSUL_HOST=consul
export SPRING_CLOUD_CONSUL_PORT=8500
export BUSINESS_NAME=BUSINESS${DOMAIN}
export BUSINESS_IMAGE=${REGISTRY_HOST}business:${DOMAIN}${VERSION}
export BUSINESS_JAR=tuoheng_business_admin.jar
if [ -z "${BUSINESS_REMOTE_JAR}" ]; then
export BUSINESS_REMOTE_JAR=/home/th/workspace/test/swarm/dockerfile/business/${BUSINESS_JAR}
else
echo "环境变量 BUSINESS_REMOTE_JAR 已设置,设置为 ${BUSINESS_REMOTE_JAR}"
fi
export BUSINESS_MEMORY=512m
if [ -z "${BUSINESS_WEB_DIST}" ]; then
export BUSINESS_WEB_DIST=/Users/sunpeng/workspace/remote/tuoheng_hhz_web/dist
else
echo "环境变量 BUSINESS_WEB_DIST 已设置,设置为 ${BUSINESS_WEB_DIST}"
fi
export DSP_API_NAME=DSP-API${DOMAIN}
export DSP_API_IMAGE=${REGISTRY_HOST}dspapi:${DOMAIN}${VERSION}
export DSP_API_JAR=tuoheng_dsp_api.jar
if [ -z "${DSP_API_REMOTE_JAR}" ]; then
export DSP_API_REMOTE_JAR=/home/th/workspace/test/swarm/dockerfile/dsp-api/${DSP_API_JAR}
else
echo "环境变量 DSP_API_REMOTE_JAR 已设置,设置为 ${DSP_API_REMOTE_JAR}"
fi
export DSP_API_MEMORY=1g
export DSP_ADMIN_NAME=DSP-ADMIN${DOMAIN}
export DSP_ADMIN_IMAGE=${REGISTRY_HOST}dspadmin:${DOMAIN}${VERSION}
export DSP_ADMIN_JAR=tuoheng_dsp_admin.jar
if [ -z "${DSP_ADMIN_REMOTE_JAR}" ]; then
export DSP_ADMIN_REMOTE_JAR=/home/th/workspace/test/swarm/dockerfile/dsp-admin/${DSP_ADMIN_JAR}
else
echo "环境变量 DSP_ADMIN_REMOTE_JAR 已设置,设置为 ${DSP_ADMIN_REMOTE_JAR}"
fi
export DSP_ADMIN_MEMORY=512m
if [ -z "${DSP_ADMIN_WEB_DIST}" ]; then
export DSP_ADMIN_WEB_DIST=/home/th/workspace/dockerbuilder/webs/dsp-admin/dist
else
echo "环境变量 DSP_ADMIN_WEB_DIST 已设置,设置为 ${DSP_ADMIN_WEB_DIST}"
fi
export DSP_INSPECTION_NAME=DSP-INSPECTION${DOMAIN}
export DSP_INSPECTION_IMAGE=${REGISTRY_HOST}dspinspection:${DOMAIN}${VERSION}
export DSP_INSPECTION_JAR=tuoheng_dsp_inspection.jar
if [ -z "${DSP_INSPECTION_REMOTE_JAR}" ]; then
export DSP_INSPECTION_REMOTE_JAR=/home/th/workspace/test/swarm/dockerfile/dsp-inspection/${DSP_INSPECTION_JAR}
else
echo "环境变量 DSP_INSPECTION_REMOTE_JAR 已设置,设置为 ${DSP_INSPECTION_REMOTE_JAR}"
fi
export DSP_INSPECTION_MEMORY=512m
export DSP_MINI_NAME=DSP-MINI${DOMAIN}
export DSP_MINI_IMAGE=${REGISTRY_HOST}dspmini:${DOMAIN}${VERSION}
export DSP_MINI_JAR=tuoheng_dsp_miniprogram.jar
if [ -z "${DSP_MINI_REMOTE_JAR}" ]; then
export DSP_MINI_REMOTE_JAR=/home/th/workspace/test/swarm/dockerfile/dsp-mini/${DSP_MINI_JAR}
else
echo "环境变量 DSP_MINI_REMOTE_JAR 已设置,设置为 ${DSP_MINI_REMOTE_JAR}"
fi
export DSP_MINI_MEMORY=512m
export DSP_PORTAL_NAME=DSP-PORTAL${DOMAIN}
export DSP_PORTAL_IMAGE=${REGISTRY_HOST}dspportal:${DOMAIN}${VERSION}
export DSP_PORTAL_JAR=tuoheng_dsp_portal.jar
if [ -z "${DSP_PORTAL_REMOTE_JAR}" ]; then
export DSP_PORTAL_REMOTE_JAR=/home/th/workspace/test/swarm/dockerfile/dsp-portal/${DSP_PORTAL_JAR}
else
echo "环境变量 DSP_PORTAL_REMOTE_JAR 已设置,设置为 ${DSP_PORTAL_REMOTE_JAR}"
fi
export DSP_PORTAL_MEMORY=512m

View File

@ -1,7 +1,10 @@
source ../environment.sh
if ! docker network inspect ${NETWORK} >/dev/null 2>&1; then
docker network create --driver bridge ${NETWORK}
echo "创建 ${NETWORK} bridge 网络成功"
docker network create --driver bridge \
--subnet=172.20.0.0/16 \
--gateway=172.20.0.1 \
${NETWORK}
echo "创建 ${NETWORK} bridge 网络成功,子网: 172.20.0.0/16网关: 172.20.0.1"
else
echo "${NETWORK} 网络已存在"
fi

View File

@ -43,4 +43,18 @@ else
fi
source ../environment.sh
if ! docker volume inspect ${KAFKA_DATA} >/dev/null 2>&1; then
docker volume create ${KAFKA_DATA}
echo "创建 ${KAFKA_DATA} 卷成功"
else
echo "${KAFKA_DATA} 卷已存在"
fi
source ../environment.sh
if ! docker volume inspect ${STREAM_DATA} >/dev/null 2>&1; then
docker volume create ${STREAM_DATA}
echo "创建 ${STREAM_DATA} 卷成功"
else
echo "${STREAM_DATA} 卷已存在"
fi

View File

@ -26,6 +26,7 @@ docker run -d \
-p ${MQTT_WS_PORT}:9001 \
--memory ${MQTT_MEMORY} \
--restart unless-stopped \
-v $(pwd)/volumes/mqtt/mosquitto.conf:/mosquitto/config/mosquitto.conf \
${MQTT_IMAGE}
docker ps

View File

@ -4,10 +4,7 @@ echo "错误: 未找到 NETWORK 环境变量"
exit 1
fi
if [ -z "$HOST_IP" ]; then
echo "错误: 未找到 HOST_IP 环境变量"
exit 1
fi
if [ -z "$KAFKA_PORT" ]; then
echo "错误: 未找到 KAFKA_PORT 环境变量"
@ -40,23 +37,62 @@ docker run -d \
--name ${KAFKA_NAME} \
--network $NETWORK \
-p ${KAFKA_PORT}:9092 \
-e KAFKA_NODE_ID=1 \
-e KAFKA_PROCESS_ROLES=broker,controller \
-e KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9092,CONTROLLER://0.0.0.0:29093 \
-e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://${HOST_IP}:${KAFKA_PORT} \
-e KAFKA_CONTROLLER_QUORUM_VOTERS=1@${KAFKA_NAME}:29093 \
-e KAFKA_CONTROLLER_LISTENER_NAMES=CONTROLLER \
-e CLUSTER_ID=b8f3a0c1-1234-5678-9abc-def012345678 \
-e KAFKA_LISTENER_SECURITY_PROTOCOL_MAP=CONTROLLER:PLAINTEXT,PLAINTEXT:PLAINTEXT \
-e KAFKA_INTER_BROKER_LISTENER_NAME=PLAINTEXT \
-e KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR=1 \
-e KAFKA_TRANSACTION_STATE_LOG_REPLICATION_FACTOR=1 \
-e KAFKA_TRANSACTION_STATE_LOG_MIN_ISR=1 \
-e KAFKA_GROUP_INITIAL_REBALANCE_DELAY_MS=0 \
-e KAFKA_NUM_PARTITIONS=3 \
-e KAFKA_AUTO_CREATE_TOPICS_ENABLE=true \
--memory ${KAFKA_MEMORY} --restart unless-stopped ${KAFKA_IMAGE}
-e KAFKA_CFG_NODE_ID=1 \
-e KAFKA_CFG_PROCESS_ROLES=broker,controller \
-e KAFKA_CFG_LISTENERS=PLAINTEXT://:9092,CONTROLLER://:29093 \
-e KAFKA_CFG_ADVERTISED_LISTENERS=PLAINTEXT://${KAFKA_NAME}:9092 \
-e KAFKA_CFG_CONTROLLER_QUORUM_VOTERS=1@${KAFKA_NAME}:29093 \
-e KAFKA_CFG_CONTROLLER_LISTENER_NAMES=CONTROLLER \
-e KAFKA_CFG_LISTENER_SECURITY_PROTOCOL_MAP=CONTROLLER:PLAINTEXT,PLAINTEXT:PLAINTEXT \
-e KAFKA_CFG_INTER_BROKER_LISTENER_NAME=PLAINTEXT \
-e KAFKA_CFG_OFFSETS_TOPIC_REPLICATION_FACTOR=1 \
-e KAFKA_CFG_TRANSACTION_STATE_LOG_REPLICATION_FACTOR=1 \
-e KAFKA_CFG_TRANSACTION_STATE_LOG_MIN_ISR=1 \
-e KAFKA_CFG_GROUP_INITIAL_REBALANCE_DELAY_MS=0 \
-e KAFKA_CFG_NUM_PARTITIONS=3 \
-e KAFKA_CFG_AUTO_CREATE_TOPICS_ENABLE=true \
-e KAFKA_CFG_LOG_RETENTION_HOURS=168 \
-e KAFKA_CFG_LOG_RETENTION_BYTES=-1 \
-e KAFKA_CFG_DELETE_TOPIC_ENABLE=true \
--mount type=volume,source=${KAFKA_DATA},target=/bitnami/kafka \
--memory ${KAFKA_MEMORY} \
--restart unless-stopped \
${KAFKA_IMAGE}
docker ps
# 等待 Kafka 服务就绪
echo "等待 Kafka 服务就绪..."
sleep 30
# 创建所需的 topics
echo "开始创建 Kafka topics..."
# 创建机场相关 topics
docker exec ${KAFKA_NAME} /opt/bitnami/kafka/bin/kafka-topics.sh --create --bootstrap-server 127.0.0.1:9092 --topic airport-push-voltage-imitateFly
docker exec ${KAFKA_NAME} /opt/bitnami/kafka/bin/kafka-topics.sh --create --bootstrap-server 127.0.0.1:9092 --topic airport-push-voltage-task
docker exec ${KAFKA_NAME} /opt/bitnami/kafka/bin/kafka-topics.sh --create --bootstrap-server 127.0.0.1:9092 --topic airport-push-voltage-test
docker exec ${KAFKA_NAME} /opt/bitnami/kafka/bin/kafka-topics.sh --create --bootstrap-server 127.0.0.1:9092 --topic business-update-dataPermissions-task
# 创建 DSP 算法相关 topics
docker exec ${KAFKA_NAME} /opt/bitnami/kafka/bin/kafka-topics.sh --create --bootstrap-server 127.0.0.1:9092 --topic dsp-alg-online-tasks
docker exec ${KAFKA_NAME} /opt/bitnami/kafka/bin/kafka-topics.sh --create --bootstrap-server 127.0.0.1:9092 --topic dsp-alg-offline-tasks
docker exec ${KAFKA_NAME} /opt/bitnami/kafka/bin/kafka-topics.sh --create --bootstrap-server 127.0.0.1:9092 --topic dsp-alg-image-tasks
docker exec ${KAFKA_NAME} /opt/bitnami/kafka/bin/kafka-topics.sh --create --bootstrap-server 127.0.0.1:9092 --topic dsp-alg-task-results
docker exec ${KAFKA_NAME} /opt/bitnami/kafka/bin/kafka-topics.sh --create --bootstrap-server 127.0.0.1:9092 --topic dsp-local
# 创建 DSP 录制相关 topics
docker exec ${KAFKA_NAME} /opt/bitnami/kafka/bin/kafka-topics.sh --create --bootstrap-server 127.0.0.1:9092 --topic dsp-recording-task
docker exec ${KAFKA_NAME} /opt/bitnami/kafka/bin/kafka-topics.sh --create --bootstrap-server 127.0.0.1:9092 --topic dsp-recording-result
docker exec ${KAFKA_NAME} /opt/bitnami/kafka/bin/kafka-topics.sh --create --bootstrap-server 127.0.0.1:9092 --topic dsp-recording-local
# 创建 DSP 推流相关 topics
docker exec ${KAFKA_NAME} /opt/bitnami/kafka/bin/kafka-topics.sh --create --bootstrap-server 127.0.0.1:9092 --topic dsp-push-stream-task
docker exec ${KAFKA_NAME} /opt/bitnami/kafka/bin/kafka-topics.sh --create --bootstrap-server 127.0.0.1:9092 --topic dsp-push-stream-result
docker exec ${KAFKA_NAME} /opt/bitnami/kafka/bin/kafka-topics.sh --create --bootstrap-server 127.0.0.1:9092 --topic dsp-push-stream-local
# 列出所有创建的 topics
echo "已创建的 topics 列表:"
docker exec ${KAFKA_NAME} /opt/bitnami/kafka/bin/kafka-topics.sh --bootstrap-server 127.0.0.1:9092 --list

View File

@ -20,10 +20,7 @@ if [ -z "$SRS_RTMP_PORT" ]; then
echo "错误: 未找到 SRS_RTMP_PORT 环境变量"
exit 1
fi
if [ -z "$SRS_HTTP_PORT" ]; then
echo "错误: 未找到 SRS_HTTP_PORT 环境变量"
exit 1
fi
if [ -z "$SRS_RTC_PORT" ]; then
echo "错误: 未找到 SRS_RTC_PORT 环境变量"
exit 1
@ -39,16 +36,30 @@ if docker ps -a | grep -q ${SRS_NAME}; then
docker rm ${SRS_NAME} >/dev/null 2>&1
fi
# 在容器内检查并创建必要的目录结构
echo "检查SRS目录结构..."
docker run --rm \
-v "${SRS_DATA}:/usr/local/srs/objs/nginx/html" \
$SRS_IMAGE \
/bin/sh -c '
if [ -d "/usr/local/srs/objs/nginx/html/record" ]; then
echo "record目录已存在跳过创建"
else
echo "创建record目录..."
mkdir -p /usr/local/srs/objs/nginx/html/record
fi
'
# 启动SRS容器
# 启动SRS容器
# 启动SRS容器 默认也有8080端口
docker run -d \
--name ${SRS_NAME} \
--network $NETWORK \
--memory $SRS_MEMORY \
--restart unless-stopped \
-p ${SRS_RTMP_PORT}:1935 \
-p ${SRS_HTTP_PORT}:8080 \
-p ${SRS_RTC_PORT}:8000/udp \
-v "$(pwd)/volumes/srs/conf/srs.conf:/usr/local/srs/conf/srs.conf" \
-v "${SRS_DATA}:/usr/local/srs/objs" \
-v "$(pwd)/volumes/srs/conf/srs.conf:/usr/local/srs/conf/docker.conf" \
-v "${SRS_DATA}:/usr/local/srs/objs/nginx/html" \
--mount type=bind,source=/etc/localtime,target=/etc/localtime,readonly \
$SRS_IMAGE

View File

@ -36,6 +36,14 @@ if [ -z "$MINIO_ROOT_PASSWORD" ]; then
echo "错误: 未找到 MINIO_ROOT_PASSWORD 环境变量"
exit 1
fi
if [ -z "$MINIO_ACCESS_KEY" ]; then
echo "错误: 未找到 MINIO_ACCESS_KEY 环境变量"
exit 1
fi
if [ -z "$MINIO_SECRET_KEY" ]; then
echo "错误: 未找到 MINIO_SECRET_KEY 环境变量"
exit 1
fi
if docker ps -a | grep -q ${MINIO_NAME}; then
echo "停止并删除已存在的 MinIO 容器..."
@ -55,3 +63,73 @@ docker run -d \
-e MINIO_ROOT_PASSWORD=${MINIO_ROOT_PASSWORD} \
-v "${MINIO_DATA}:/data" \
$MINIO_IMAGE server /data --console-address ":9001"
# 等待 MinIO 服务启动
echo "等待 MinIO 服务启动..."
sleep 10
# 创建 MinIO 服务账号配置目录
mkdir -p $(pwd)/volumes/minio/policies
# 创建 MinIO 服务账号配置文件
cat > $(pwd)/volumes/minio/policies/mqtt-policy.json << EOF
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"admin:*"
]
},
{
"Effect": "Allow",
"Action": [
"kms:*"
]
},
{
"Effect": "Allow",
"Action": [
"s3:*"
],
"Resource": [
"arn:aws:s3:::*"
]
}
]
}
EOF
# 创建 MinIO 服务账号
echo "创建 MinIO 服务账号..."
docker exec ${MINIO_NAME} mc alias set myminio http://localhost:9000 ${MINIO_ROOT_USER} ${MINIO_ROOT_PASSWORD}
docker exec ${MINIO_NAME} mc admin user add myminio ${MINIO_ACCESS_KEY} ${MINIO_SECRET_KEY}
# 将策略文件复制到容器内
docker cp $(pwd)/volumes/minio/policies/mqtt-policy.json ${MINIO_NAME}:/tmp/mqtt-policy.json
# 创建和附加策略
docker exec ${MINIO_NAME} mc admin policy create myminio mqtt-policy /tmp/mqtt-policy.json
docker exec ${MINIO_NAME} mc admin policy attach myminio mqtt-policy --user ${MINIO_ACCESS_KEY}
# 清理临时文件
docker exec ${MINIO_NAME} rm /tmp/mqtt-policy.json
# 创建所需的 bucket
echo "创建所需的 bucket..."
for bucket in default image ta-tech-image th-airport th-dsp video; do
echo "处理 bucket: $bucket"
# 检查 bucket 是否存在
if ! docker exec ${MINIO_NAME} mc ls myminio/$bucket >/dev/null 2>&1; then
echo "创建 bucket: $bucket"
docker exec ${MINIO_NAME} mc mb myminio/$bucket
else
echo "bucket $bucket 已存在"
fi
# 设置 bucket 为 public
echo "设置 bucket $bucket 为 public"
docker exec ${MINIO_NAME} mc anonymous set public myminio/$bucket
done
echo "MinIO 服务账号和 bucket 创建完成"

View File

@ -0,0 +1,2 @@
source ../../../environment.sh
docker run --rm -v ${MINIO_DATA}:/data registry.t-aaron.com/tuoheng/alpine tar czf - -C /data . > minio_backup.tar.gz

Binary file not shown.

View File

@ -0,0 +1,3 @@
source ../../../environment.sh
docker volume create ${MINIO_DATA}
docker run --rm -i -v ${MINIO_DATA}:/data alpine sh -c "tar xzf - -C /data" < minio_backup.tar.gz

View File

@ -0,0 +1,26 @@
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"admin:*"
]
},
{
"Effect": "Allow",
"Action": [
"kms:*"
]
},
{
"Effect": "Allow",
"Action": [
"s3:*"
],
"Resource": [
"arn:aws:s3:::*"
]
}
]
}

View File

@ -0,0 +1,6 @@
listener 1883
allow_anonymous true
persistence false
log_dest stdout
log_type all
connection_messages true

View File

@ -1,7 +1,7 @@
listen 1935;
max_connections 1000;
srs_log_tank file;
srs_log_file ./objs/srs.log;
srs_log_tank console;
daemon off;
http_server {
enabled on;
@ -15,13 +15,39 @@ rtc_server {
}
vhost __defaultVhost__ {
dvr {
enabled on;
#all表示录制所有视频流也可以按频道录制
#规则为<app>/<stream>live/stream1 live/stream2
#规则为<app>/<stream>live/stream1 live/stream2
dvr_apply all;
#dvr计划
dvr_plan segment;
#录制的路径,详细配置规则见附录三
dvr_path ./objs/nginx/html/record/[2006][01][02]/[app][stream]/[timestamp].flv;
#segment方式录制时间设置单位: s
dvr_duration 900;
#开启按关键帧且flv
dvr_wait_keyframe on;
#时间戳抖动算法。full使用完全的时间戳矫正
#zero只是保证从0开始off不矫正时间戳。
time_jitter full;
}
rtc {
enabled on;
# 开启rtc录制
rtmp_to_rtc on;
rtc_to_rtmp on;
}
http_remux {
enabled on;
mount [vhost]/[app]/[stream].flv;
}
hls {
enabled on;
hls_path ./objs/nginx/html;

View File

@ -3,15 +3,32 @@ FROM nginx:latest
# 删除默认的nginx配置
RUN rm -rf /etc/nginx/conf.d/*
# 复制vhosts配置到nginx配置目录
COPY vhosts/ /etc/nginx/conf.d/
# 每增加一个前端项目需要在这里添加一个临时目录并复制文件Dockerfile.nginx 中也要添加一个COPY命令
# 创建目标目录
RUN mkdir -p /data/tuoheng_airport_web/dist
RUN mkdir -p /data/tuoheng_hhz_web/dist
RUN mkdir -p /data/tuoheng_business_web/dist
# 创建视频录制和图片的地址
RUN mkdir -p /data/recording
RUN mkdir -p /data/srs
# 复制temp_vhosts配置到nginx配置目录
COPY temp_vhosts/ /etc/nginx/conf.d/
# 复制SSL证书文件到nginx目录
COPY vhosts/cert/t-aaron.com.pem /etc/nginx/t-aaron.com.pem
COPY vhosts/cert/t-aaron.com.key /etc/nginx/t-aaron.com.key
# 每增加一个前端项目需要在这里添加一个临时目录并复制文件Dockerfile.nginx 中也要添加一个COPY命令
# 复制 AIRPORT_WEB_DIST 目录下的文件到容器中
COPY airport_web_dist/ /data/tuoheng_airport_web/dist/
COPY hhz_admin_web_dist/ /data/tuoheng_hhz_web/dist/
COPY business_web_dist/ /data/tuoheng_business_web/dist/
# 设置正确的权限
RUN chmod 644 /etc/nginx/t-aaron.com.pem /etc/nginx/t-aaron.com.key
RUN chmod 644 /etc/nginx/t-aaron.com.pem /etc/nginx/t-aaron.com.key && \
chmod -R 755 /data/tuoheng_airport_web/dist
# 设置时区
ENV TZ=Asia/Shanghai

View File

@ -11,10 +11,10 @@ if [ $? -ne 0 ]; then
exit 1
fi
echo ""
#echo ""
echo "变量替换已完成,请检查 temp_vhosts/ 目录中的文件"
echo "确认替换结果无误后按回车键继续构建镜像或按Ctrl+C取消"
read -p ""
#echo "确认替换结果无误后按回车键继续构建镜像或按Ctrl+C取消"
#read -p ""
echo ""
echo "步骤2: 构建Nginx镜像..."

View File

@ -29,13 +29,46 @@ if [ ! -f "vhosts/cert/t-aaron.com.pem" ] || [ ! -f "vhosts/cert/t-aaron.com.key
echo "Nginx容器的SSL功能可能无法正常工作"
fi
# 将替换后的配置文件复制到vhosts目录
cp -r $TEMP_DIR/* vhosts/
# 检查 AIRPORT_WEB_DIST 目录是否存在
if [ -z "${AIRPORT_WEB_DIST}" ]; then
echo "错误: AIRPORT_WEB_DIST 环境变量未设置!"
exit 1
fi
if [ ! -d "${AIRPORT_WEB_DIST}" ]; then
echo "错误: AIRPORT_WEB_DIST 目录不存在: ${AIRPORT_WEB_DIST}"
exit 1
fi
if [ ! -d "${HHZ_ADMIN_WEB_DIST}" ]; then
echo "错误: HHZ_ADMIN_WEB_DIST 目录不存在: ${HHZ_ADMIN_WEB_DIST}"
exit 1
fi
# 每增加一个前端项目需要在这里添加一个临时目录并复制文件Dockerfile.nginx 中也要添加一个COPY命令
echo "创建临时目录并复制 AIRPORT_WEB_DIST 文件..."
rm -rf airport_web_dist
mkdir -p airport_web_dist
cp -r "${AIRPORT_WEB_DIST}"/* airport_web_dist/
rm -rf hhz_admin_web_dist
mkdir -p hhz_admin_web_dist
cp -r "${HHZ_ADMIN_WEB_DIST}"/* hhz_admin_web_dist/
rm -rf business_web_dist
mkdir -p business_web_dist
cp -r "${BUSINESS_WEB_DIST}"/* business_web_dist/
# 构建Docker镜像
echo "使用Dockerfile.nginx构建镜像..."
docker build -t ${NGINX_IMAGE} -f Dockerfile.nginx .
# 清理临时目录
rm -rf airport_web_dist
rm -rf hhz_admin_web_dist
# 检查构建结果
if [ $? -eq 0 ]; then
echo "Nginx镜像构建成功: ${NGINX_IMAGE}"
@ -56,3 +89,4 @@ fi
echo "Nginx镜像构建和推送完成!"
echo "SSL证书已被包含在镜像中位于/etc/nginx/目录下"
echo "AIRPORT_WEB_DIST 文件已被复制到镜像中的 /data/tuoheng_airport_web/dist 目录"

View File

@ -14,6 +14,7 @@ fi
# 检查vhosts目录中是否有配置文件
if [ -z "$(ls -A vhosts/*.conf 2>/dev/null)" ]; then
echo "警告: vhosts目录中没有.conf文件没有配置文件需要处理"
exit 0
fi
# 创建临时目录
@ -47,14 +48,17 @@ for conf_file in vhosts/*.conf; do
var_name=$(echo $var | cut -d= -f1)
var_value=${!var_name}
if [ ! -z "$var_value" ]; then
# 使用简单的变量替换方法
# 使用更安全的变量替换方法
pattern="\\\${$var_name}"
# 转义特殊字符
escaped_value=$(echo "$var_value" | sed 's/[\/&]/\\&/g')
echo " 替换变量: ${pattern} -> $var_value"
content=$(echo "$content" | sed "s|${pattern}|$var_value|g")
content=$(echo "$content" | sed "s|${pattern}|${escaped_value}|g")
fi
done
# 写入处理后的内容到目标文件
# 写入处理后的内容到临时文件
echo "$content" > "$TEMP_DIR/$filename"
echo " 文件处理完成: $filename"

View File

@ -1,23 +0,0 @@
server {
listen 80;
listen 443 ssl;
server_name oidc-bazhong.t-aaron.com;
# SSL证书配置
ssl_certificate /etc/nginx/t-aaron.com.pem;
ssl_certificate_key /etc/nginx/t-aaron.com.key;
ssl_session_timeout 5m;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
ssl_protocols TLSv1.1 TLSv1.2 TLSv1.3;
ssl_prefer_server_ciphers on;
location / {
proxy_pass http://OIDC_SERVER_bazhong:8090;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}

View File

@ -1,21 +0,0 @@
server {
listen 80;
listen 443 ssl;
server_name sky-bazhong.t-aaron.com;
# SSL证书配置
ssl_certificate /etc/nginx/t-aaron.com.pem;
ssl_certificate_key /etc/nginx/t-aaron.com.key;
ssl_session_timeout 5m;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
ssl_protocols TLSv1.1 TLSv1.2 TLSv1.3;
ssl_prefer_server_ciphers on;
location / {
proxy_pass http://SKYWALKING_UI_bazhong:8080;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}

View File

@ -1 +0,0 @@

View File

@ -1,21 +0,0 @@
server {
listen 80;
listen 443 ssl;
server_name xxljob-bazhong.t-aaron.com;
# SSL证书配置
ssl_certificate /etc/nginx/t-aaron.com.pem;
ssl_certificate_key /etc/nginx/t-aaron.com.key;
ssl_session_timeout 5m;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
ssl_protocols TLSv1.1 TLSv1.2 TLSv1.3;
ssl_prefer_server_ciphers on;
location / {
proxy_pass http://XXL_JOB_bazhong:8080;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}

50
nginx/vhosts/airport.conf Normal file
View File

@ -0,0 +1,50 @@
server
{
listen 80;
listen 443 ssl;
server_name ${AIRPORT_DOMAIN};
root /data/tuoheng_airport_web/dist;
# SSL证书配置
ssl_certificate /etc/nginx/t-aaron.com.pem;
ssl_certificate_key /etc/nginx/t-aaron.com.key;
ssl_session_timeout 5m;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
ssl_protocols TLSv1.1 TLSv1.2 TLSv1.3;
ssl_prefer_server_ciphers on;
# 开启gzip功能
gzip on;
gzip_min_length 10k;
gzip_comp_level 9;
gzip_types text/plain text/css application/javascript application/x-javascript text/javascript application/xml;
gzip_vary on;
gzip_disable "MSIE [1-6]\.";
location /{
try_files $uri $uri/ @router;
index index.html;
proxy_redirect http://${AIRPORT_DOMAIN} https://${AIRPORT_DOMAIN_FULL};
}
location @router{
rewrite ^.*$ /index.html last;
}
location /airport {
proxy_pass http://gatewayService/airport;
proxy_set_header Host $host;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
location /permission {
proxy_pass http://airportService/permission;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}

View File

@ -0,0 +1,56 @@
server
{
listen 80;
listen 443 ssl;
server_name ${BUSINESS_DOMAIN};
root /data/tuoheng_business_web/dist;
# SSL证书配置
ssl_certificate /etc/nginx/t-aaron.com.pem;
ssl_certificate_key /etc/nginx/t-aaron.com.key;
ssl_session_timeout 5m;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
ssl_protocols TLSv1.1 TLSv1.2 TLSv1.3;
ssl_prefer_server_ciphers on;
# 开启gzip功能
gzip on;
gzip_min_length 10k;
gzip_comp_level 9;
gzip_types text/plain text/css application/javascript application/x-javascript text/javascript application/xml;
gzip_vary on;
gzip_disable "MSIE [1-6]\.";
location /{
try_files $uri $uri/ @router;
index index.html;
proxy_redirect http://${BUSINESS_DOMAIN} https://${BUSINESS_DOMAIN_FULL};
}
location @router{
rewrite ^.*$ /index.html last;
}
location /permission {
proxy_pass http://businessService;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
location /business-mini {
proxy_pass http://gatewayService;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
location /business {
proxy_pass http://gatewayService/business;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}

40
nginx/vhosts/dsp.conf Normal file
View File

@ -0,0 +1,40 @@
server
{
listen 80;
listen 443 ssl;
server_name ${DSP_DOMAIN};
root /data/dsp_admin_web/dist;
# SSL证书配置
ssl_certificate /etc/nginx/t-aaron.com.pem;
ssl_certificate_key /etc/nginx/t-aaron.com.key;
ssl_session_timeout 5m;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
ssl_protocols TLSv1.1 TLSv1.2 TLSv1.3;
ssl_prefer_server_ciphers on;
# 开启gzip功能
gzip on;
gzip_min_length 10k;
gzip_comp_level 9;
gzip_types text/plain text/css application/javascript application/x-javascript text/javascript application/xml;
gzip_vary on;
gzip_disable "MSIE [1-6]\.";
location /{
try_files $uri $uri/ @router;
index index.html;
}
location @router{
rewrite ^.*$ /index.html last;
}
location /api {
proxy_pass http://gatewayService;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}

54
nginx/vhosts/hhz.conf Normal file
View File

@ -0,0 +1,54 @@
server
{
listen 80;
listen 443 ssl;
server_name ${HHZ_DOMAIN};
root /data/tuoheng_hhz_web/dist;
# SSL证书配置
ssl_certificate /etc/nginx/t-aaron.com.pem;
ssl_certificate_key /etc/nginx/t-aaron.com.key;
ssl_session_timeout 5m;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
ssl_protocols TLSv1.1 TLSv1.2 TLSv1.3;
ssl_prefer_server_ciphers on;
# 开启gzip功能
gzip on;
gzip_min_length 10k;
gzip_comp_level 9;
gzip_types text/plain text/css application/javascript application/x-javascript text/javascript application/xml;
gzip_vary on;
gzip_disable "MSIE [1-6]\.";
location /{
try_files $uri $uri/ @router;
index index.html;
}
location @router{
rewrite ^.*$ /index.html last;
}
location /permission {
proxy_pass http://${HHZ_ADMIN_NAME}:9055;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
location /wxapp {
proxy_pass http://${HHZ_API_NAME}:9056/api;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
location /hhz {
proxy_pass http://gatewayService/hhz;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}

30
nginx/vhosts/minio.conf Normal file
View File

@ -0,0 +1,30 @@
server {
listen 80;
listen 443 ssl;
server_name ${MINIO_DOMAIN};
client_max_body_size 2g;
ssl_certificate /etc/nginx/t-aaron.com.pem;
ssl_certificate_key /etc/nginx/t-aaron.com.key;
ssl_session_timeout 5m;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
ssl_protocols TLSv1.1 TLSv1.2 TLSv1.3;
ssl_prefer_server_ciphers on;
location / {
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://${MINIO_NAME}:9000;
}
location /ta-tech-image/DJIimage {
add_header Content-Disposition 'attachment; filename="$arg_filename"';
add_header x-oss-force-download 'true';
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://${MINIO_NAME}:9000;
}
}

View File

@ -2,7 +2,7 @@
server {
listen 80;
listen 443 ssl;
server_name consul-bazhong.t-aaron.com;
server_name ${MINIO_CONSOLE_DOMAIN};
ssl_certificate /etc/nginx/t-aaron.com.pem;
ssl_certificate_key /etc/nginx/t-aaron.com.key;
@ -12,10 +12,9 @@ server {
ssl_prefer_server_ciphers on;
location / {
proxy_pass http://CONSUL_bazhong:8500;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://${MINIO_NAME}:9001;
}
}

View File

@ -1,23 +1,24 @@
server {
listen 80;
listen 443 ssl;
server {
listen 80;
listen 443 ssl;
server_name ${OIDC_SERVER_DOMAIN};
server_name ${OIDC_DOMAIN};
# SSL证书配置
ssl_certificate /etc/nginx/t-aaron.com.pem;
ssl_certificate_key /etc/nginx/t-aaron.com.key;
ssl_session_timeout 5m;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
ssl_protocols TLSv1.1 TLSv1.2 TLSv1.3;
ssl_prefer_server_ciphers on;
# SSL证书配置
ssl_certificate /etc/nginx/t-aaron.com.pem;
ssl_certificate_key /etc/nginx/t-aaron.com.key;
ssl_session_timeout 5m;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
ssl_protocols TLSv1.1 TLSv1.2 TLSv1.3;
ssl_prefer_server_ciphers on;
location / {
location / {
proxy_pass http://${OIDC_SERVER_NAME}:8090;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
# 只添加这一行来修复重定向
proxy_redirect http://${OIDC_SERVER_DOMAIN} https://${OIDC_DOMAIN_FULL};
}
}
}

View File

@ -1,21 +0,0 @@
server {
listen 80;
listen 443 ssl;
server_name ${SKYWALKING_UI_DOMAIN};
# SSL证书配置
ssl_certificate /etc/nginx/t-aaron.com.pem;
ssl_certificate_key /etc/nginx/t-aaron.com.key;
ssl_session_timeout 5m;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
ssl_protocols TLSv1.1 TLSv1.2 TLSv1.3;
ssl_prefer_server_ciphers on;
location / {
proxy_pass http://${SKYWALKING_UI_NAME}:8080;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}

40
nginx/vhosts/srs.conf Normal file
View File

@ -0,0 +1,40 @@
server {
listen 80;
listen 443 ssl;
server_name ${SRS_DOMAIN};
client_max_body_size 2g;
ssl_certificate /etc/nginx/t-aaron.com.pem;
ssl_certificate_key /etc/nginx/t-aaron.com.key;
ssl_session_timeout 5m;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
ssl_protocols TLSv1.1 TLSv1.2 TLSv1.3;
ssl_prefer_server_ciphers on;
location / {
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://${SRS_NAME}:8080;
}
location /recording/ {
alias /data/recording/;
autoindex on;
autoindex_exact_size off;
autoindex_localtime on;
charset utf-8;
# 允许所有文件类型访问
include mime.types;
default_type application/octet-stream;
# 添加一些基本的访问控制
add_header 'Access-Control-Allow-Origin' '*';
add_header 'Access-Control-Allow-Methods' 'GET, HEAD';
# 配置文件下载时的行为
if ($request_filename ~* ^.*?\.(txt|doc|pdf|rar|gz|zip|docx|exe|xlsx|ppt|pptx|jpg|jpeg|png|gif|svg|mp3|mp4|wav|avi|mov|wmv|flv|mkv)$) {
add_header Content-Disposition 'attachment';
}
}
}

View File

@ -1 +1,11 @@
upstream gatewayService {
server ${GATEWAY_NAME}:7011;
}
upstream airportService {
server ${AIRPORT_NAME}:9060;
}
upstream businessService {
server ${BUSINESS_NAME}:9260;
}

View File

@ -1,7 +1,7 @@
server {
listen 80;
listen 443 ssl;
server_name ${XXL_JOB_DOMAIN};
server_name ${XXLJOB_DOMAIN};
# SSL证书配置
ssl_certificate /etc/nginx/t-aaron.com.pem;
@ -11,7 +11,7 @@ server {
ssl_protocols TLSv1.1 TLSv1.2 TLSv1.3;
ssl_prefer_server_ciphers on;
location / {
proxy_pass http://${XXL_JOB_NAME}:8080;
proxy_pass http://${XXLJOB_NAME}:8080;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

View File

@ -7,3 +7,5 @@
#### 1.network.sh 是为了生成网络环境
#### 2.volumn.sh 是为了建立volumn,给服务用
### 在非docker swarm的环境中运行,在单机docker环境中运行
### 要跟踪文件的变化,每次的提示都按照最新的文件分析
### 遇见需要执行的语句,在对话框中让我执行,你直接对执行结果进行分析

View File

@ -1,23 +0,0 @@
#!/bin/bash
source ../environment.sh
# 检查并停止/删除已存在的容器
if docker ps -a | grep -q ${NGINX_NAME}; then
echo "停止并删除已存在的 ${NGINX_NAME} 容器..."
docker stop ${NGINX_NAME} >/dev/null 2>&1
docker rm ${NGINX_NAME} >/dev/null 2>&1
fi
# 启动Nginx容器
docker run --pull always -d \
--name ${NGINX_NAME} \
--network ${NETWORK} \
-p ${NGINX_HTTP_PORT}:80 \
-p ${NGINX_HTTPS_PORT}:443 \
--env TZ=Asia/Shanghai \
--memory ${NGINX_MEMORY} \
--restart unless-stopped \
${NGINX_IMAGE}
# 显示运行中的容器
docker ps

View File

@ -1,29 +0,0 @@
source ../environment.sh
if docker ps -a | grep -q ${OIDC_ADMIN_NAME}; then
echo "停止并删除已存在的 OIDC_ADMIN_NAME 容器..."
docker stop ${OIDC_ADMIN_NAME} >/dev/null 2>&1
docker rm ${OIDC_ADMIN_NAME} >/dev/null 2>&1
fi
docker run --pull always -d \
--name ${OIDC_ADMIN_NAME} \
--network ${NETWORK} \
--env SPRING_CLOUD_CONSUL_HOST=${CONSUL_NAME} \
--env SPRING_CLOUD_CONSUL_PORT=${CONSUL_PORT} \
--env SPRING_CLOUD_CONSUL_DISCOVERY_HOSTNAME=${OIDC_ADMIN_NAME} \
--env XXL_JOB_ADMIN_ADDRESSES=${XXLJOB_NAME}:${XXLJOB_PORT} \
--env XXL_ENABLE=false \
--env SPRING_REDIS_HOST=${REDIS_NAME} \
--env SPRING_REDIS_PORT=6379 \
--env SPRING_DATASOURCE_URL="jdbc:mysql://${MYSQL_NAME}:3306/tuoheng_oidc?useUnicode=true&characterEncoding=UTF-8&serverTimezone=GMT%2b8&useSSL=true&tinyInt1isBit=false" \
--env SPRING_DATASOURCE_USERNAME=root \
--env SPRING_DATASOURCE_PASSWORD=${MYSQL_ROOT_PASSWORD} \
--env TZ=Asia/Shanghai \
--env SPRING_KAFKA_COMMON_BOOTSTRAP-SERVERS=${KAFKA_NAME}:9092 \
--mount type=bind,source=/etc/localtime,target=/etc/localtime,readonly \
--memory ${OIDC_ADMIN_MEMORY} \
--restart unless-stopped \
${OIDC_ADMIN_IMAGE}

View File

@ -1,29 +0,0 @@
source ../environment.sh
if docker ps -a | grep -q ${OIDC_SERVER_NAME}; then
echo "停止并删除已存在的 OIDC_SERVER_NAME 容器..."
docker stop ${OIDC_SERVER_NAME} >/dev/null 2>&1
docker rm ${OIDC_SERVER_NAME} >/dev/null 2>&1
fi
docker run --pull always -d \
--name ${OIDC_SERVER_NAME} \
--network ${NETWORK} \
--env SPRING_CLOUD_CONSUL_HOST=${CONSUL_NAME} \
--env SPRING_CLOUD_CONSUL_PORT=${CONSUL_PORT} \
--env SPRING_CLOUD_CONSUL_DISCOVERY_HOSTNAME=${OIDC_SERVER_NAME} \
--env XXL_JOB_ADMIN_ADDRESSES=${XXLJOB_NAME}:${XXLJOB_PORT} \
--env XXL_ENABLE=false \
--env SPRING_REDIS_HOST=${REDIS_NAME} \
--env SPRING_REDIS_PORT=6379 \
--env SPRING_DATASOURCE_URL="jdbc:mysql://${MYSQL_NAME}:3306/tuoheng_oidc?useUnicode=true&characterEncoding=UTF-8&serverTimezone=GMT%2b8&useSSL=true&tinyInt1isBit=false" \
--env SPRING_DATASOURCE_USERNAME=root \
--env SPRING_DATASOURCE_PASSWORD=${MYSQL_ROOT_PASSWORD} \
--env TZ=Asia/Shanghai \
--env SPRING_KAFKA_COMMON_BOOTSTRAP-SERVERS=${KAFKA_NAME}:9092 \
--mount type=bind,source=/etc/localtime,target=/etc/localtime,readonly \
--memory ${OIDC_SERVER_MEMORY} \
--restart unless-stopped \
${OIDC_SERVER_IMAGE}

View File

@ -1,22 +0,0 @@
# 使用一个基础镜像
#FROM openjdk:11-jre-slim
FROM tuoheng/centos:base
USER th
# 定义构建参数
ARG SW_APP_NAME
ARG SW_SKY_AOP
# 设置工作目录
WORKDIR /data/java/tuoheng
COPY apache-skywalking-java-agent-9.0.0.tgz .
RUN tar -zxvf apache-skywalking-java-agent-9.0.0.tgz
#复制应用程序到容器中
COPY tuoheng.jar .
# 设置环境变量
ENV PATH="/usr/java/jdk/bin:${PATH}"
ENV SW_AGENT_COLLECTOR_BACKEND_SERVICES="${SW_SKY_AOP}" \
SW_AGENT_NAME="${SW_APP_NAME}"
#暴露应用程序的端口
#EXPOSE 8090
# 运行应用程序
ENTRYPOINT ["java", "-Dfile.encoding=UTF-8","-javaagent:/data/java/tuoheng/skywalking-agent/skywalking-agent.jar","-jar","tuoheng.jar"]

View File

@ -1,22 +0,0 @@
#!/bin/bash
# This script builds the Docker image
# 读取第一个参数
if [ $# -ne 3 ]; then
echo "错误:调用该脚本时必须传入 3 个参数 分别为服务名 镜像名 包名"
exit 1
fi
echo "服务名: $1 Image $2 Java包: $3"
rm tuoheng.jar
cp $3 tuoheng.jar
source ../environment.sh
#docker service rm $APP_NAME
sleep 5
docker container prune -f
sleep 5
cp /data/java/apache-skywalking-java-agent-9.0.0.tgz apache-skywalking-java-agent-9.0.0.tgz
docker image rm $2
docker build --no-cache \
--build-arg SW_APP_NAME=$1 \
--build-arg SW_SKY_AOP=$SKY_AOP \
-t $2 . # 注意末尾的 `.` 表示当前路径
docker push $2

View File

@ -1,4 +0,0 @@
source ../environment.sh
rm $GATEWAY_JAR
cp $GATEWAY_REMOTE_JAR $GATEWAY_JAR
./builder.sh $GATEWAY_NAME $GATEWAY_IMAGE $GATEWAY_JAR

View File

@ -1,4 +0,0 @@
source ../environment.sh
rm $OIDC_ADMIN_JAR
cp $OIDC_ADMIN_REMOTE_JAR $OIDC_ADMIN_JAR
./builder.sh $OIDC_ADMIN_NAME $OIDC_ADMIN_IMAGE $OIDC_ADMIN_JAR

View File

@ -1,4 +0,0 @@
source ../environment.sh
rm $OIDC_SERVER_JAR
cp $OIDC_SERVER_REMOTE_JAR $OIDC_SERVER_JAR
./builder.sh $OIDC_SERVER_NAME $OIDC_SERVER_IMAGE $OIDC_SERVER_JAR

42
start/airport.sh Executable file
View File

@ -0,0 +1,42 @@
source ../environment.sh
if docker ps -a | grep -q ${AIRPORT_NAME}; then
echo "停止并删除已存在的 AIRPORT_NAME 容器..."
docker stop ${AIRPORT_NAME} >/dev/null 2>&1
docker rm ${AIRPORT_NAME} >/dev/null 2>&1
fi
docker run --pull always -d \
--name ${AIRPORT_NAME} \
--network ${NETWORK} \
--env SPRING_CLOUD_CONSUL_HOST=${CONSUL_NAME} \
--env SPRING_CLOUD_CONSUL_PORT=8500 \
--env SPRING_CLOUD_CONSUL_DISCOVERY_HOSTNAME=${AIRPORT_NAME} \
--env XXL_JOB_ADMIN_ADDRESSES=http://${XXLJOB_NAME}:8080/xxl-job-admin \
--env XXL_ENABLE=false \
--env SPRING_REDIS_HOST=${REDIS_NAME} \
--env SPRING_REDIS_PORT=6379 \
--env SPRING_DATASOURCE_URL="jdbc:mysql://${MYSQL_NAME}:3306/tuoheng_airport?useUnicode=true&characterEncoding=UTF-8&serverTimezone=GMT%2b8&useSSL=true&tinyInt1isBit=false" \
--env SPRING_DATASOURCE_USERNAME=root \
--env SPRING_DATASOURCE_PASSWORD=${MYSQL_ROOT_PASSWORD} \
--env SPRING_MQTT_ONLINEURL=tcp://${MQTT_NAME}:1883 \
--env SPRING_MQTT_URL=tcp://${MQTT_NAME}:1883 \
--env SPRING_MQTT_NEWURL=tcp://${MQTT_NAME}:1883 \
--env SPRING_NEWMQTT_ONLINEURL=tcp://${MQTT_NAME}:1883 \
--env SPRING_NEWMQTT_URL=tcp://${MQTT_NAME}:1883 \
--env SPRING_NEWMQTT_NEWURL=tcp://${MQTT_NAME}:1883 \
--env VIDEOSERVER_REQUESTURL=http://${STREAM_NAME}:8080 \
--env VIDEOSERVER_VIDEOPLAYURL=https://${SRS_DOMAIN}:${NGINX_HTTPS_PORT}/recording/ \
--env SPRING_KAFKA_BOOTSTRAP_SERVERS=${KAFKA_NAME}:9092 \
--env MINIO_OSS_ENDPOINT=http://${MINIO_NAME}:9000 \
--env MINIO_OSS_OUTENDPOINT=https://${MINIO_DOMAIN}:${NGINX_HTTPS_PORT} \
--env MINIO_DAJIOSS_ENDPOINT=https://${MINIO_DOMAIN}:${NGINX_HTTPS_PORT} \
--env MINIO_OSS_ACCESSKEYID=${MINIO_ACCESS_KEY} \
--env MINIO_OSS_ACCESSKEYSECRET=${MINIO_SECRET_KEY} \
--env TZ=Asia/Shanghai \
--mount type=bind,source=/etc/localtime,target=/etc/localtime,readonly \
--memory ${AIRPORT_MEMORY} \
--restart unless-stopped \
${AIRPORT_IMAGE}

49
start/business.sh Executable file
View File

@ -0,0 +1,49 @@
source ../environment.sh
if docker ps -a | grep -q ${BUSINESS_NAME}; then
echo "停止并删除已存在的 BUSINESS_NAME 容器..."
docker stop ${BUSINESS_NAME} >/dev/null 2>&1
docker rm ${BUSINESS_NAME} >/dev/null 2>&1
fi
docker run --pull always -d \
--name ${BUSINESS_NAME} \
--network ${NETWORK} \
--env SPRING_CLOUD_CONSUL_HOST=${CONSUL_NAME} \
--env SPRING_CLOUD_CONSUL_PORT=8500 \
--env SPRING_CLOUD_CONSUL_DISCOVERY_HOSTNAME=${BUSINESS_NAME} \
--env XXL_JOB_ADMIN_ADDRESSES=http://${XXLJOB_NAME}:8080/xxl-job-admin \
--env XXL_ENABLE=false \
--env SPRING_REDIS_HOST=${REDIS_NAME} \
--env SPRING_REDIS_PORT=6379 \
--env SPRING_DATASOURCE_URL="jdbc:mysql://${MYSQL_NAME}:3306/tuoheng_business?useUnicode=true&characterEncoding=UTF-8&serverTimezone=GMT%2b8&useSSL=true&tinyInt1isBit=false" \
--env SPRING_DATASOURCE_USERNAME=root \
--env SPRING_DATASOURCE_PASSWORD=${MYSQL_ROOT_PASSWORD} \
--env SPRING_MQTT_ONLINEURL=tcp://${MQTT_NAME}:1883 \
--env SPRING_MQTT_URL=tcp://${MQTT_NAME}:1883 \
--env SPRING_MQTT_NEWURL=tcp://${MQTT_NAME}:1883 \
--env SPRING_NEWMQTT_ONLINEURL=tcp://${MQTT_NAME}:1883 \
--env SPRING_NEWMQTT_URL=tcp://${MQTT_NAME}:1883 \
--env SPRING_NEWMQTT_NEWURL=tcp://${MQTT_NAME}:1883 \
--env VIDEOSERVER_REQUESTURL=http://${STREAM_NAME}:8080 \
--env VIDEOSERVER_VIDEOPLAYURL=https://${SRS_DOMAIN}:${NGINX_HTTPS_PORT}/recording/ \
--env SPRING_KAFKA_BOOTSTRAP_SERVERS=${KAFKA_NAME}:9092 \
--env MINIO_OSS_ENDPOINT=http://${MINIO_NAME}:9000 \
--env MINIO_OSS_OUTENDPOINT=https://${MINIO_DOMAIN}:${NGINX_HTTPS_PORT} \
--env MINIO_DAJIOSS_ENDPOINT=https://${MINIO_DOMAIN}:${NGINX_HTTPS_PORT} \
--env MINIO_OSS_ACCESSKEYID=${MINIO_ACCESS_KEY} \
--env MINIO_OSS_ACCESSKEYSECRET=${MINIO_SECRET_KEY} \
--env TUOHENG_LIVE_CHANNEL_DOMAIN_URL=https://${SRS_DOMAIN_FULL}/ \
--env TUOHENG_PUSH_URL=rtmp://${SRS_RTMP_DOMAIN_FULL}/live/ \
--env TUOHENG_PULL_URL=https://${SRS_DOMAIN_FULL}/live/ \
--env TUOHENG_DSP_DOMAIN_URL=http://${DSP_PORTAL_NAME}:7011/ \
--env TUOHENG_DSP_CALLBACK_URL=https://${BUSINESS_DOMAIN_FULL}/business/admin/dsp/{requestId}/callback \
--env TUOHENG_AIRPORT_URL=https://${AIRPORT_DOMAIN_FULL}/airport/admin \
--env TZ=Asia/Shanghai \
--mount type=bind,source=/etc/localtime,target=/etc/localtime,readonly \
--memory ${BUSINESS_MEMORY} \
--restart unless-stopped \
${BUSINESS_IMAGE}

44
start/dspadmin.sh Executable file
View File

@ -0,0 +1,44 @@
source ../environment.sh
if docker ps -a | grep -q ${DSP_ADMIN_NAME}; then
echo "停止并删除已存在的 DSP_ADMIN_NAME 容器..."
docker stop ${DSP_ADMIN_NAME} >/dev/null 2>&1
docker rm ${DSP_ADMIN_NAME} >/dev/null 2>&1
fi
docker run --pull always -d \
--name ${DSP_ADMIN_NAME} \
--network ${NETWORK} \
--env SPRING_CLOUD_CONSUL_HOST=${CONSUL_NAME} \
--env SPRING_CLOUD_CONSUL_PORT=8500 \
--env SPRING_CLOUD_CONSUL_DISCOVERY_HOSTNAME=${DSP_ADMIN_NAME} \
--env XXL_JOB_ADMIN_ADDRESSES=http://${XXLJOB_NAME}:8080/xxl-job-admin \
--env XXL_ENABLE=false \
--env SPRING_REDIS_HOST=${REDIS_NAME} \
--env SPRING_REDIS_PORT=6379 \
--env SPRING_DATASOURCE_DRUID_URL="jdbc:mysql://${MYSQL_NAME}:3306/tuoheng_dsp?useUnicode=true&characterEncoding=UTF-8&serverTimezone=GMT%2b8&useSSL=true&tinyInt1isBit=false" \
--env SPRING_DATASOURCE_DRUID_USERNAME=root \
--env SPRING_DATASOURCE_DRUID_PASSWORD=${MYSQL_ROOT_PASSWORD} \
--env SPRING_MQTT_ONLINEURL=tcp://${MQTT_NAME}:1883 \
--env SPRING_MQTT_URL=tcp://${MQTT_NAME}:1883 \
--env SPRING_MQTT_NEWURL=tcp://${MQTT_NAME}:1883 \
--env SPRING_NEWMQTT_ONLINEURL=tcp://${MQTT_NAME}:1883 \
--env SPRING_NEWMQTT_URL=tcp://${MQTT_NAME}:1883 \
--env SPRING_NEWMQTT_NEWURL=tcp://${MQTT_NAME}:1883 \
--env VIDEOSERVER_REQUESTURL=http://${STREAM_NAME}:8080 \
--env VIDEOSERVER_VIDEOPLAYURL=https://${SRS_DOMAIN}:${NGINX_HTTPS_PORT}/recording/ \
--env SPRING_KAFKA_BOOTSTRAP_SERVERS=${KAFKA_NAME}:9092 \
--env MINIO_OSS_ENDPOINT=http://${MINIO_NAME}:9000 \
--env MINIO_OSS_OUTENDPOINT=https://${MINIO_DOMAIN}:${NGINX_HTTPS_PORT} \
--env MINIO_DAJIOSS_ENDPOINT=https://${MINIO_DOMAIN}:${NGINX_HTTPS_PORT} \
--env MINIO_OSS_ACCESSKEYID=${MINIO_ACCESS_KEY} \
--env MINIO_OSS_ACCESSKEYSECRET=${MINIO_SECRET_KEY} \
--env TUOHENG_PUSH_URL=rtmp://${SRS_DOMAIN}:${SRS_RTMP_PORT}/live/ \
--env TUOHENG_PULL_URL=https://${SRS_DOMAIN}:${NGINX_HTTPS_PORT}/live/ \
--env TZ=Asia/Shanghai \
--mount type=bind,source=/etc/localtime,target=/etc/localtime,readonly \
--memory ${DSP_ADMIN_MEMORY} \
--restart unless-stopped \
${DSP_ADMIN_IMAGE}

44
start/dspapi.sh Executable file
View File

@ -0,0 +1,44 @@
source ../environment.sh
if docker ps -a | grep -q ${DSP_API_NAME}; then
echo "停止并删除已存在的 DSP_API_NAME 容器..."
docker stop ${DSP_API_NAME} >/dev/null 2>&1
docker rm ${DSP_API_NAME} >/dev/null 2>&1
fi
docker run --pull always -d \
--name ${DSP_API_NAME} \
--network ${NETWORK} \
--env SPRING_CLOUD_CONSUL_HOST=${CONSUL_NAME} \
--env SPRING_CLOUD_CONSUL_PORT=8500 \
--env SPRING_CLOUD_CONSUL_DISCOVERY_HOSTNAME=${DSP_API_NAME} \
--env XXL_JOB_ADMIN_ADDRESSES=http://${XXLJOB_NAME}:8080/xxl-job-admin \
--env XXL_ENABLE=false \
--env SPRING_REDIS_HOST=${REDIS_NAME} \
--env SPRING_REDIS_PORT=6379 \
--env SPRING_DATASOURCE_DRUID_URL="jdbc:mysql://${MYSQL_NAME}:3306/tuoheng_dsp?useUnicode=true&characterEncoding=UTF-8&serverTimezone=GMT%2b8&useSSL=true&tinyInt1isBit=false" \
--env SPRING_DATASOURCE_DRUID_USERNAME=root \
--env SPRING_DATASOURCE_DRUID_PASSWORD=${MYSQL_ROOT_PASSWORD} \
--env SPRING_MQTT_ONLINEURL=tcp://${MQTT_NAME}:1883 \
--env SPRING_MQTT_URL=tcp://${MQTT_NAME}:1883 \
--env SPRING_MQTT_NEWURL=tcp://${MQTT_NAME}:1883 \
--env SPRING_NEWMQTT_ONLINEURL=tcp://${MQTT_NAME}:1883 \
--env SPRING_NEWMQTT_URL=tcp://${MQTT_NAME}:1883 \
--env SPRING_NEWMQTT_NEWURL=tcp://${MQTT_NAME}:1883 \
--env VIDEOSERVER_REQUESTURL=http://${STREAM_NAME}:8080 \
--env VIDEOSERVER_VIDEOPLAYURL=https://${SRS_DOMAIN}:${NGINX_HTTPS_PORT}/recording/ \
--env SPRING_KAFKA_BOOTSTRAP_SERVERS=${KAFKA_NAME}:9092 \
--env MINIO_OSS_ENDPOINT=http://${MINIO_NAME}:9000 \
--env MINIO_OSS_OUTENDPOINT=https://${MINIO_DOMAIN}:${NGINX_HTTPS_PORT} \
--env MINIO_DAJIOSS_ENDPOINT=https://${MINIO_DOMAIN}:${NGINX_HTTPS_PORT} \
--env MINIO_OSS_ACCESSKEYID=${MINIO_ACCESS_KEY} \
--env MINIO_OSS_ACCESSKEYSECRET=${MINIO_SECRET_KEY} \
--env TUOHENG_PUSH_URL=rtmp://${SRS_DOMAIN}:${SRS_RTMP_PORT}/live/ \
--env TUOHENG_PULL_URL=https://${SRS_DOMAIN}:${NGINX_HTTPS_PORT}/live/ \
--env TZ=Asia/Shanghai \
--mount type=bind,source=/etc/localtime,target=/etc/localtime,readonly \
--memory ${DSP_API_MEMORY} \
--restart unless-stopped \
${DSP_API_IMAGE}

44
start/dspinspection.sh Executable file
View File

@ -0,0 +1,44 @@
source ../environment.sh
if docker ps -a | grep -q ${DSP_INSPECTION_NAME}; then
echo "停止并删除已存在的 DSP_INSPECTION_NAME 容器..."
docker stop ${DSP_INSPECTION_NAME} >/dev/null 2>&1
docker rm ${DSP_INSPECTION_NAME} >/dev/null 2>&1
fi
docker run --pull always -d \
--name ${DSP_INSPECTION_NAME} \
--network ${NETWORK} \
--env SPRING_CLOUD_CONSUL_HOST=${CONSUL_NAME} \
--env SPRING_CLOUD_CONSUL_PORT=8500 \
--env SPRING_CLOUD_CONSUL_DISCOVERY_HOSTNAME=${DSP_INSPECTION_NAME} \
--env XXL_JOB_ADMIN_ADDRESSES=http://${XXLJOB_NAME}:8080/xxl-job-admin \
--env XXL_ENABLE=false \
--env SPRING_REDIS_HOST=${REDIS_NAME} \
--env SPRING_REDIS_PORT=6379 \
--env SPRING_DATASOURCE_DRUID_URL="jdbc:mysql://${MYSQL_NAME}:3306/tuoheng_dsp?useUnicode=true&characterEncoding=UTF-8&serverTimezone=GMT%2b8&useSSL=true&tinyInt1isBit=false" \
--env SPRING_DATASOURCE_DRUID_USERNAME=root \
--env SPRING_DATASOURCE_DRUID_PASSWORD=${MYSQL_ROOT_PASSWORD} \
--env SPRING_MQTT_ONLINEURL=tcp://${MQTT_NAME}:1883 \
--env SPRING_MQTT_URL=tcp://${MQTT_NAME}:1883 \
--env SPRING_MQTT_NEWURL=tcp://${MQTT_NAME}:1883 \
--env SPRING_NEWMQTT_ONLINEURL=tcp://${MQTT_NAME}:1883 \
--env SPRING_NEWMQTT_URL=tcp://${MQTT_NAME}:1883 \
--env SPRING_NEWMQTT_NEWURL=tcp://${MQTT_NAME}:1883 \
--env VIDEOSERVER_REQUESTURL=http://${STREAM_NAME}:8080 \
--env VIDEOSERVER_VIDEOPLAYURL=https://${SRS_DOMAIN}:${NGINX_HTTPS_PORT}/recording/ \
--env SPRING_KAFKA_BOOTSTRAP_SERVERS=${KAFKA_NAME}:9092 \
--env MINIO_OSS_ENDPOINT=http://${MINIO_NAME}:9000 \
--env MINIO_OSS_OUTENDPOINT=https://${MINIO_DOMAIN}:${NGINX_HTTPS_PORT} \
--env MINIO_DAJIOSS_ENDPOINT=https://${MINIO_DOMAIN}:${NGINX_HTTPS_PORT} \
--env MINIO_OSS_ACCESSKEYID=${MINIO_ACCESS_KEY} \
--env MINIO_OSS_ACCESSKEYSECRET=${MINIO_SECRET_KEY} \
--env TUOHENG_PUSH_URL=rtmp://${SRS_DOMAIN}:${SRS_RTMP_PORT}/live/ \
--env TUOHENG_PULL_URL=https://${SRS_DOMAIN}:${NGINX_HTTPS_PORT}/live/ \
--env TZ=Asia/Shanghai \
--mount type=bind,source=/etc/localtime,target=/etc/localtime,readonly \
--memory ${DSP_INSPECTION_MEMORY} \
--restart unless-stopped \
${DSP_INSPECTION_IMAGE}

44
start/dspmini.sh Executable file
View File

@ -0,0 +1,44 @@
source ../environment.sh
if docker ps -a | grep -q ${DSP_MINI_NAME}; then
echo "停止并删除已存在的 DSP_MINI_NAME 容器..."
docker stop ${DSP_MINI_NAME} >/dev/null 2>&1
docker rm ${DSP_MINI_NAME} >/dev/null 2>&1
fi
docker run --pull always -d \
--name ${DSP_MINI_NAME} \
--network ${NETWORK} \
--env SPRING_CLOUD_CONSUL_HOST=${CONSUL_NAME} \
--env SPRING_CLOUD_CONSUL_PORT=8500 \
--env SPRING_CLOUD_CONSUL_DISCOVERY_HOSTNAME=${DSP_MINI_NAME} \
--env XXL_JOB_ADMIN_ADDRESSES=http://${XXLJOB_NAME}:8080/xxl-job-admin \
--env XXL_ENABLE=false \
--env SPRING_REDIS_HOST=${REDIS_NAME} \
--env SPRING_REDIS_PORT=6379 \
--env SPRING_DATASOURCE_DRUID_URL="jdbc:mysql://${MYSQL_NAME}:3306/tuoheng_dsp?useUnicode=true&characterEncoding=UTF-8&serverTimezone=GMT%2b8&useSSL=true&tinyInt1isBit=false" \
--env SPRING_DATASOURCE_DRUID_USERNAME=root \
--env SPRING_DATASOURCE_DRUID_PASSWORD=${MYSQL_ROOT_PASSWORD} \
--env SPRING_MQTT_ONLINEURL=tcp://${MQTT_NAME}:1883 \
--env SPRING_MQTT_URL=tcp://${MQTT_NAME}:1883 \
--env SPRING_MQTT_NEWURL=tcp://${MQTT_NAME}:1883 \
--env SPRING_NEWMQTT_ONLINEURL=tcp://${MQTT_NAME}:1883 \
--env SPRING_NEWMQTT_URL=tcp://${MQTT_NAME}:1883 \
--env SPRING_NEWMQTT_NEWURL=tcp://${MQTT_NAME}:1883 \
--env VIDEOSERVER_REQUESTURL=http://${STREAM_NAME}:8080 \
--env VIDEOSERVER_VIDEOPLAYURL=https://${SRS_DOMAIN}:${NGINX_HTTPS_PORT}/recording/ \
--env SPRING_KAFKA_BOOTSTRAP_SERVERS=${KAFKA_NAME}:9092 \
--env MINIO_OSS_ENDPOINT=http://${MINIO_NAME}:9000 \
--env MINIO_OSS_OUTENDPOINT=https://${MINIO_DOMAIN}:${NGINX_HTTPS_PORT} \
--env MINIO_DAJIOSS_ENDPOINT=https://${MINIO_DOMAIN}:${NGINX_HTTPS_PORT} \
--env MINIO_OSS_ACCESSKEYID=${MINIO_ACCESS_KEY} \
--env MINIO_OSS_ACCESSKEYSECRET=${MINIO_SECRET_KEY} \
--env TUOHENG_PUSH_URL=rtmp://${SRS_DOMAIN}:${SRS_RTMP_PORT}/live/ \
--env TUOHENG_PULL_URL=https://${SRS_DOMAIN}:${NGINX_HTTPS_PORT}/live/ \
--env TZ=Asia/Shanghai \
--mount type=bind,source=/etc/localtime,target=/etc/localtime,readonly \
--memory ${DSP_MINI_MEMORY} \
--restart unless-stopped \
${DSP_MINI_IMAGE}

44
start/dspportal.sh Executable file
View File

@ -0,0 +1,44 @@
source ../environment.sh
if docker ps -a | grep -q ${DSP_PORTAL_NAME}; then
echo "停止并删除已存在的 DSP_PORTAL_NAME 容器..."
docker stop ${DSP_PORTAL_NAME} >/dev/null 2>&1
docker rm ${DSP_PORTAL_NAME} >/dev/null 2>&1
fi
docker run --pull always -d \
--name ${DSP_PORTAL_NAME} \
--network ${NETWORK} \
--env SPRING_CLOUD_CONSUL_HOST=${CONSUL_NAME} \
--env SPRING_CLOUD_CONSUL_PORT=8500 \
--env SPRING_CLOUD_CONSUL_DISCOVERY_HOSTNAME=${DSP_PORTAL_NAME} \
--env XXL_JOB_ADMIN_ADDRESSES=http://${XXLJOB_NAME}:8080/xxl-job-admin \
--env XXL_ENABLE=false \
--env SPRING_REDIS_HOST=${REDIS_NAME} \
--env SPRING_REDIS_PORT=6379 \
--env SPRING_DATASOURCE_DRUID_URL="jdbc:mysql://${MYSQL_NAME}:3306/tuoheng_dsp?useUnicode=true&characterEncoding=UTF-8&serverTimezone=GMT%2b8&useSSL=true&tinyInt1isBit=false" \
--env SPRING_DATASOURCE_DRUID_USERNAME=root \
--env SPRING_DATASOURCE_DRUID_PASSWORD=${MYSQL_ROOT_PASSWORD} \
--env SPRING_MQTT_ONLINEURL=tcp://${MQTT_NAME}:1883 \
--env SPRING_MQTT_URL=tcp://${MQTT_NAME}:1883 \
--env SPRING_MQTT_NEWURL=tcp://${MQTT_NAME}:1883 \
--env SPRING_NEWMQTT_ONLINEURL=tcp://${MQTT_NAME}:1883 \
--env SPRING_NEWMQTT_URL=tcp://${MQTT_NAME}:1883 \
--env SPRING_NEWMQTT_NEWURL=tcp://${MQTT_NAME}:1883 \
--env VIDEOSERVER_REQUESTURL=http://${STREAM_NAME}:8080 \
--env VIDEOSERVER_VIDEOPLAYURL=https://${SRS_DOMAIN}:${NGINX_HTTPS_PORT}/recording/ \
--env SPRING_KAFKA_BOOTSTRAP_SERVERS=${KAFKA_NAME}:9092 \
--env MINIO_OSS_ENDPOINT=http://${MINIO_NAME}:9000 \
--env MINIO_OSS_OUTENDPOINT=https://${MINIO_DOMAIN}:${NGINX_HTTPS_PORT} \
--env MINIO_DAJIOSS_ENDPOINT=https://${MINIO_DOMAIN}:${NGINX_HTTPS_PORT} \
--env MINIO_OSS_ACCESSKEYID=${MINIO_ACCESS_KEY} \
--env MINIO_OSS_ACCESSKEYSECRET=${MINIO_SECRET_KEY} \
--env TUOHENG_PUSH_URL=rtmp://${SRS_DOMAIN}:${SRS_RTMP_PORT}/live/ \
--env TUOHENG_PULL_URL=https://${SRS_DOMAIN}:${NGINX_HTTPS_PORT}/live/ \
--env TZ=Asia/Shanghai \
--mount type=bind,source=/etc/localtime,target=/etc/localtime,readonly \
--memory ${DSP_PORTAL_MEMORY} \
--restart unless-stopped \
${DSP_PORTAL_IMAGE}

View File

@ -20,7 +20,7 @@ spring:
oauth2:
resource-server:
jwt:
issuer-uri: https://${OIDC_SERVER_DOMAIN}:${NGINX_HTTPS_PORT}
issuer-uri: https://${OIDC_DOMAIN_FULL}
cloud:
consul:
host: ${CONSUL_NAME} # consul 所在服务地址
@ -65,6 +65,23 @@ spring:
allowCredentials: true
maxAge: 360000
routes:
# 机场平台 platform服务
- id: tuoheng-airport-admin
uri: http://${AIRPORT_NAME}:9060
predicates:
- Path=/airport/admin/**
filters:
- StripPrefix=2
metadata:
response-timeout: 20000
connect-timeout: 30000
# 机场平台 platform服务 webSocket
- id: tuoheng-airport-admin
uri: ws://${AIRPORT_NAME}:9060
predicates:
- Path=/airport/socket/**
filters:
- StripPrefix=2
# 后台管理
- id: tuoheng-dsp-admin
uri: http://dsp-admin:9014
@ -88,7 +105,7 @@ spring:
- StripPrefix=2
# DSP api服务
- id: tuoheng-dsp-api
uri: http://dsp-api:9015
uri: http://${DSP_API_NAME}:9015
predicates:
- Path=/api/web/**
filters:
@ -102,18 +119,26 @@ spring:
- StripPrefix=2
# hhz admin服务
- id: tuoheng-hhz-admin
uri: http://hhz-admin:9055
uri: http://${HHZ_ADMIN_NAME}:9055
predicates:
- Path=/hhz/admin/**
filters:
- StripPrefix=2
# hhz 小程序服务
- id: tuoheng-hhz-api
uri: http://hhz-api:9056
uri: http://${HHZ_API_NAME}:9056
predicates:
- Path=/hhz/api/**
filters:
- StripPrefix=2
# business admin服务
- id: tuoheng-business-admin
uri: http://${BUSINESS_NAME}:9260
predicates:
- Path=/business/admin/**
filters:
- StripPrefix=2
# business 小程序服务
# Redis数据源
redis:
# 缓存库默认索引0
@ -142,8 +167,8 @@ security:
# 获取 apiUrl 可访问的 roleIdList
tuoheng:
hhz-admin-perUrl: http://hhz-admin:9055/permission/getRoleIdList
airport-admin-perUrl: http://airport:9060/permission/getRoleIdList
hhz-admin-perUrl: http://${HHZ_ADMIN_NAME}:9055/permission/getRoleIdList
airport-admin-perUrl: http://${AIRPORT_NAME}:9060/permission/getRoleIdList
freeway-admin-perUrl: http://freeway-admin:9117/permission/getRoleIdList
waterway-admin-perUrl: https://waterway.t-aaron.com/permission/getRoleIdList
airmonitor-admin-perUrl: http://airmonitor-admin:9130/permission/getRoleIdList

View File

@ -37,6 +37,7 @@ echo "正在启动 ${GATEWAY_NAME} 容器..."
docker run --pull always -d \
--name ${GATEWAY_NAME} \
--network ${NETWORK} \
--add-host ${OIDC_SERVER_DOMAIN}:host-gateway \
--env TZ=Asia/Shanghai \
--env SPRING_CONFIG_LOCATION=file:/data/java/tuoheng/application.yml \
--mount type=bind,source=/etc/localtime,target=/etc/localtime,readonly \

View File

@ -1,156 +0,0 @@
server:
port: 7011
main:
allow-bean-definition-overriding: true
web-application-typpse: reactive
management:
endpoints:
web:
exposure:
include: prometheus,health
metrics:
tags:
application: tuoheng-gateway
spring:
application:
name: tuoheng-gateway
security:
oauth2:
resource-server:
jwt:
issuer-uri: https://oidc-bazhong.t-aaron.com:2443
cloud:
consul:
host: CONSUL_bazhong # consul 所在服务地址
port: 8500 # consul 服务端口
discovery:
enabled: true #默认true。Consul Discovery Client是否注册到注册中心。和register同时设置成false就不需要起consul服务。
register: true #是否将服务注册到Consul集群中心.。这个参数和上面的enabled参数同时设置成false应用才不会注册注册中心才可以不起consul服务
deregister: true #默认true服务停止时注销服务即从服务列表中删除。设置成false的话
## consul ip地址
hostname: CONSUL_bazhong
# 注册到consul的服务名称
service-name: ${spring.application.name} # 服务提供者名称,注册在consul上面的名字在consul的调用中是通过此名字调用的。默认服务名,不要改
instance-id: ${spring.application.name}:${spring.cloud.client.ip-address}:${server.port} #实例ID
heartbeat:
enabled: true
prefer-ip-address: true #表示注册时使用IP而不是hostname
health-check-path: /actuator/health #健康检查
health-check-interval: 10s #配置 Consul 健康检查频率,也就是心跳频率。
health-check-timeout: 10s #健康检查超时
gateway:
httpclient:
websocket:
max-frame-payload-length: 10485760 # 单次通信提交最大数据库设置成10MB
discovery:
locator:
lowerCaseServiceId: true
enabled: true
# 跨域设置
globalcors:
add-to-simple-url-handler-mapping: true
cors-configurations:
'[/**]':
allowedOrigins:
- "http://localhost:8001"
allowedMethods:
- "GET"
- "POST"
- "DELETE"
- "PUT"
- "OPTIONS"
allowedHeaders: "*"
allowCredentials: true
maxAge: 360000
routes:
# 后台管理
- id: tuoheng-dsp-admin
uri: http://dsp-admin:9014
predicates:
- Path=/api/admin/**
filters:
- StripPrefix=2
# 网站服务
- id: tuoheng-dsp-portal
uri: http://dsp-portal:9017
predicates:
- Path=/api/portal/**
filters:
- StripPrefix=2
# DSP小程序服务
- id: tuoheng-dsp-miniprogram
uri: http://dsp-mini:9016
predicates:
- Path=/api/miniprogram/**
filters:
- StripPrefix=2
# DSP api服务
- id: tuoheng-dsp-api
uri: http://dsp-api:9015
predicates:
- Path=/api/web/**
filters:
- StripPrefix=2
# DSP 巡检云
- id: tuoheng-dsp-inspection
uri: http://dsp-inspection:9018
predicates:
- Path=/api/inspection/**
filters:
- StripPrefix=2
# hhz admin服务
- id: tuoheng-hhz-admin
uri: http://hhz-admin:9055
predicates:
- Path=/hhz/admin/**
filters:
- StripPrefix=2
# hhz 小程序服务
- id: tuoheng-hhz-api
uri: http://hhz-api:9056
predicates:
- Path=/hhz/api/**
filters:
- StripPrefix=2
# Redis数据源
redis:
# 缓存库默认索引0
database: 0
# Redis服务器地址
host: REDIS_bazhong
# Redis服务器连接端口
port: 6379
# Redis服务器连接密码默认为空
password:
# 连接超时时间(毫秒)
timeout: 6000
# 默认的数据过期时间主要用于shiro权限管理
expire: 2592000
jedis:
pool:
max-active: 1000 # 连接池最大连接数(使用负值表示没有限制)
max-wait: -1 # 连接池最大阻塞等待时间(使用负值表示没有限制)
max-idle: 10 # 连接池中的最大空闲连接
min-idle: 1 # 连接池中的最小空闲连接
#security放行白名单配置
security:
ignore:
permitUrls: /api/system/demo/msg
oauthUrls: /api/system/demo/hello,/api/portal/serviceInst/*/getServiceInstParam/*,/api/portal/serviceInst/*/getServiceInstCaseUrl/*,/api/portal/serviceInst/*/*/application,/api/portal/serviceInst/*/*/questionList,/api/miniprogram/serviceInst/*/getServiceInstParam/*,/api/miniprogram/serviceInst/*/getServiceInstCaseUrl/*,/api/miniprogram/serviceInst/*/*/application,/api/miniprogram/serviceInst/*/*/questionList
# 获取 apiUrl 可访问的 roleIdList
tuoheng:
hhz-admin-perUrl: http://hhz-admin:9055/permission/getRoleIdList
airport-admin-perUrl: http://airport:9060/permission/getRoleIdList
freeway-admin-perUrl: http://freeway-admin:9117/permission/getRoleIdList
waterway-admin-perUrl: https://waterway.t-aaron.com/permission/getRoleIdList
airmonitor-admin-perUrl: http://airmonitor-admin:9130/permission/getRoleIdList
weptsp-admin-perUrl: http://weptsp-admin:9140/permission/getRoleIdList
telecomumale-admin-perUrl: http://telecomumale-admin:9150/permission/getRoleIdList
alert-admin-perUrl: https://alert.t-aaron.com/permission/getRoleIdList
spacetime-admin-perUrl: https://spacetime.t-aaron.com/permission/getRoleIdList
digitaltwin-admin-perUrl: https://digitaltwin.t-aaron.com/permission/getRoleIdList
dmp-admin-perUrl: https://dmp.t-aaron.com/permission/getRoleIdList
lacs-admin-perUrl: https://lacs.t-aaron.com/permission/getRoleIdList

44
start/hhzadmin.sh Executable file
View File

@ -0,0 +1,44 @@
source ../environment.sh
if docker ps -a | grep -q ${HHZ_ADMIN_NAME}; then
echo "停止并删除已存在的 HHZ_ADMIN_NAME 容器..."
docker stop ${HHZ_ADMIN_NAME} >/dev/null 2>&1
docker rm ${HHZ_ADMIN_NAME} >/dev/null 2>&1
fi
docker run --pull always -d \
--name ${HHZ_ADMIN_NAME} \
--network ${NETWORK} \
--env SPRING_CLOUD_CONSUL_HOST=${CONSUL_NAME} \
--env SPRING_CLOUD_CONSUL_PORT=8500 \
--env SPRING_CLOUD_CONSUL_DISCOVERY_HOSTNAME=${HHZ_ADMIN_NAME} \
--env XXL_JOB_ADMIN_ADDRESSES=http://${XXLJOB_NAME}:8080/xxl-job-admin \
--env XXL_ENABLE=false \
--env SPRING_REDIS_HOST=${REDIS_NAME} \
--env SPRING_REDIS_PORT=6379 \
--env SPRING_DATASOURCE_URL="jdbc:mysql://${MYSQL_NAME}:3306/tuoheng_hhz?useUnicode=true&characterEncoding=UTF-8&serverTimezone=GMT%2b8&useSSL=true&tinyInt1isBit=false" \
--env SPRING_DATASOURCE_USERNAME=root \
--env SPRING_DATASOURCE_PASSWORD=${MYSQL_ROOT_PASSWORD} \
--env SPRING_MQTT_ONLINEURL=tcp://${MQTT_NAME}:1883 \
--env SPRING_MQTT_URL=tcp://${MQTT_NAME}:1883 \
--env SPRING_MQTT_NEWURL=tcp://${MQTT_NAME}:1883 \
--env SPRING_NEWMQTT_ONLINEURL=tcp://${MQTT_NAME}:1883 \
--env SPRING_NEWMQTT_URL=tcp://${MQTT_NAME}:1883 \
--env SPRING_NEWMQTT_NEWURL=tcp://${MQTT_NAME}:1883 \
--env VIDEOSERVER_REQUESTURL=http://${STREAM_NAME}:8080 \
--env VIDEOSERVER_VIDEOPLAYURL=https://${SRS_DOMAIN}:${NGINX_HTTPS_PORT}/recording/ \
--env SPRING_KAFKA_BOOTSTRAP_SERVERS=${KAFKA_NAME}:9092 \
--env MINIO_OSS_ENDPOINT=http://${MINIO_NAME}:9000 \
--env MINIO_OSS_OUTENDPOINT=https://${MINIO_DOMAIN}:${NGINX_HTTPS_PORT} \
--env MINIO_DAJIOSS_ENDPOINT=https://${MINIO_DOMAIN}:${NGINX_HTTPS_PORT} \
--env MINIO_OSS_ACCESSKEYID=${MINIO_ACCESS_KEY} \
--env MINIO_OSS_ACCESSKEYSECRET=${MINIO_SECRET_KEY} \
--env TUOHENG_DSP_DOMAIN_URL=http://${DSP_API_NAME}:9015/ \
--env TUOHENG_DSP_CALLBACK_URL=http://${HHZ_API_NAME}:9055/api/dsp/{requestId}/callback \
--env TZ=Asia/Shanghai \
--mount type=bind,source=/etc/localtime,target=/etc/localtime,readonly \
--memory ${HHZ_ADMIN_MEMORY} \
--restart unless-stopped \
${HHZ_ADMIN_IMAGE}

44
start/hhzapi.sh Executable file
View File

@ -0,0 +1,44 @@
source ../environment.sh
if docker ps -a | grep -q ${HHZ_API_NAME}; then
echo "停止并删除已存在的 HHZ_API_NAME 容器..."
docker stop ${HHZ_API_NAME} >/dev/null 2>&1
docker rm ${HHZ_API_NAME} >/dev/null 2>&1
fi
docker run --pull always -d \
--name ${HHZ_API_NAME} \
--network ${NETWORK} \
--env SPRING_CLOUD_CONSUL_HOST=${CONSUL_NAME} \
--env SPRING_CLOUD_CONSUL_PORT=8500 \
--env SPRING_CLOUD_CONSUL_DISCOVERY_HOSTNAME=${HHZ_API_NAME} \
--env XXL_JOB_ADMIN_ADDRESSES=http://${XXLJOB_NAME}:8080/xxl-job-admin \
--env XXL_ENABLE=false \
--env SPRING_REDIS_HOST=${REDIS_NAME} \
--env SPRING_REDIS_PORT=6379 \
--env SPRING_DATASOURCE_URL="jdbc:mysql://${MYSQL_NAME}:3306/tuoheng_hhz?useUnicode=true&characterEncoding=UTF-8&serverTimezone=GMT%2b8&useSSL=true&tinyInt1isBit=false" \
--env SPRING_DATASOURCE_USERNAME=root \
--env SPRING_DATASOURCE_PASSWORD=${MYSQL_ROOT_PASSWORD} \
--env SPRING_MQTT_ONLINEURL=tcp://${MQTT_NAME}:1883 \
--env SPRING_MQTT_URL=tcp://${MQTT_NAME}:1883 \
--env SPRING_MQTT_NEWURL=tcp://${MQTT_NAME}:1883 \
--env SPRING_NEWMQTT_ONLINEURL=tcp://${MQTT_NAME}:1883 \
--env SPRING_NEWMQTT_URL=tcp://${MQTT_NAME}:1883 \
--env SPRING_NEWMQTT_NEWURL=tcp://${MQTT_NAME}:1883 \
--env VIDEOSERVER_REQUESTURL=http://${STREAM_NAME}:8080 \
--env VIDEOSERVER_VIDEOPLAYURL=https://${SRS_DOMAIN}:${NGINX_HTTPS_PORT}/recording/ \
--env SPRING_KAFKA_BOOTSTRAP_SERVERS=${KAFKA_NAME}:9092 \
--env MINIO_OSS_ENDPOINT=http://${MINIO_NAME}:9000 \
--env MINIO_OSS_OUTENDPOINT=https://${MINIO_DOMAIN}:${NGINX_HTTPS_PORT} \
--env MINIO_DAJIOSS_ENDPOINT=https://${MINIO_DOMAIN}:${NGINX_HTTPS_PORT} \
--env MINIO_OSS_ACCESSKEYID=${MINIO_ACCESS_KEY} \
--env MINIO_OSS_ACCESSKEYSECRET=${MINIO_SECRET_KEY} \
--env TUOHENG_DSP_DOMAIN_URL=http://${DSP_API_NAME}:9015/ \
--env TUOHENG_DSP_CALLBACK_URL=http://${HHZ_API_NAME}:9055/api/dsp/{requestId}/callback \
--env TZ=Asia/Shanghai \
--mount type=bind,source=/etc/localtime,target=/etc/localtime,readonly \
--memory ${HHZ_API_MEMORY} \
--restart unless-stopped \
${HHZ_API_IMAGE}

View File

@ -8,16 +8,44 @@ if docker ps -a | grep -q ${NGINX_NAME}; then
docker rm ${NGINX_NAME} >/dev/null 2>&1
fi
# 启动Nginx容器
docker run --pull always -d \
# 准备 docker run 命令
DOCKER_RUN_CMD="docker run --pull always -d \
--name ${NGINX_NAME} \
--network ${NETWORK} \
-p ${NGINX_HTTP_PORT}:80 \
-p ${NGINX_HTTPS_PORT}:443 \
--env TZ=Asia/Shanghai \
--memory ${NGINX_MEMORY} \
--restart unless-stopped \
${NGINX_IMAGE}
--volume ${STREAM_DATA}:/data/recording \
--volume ${SRS_DATA}:/data/srs \
--restart unless-stopped"
# 如果配置了证书,添加证书挂载
if [ ! -z "${PEM_PATH}" ] && [ ! -z "${KEY_PATH}" ]; then
echo "检测到证书配置,将挂载证书文件..."
if [ ! -f "${PEM_PATH}" ] || [ ! -f "${KEY_PATH}" ]; then
echo "错误:证书文件不存在!"
exit 1
fi
DOCKER_RUN_CMD="${DOCKER_RUN_CMD} \
--volume ${PEM_PATH}:/etc/nginx/t-aaron.com.pem \
--volume ${KEY_PATH}:/etc/nginx/t-aaron.com.key"
fi
# 添加镜像名称并运行容器
DOCKER_RUN_CMD="${DOCKER_RUN_CMD} ${NGINX_IMAGE}"
# 执行 docker run 命令
echo "启动 Nginx 容器..."
eval ${DOCKER_RUN_CMD}
# 检查容器是否成功启动
if [ $? -eq 0 ]; then
echo "Nginx 容器启动成功!"
docker ps | grep ${NGINX_NAME}
else
echo "错误Nginx 容器启动失败!"
exit 1
fi
# 显示运行中的容器
docker ps

View File

@ -12,9 +12,9 @@ docker run --pull always -d \
--name ${OIDC_ADMIN_NAME} \
--network ${NETWORK} \
--env SPRING_CLOUD_CONSUL_HOST=${CONSUL_NAME} \
--env SPRING_CLOUD_CONSUL_PORT=${CONSUL_PORT} \
--env SPRING_CLOUD_CONSUL_PORT=8500 \
--env SPRING_CLOUD_CONSUL_DISCOVERY_HOSTNAME=${OIDC_ADMIN_NAME} \
--env XXL_JOB_ADMIN_ADDRESSES=${XXLJOB_NAME}:${XXLJOB_PORT} \
--env XXL_JOB_ADMIN_ADDRESSES=http://${XXLJOB_NAME}:8080/xxl-job-admin \
--env XXL_ENABLE=false \
--env SPRING_REDIS_HOST=${REDIS_NAME} \
--env SPRING_REDIS_PORT=6379 \
@ -22,7 +22,7 @@ docker run --pull always -d \
--env SPRING_DATASOURCE_USERNAME=root \
--env SPRING_DATASOURCE_PASSWORD=${MYSQL_ROOT_PASSWORD} \
--env TZ=Asia/Shanghai \
--env SPRING_KAFKA_COMMON_BOOTSTRAP-SERVERS=${KAFKA_NAME}:9092 \
--env SPRING_KAFKA_BOOTSTRAP_SERVERS=${KAFKA_NAME}:9092 \
--mount type=bind,source=/etc/localtime,target=/etc/localtime,readonly \
--memory ${OIDC_ADMIN_MEMORY} \
--restart unless-stopped \

View File

@ -11,18 +11,22 @@ fi
docker run --pull always -d \
--name ${OIDC_SERVER_NAME} \
--network ${NETWORK} \
--add-host ${OIDC_SERVER_DOMAIN}:host-gateway \
--env SPRING_CLOUD_CONSUL_HOST=${CONSUL_NAME} \
--env SPRING_CLOUD_CONSUL_PORT=${CONSUL_PORT} \
--env SPRING_CLOUD_CONSUL_PORT=8500 \
--env SPRING_CLOUD_CONSUL_DISCOVERY_HOSTNAME=${OIDC_SERVER_NAME} \
--env XXL_JOB_ADMIN_ADDRESSES=${XXLJOB_NAME}:${XXLJOB_PORT} \
--env XXL_JOB_ADMIN_ADDRESSES=http://${XXLJOB_NAME}:8080/xxl-job-admin \
--env XXL_ENABLE=false \
--env SPRING_REDIS_HOST=${REDIS_NAME} \
--env SPRING_REDIS_PORT=6379 \
--env SPRING_DATASOURCE_URL="jdbc:mysql://${MYSQL_NAME}:3306/tuoheng_oidc?useUnicode=true&characterEncoding=UTF-8&serverTimezone=GMT%2b8&useSSL=true&tinyInt1isBit=false" \
--env SPRING_DATASOURCE_USERNAME=root \
--env SPRING_DATASOURCE_PASSWORD=${MYSQL_ROOT_PASSWORD} \
--env THIRD_TOKEN_ISSUER=http://${OIDC_SERVER_NAME}:8090 \
--env OAUTH2_TOKEN_ISSUER=https://${OIDC_DOMAIN_FULL} \
--env SPRING_SECURITY_OAUTH2_RESOURCE-SERVER_JWT_ISSUER-URI=https://${OIDC_DOMAIN_FULL} \
--env TZ=Asia/Shanghai \
--env SPRING_KAFKA_COMMON_BOOTSTRAP-SERVERS=${KAFKA_NAME}:9092 \
--env SPRING_KAFKA_BOOTSTRAP_SERVERS=${KAFKA_NAME}:9092 \
--mount type=bind,source=/etc/localtime,target=/etc/localtime,readonly \
--memory ${OIDC_SERVER_MEMORY} \
--restart unless-stopped \

23
start/stream.sh Executable file
View File

@ -0,0 +1,23 @@
source ../environment.sh
if docker ps -a | grep -q ${STREAM_NAME}; then
echo "停止并删除已存在的 STREAM_NAME 容器..."
docker stop ${STREAM_NAME} >/dev/null 2>&1
docker rm ${STREAM_NAME} >/dev/null 2>&1
fi
docker run --pull always -d \
--name ${STREAM_NAME} \
--network ${NETWORK} \
-p ${STREAM_DEBUG_PORT}:8080 \
--memory ${STREAM_MEMORY} \
-e srs.domain=${SRS_DOMAIN} \
-e srs.name=${SRS_NAME} \
-e recordPath=/data/record/record/ \
-e cangneiwai=true \
-v ${STREAM_DATA}:/data/recording \
-v ${SRS_DATA}:/data/record \
--restart unless-stopped \
${STREAM_IMAGE}

104
streamTest/player.html Normal file
View File

@ -0,0 +1,104 @@
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>视频播放器</title>
<style>
body {
margin: 0;
padding: 20px;
background-color: #f0f0f0;
font-family: Arial, sans-serif;
}
.container {
max-width: 1200px;
margin: 0 auto;
background-color: white;
padding: 20px;
border-radius: 8px;
box-shadow: 0 2px 4px rgba(0,0,0,0.1);
}
.video-container {
width: 100%;
max-width: 1000px;
margin: 0 auto;
}
video {
width: 100%;
height: auto;
background-color: black;
border-radius: 4px;
}
h1 {
text-align: center;
color: #333;
margin-bottom: 30px;
}
.controls {
margin-top: 20px;
text-align: center;
}
button {
padding: 10px 20px;
margin: 0 10px;
border: none;
border-radius: 4px;
background-color: #007bff;
color: white;
cursor: pointer;
transition: background-color 0.3s;
}
button:hover {
background-color: #0056b3;
}
</style>
</head>
<body>
<div class="container">
<h1>视频播放器</h1>
<div class="video-container">
<video id="videoPlayer" controls controlsList="nodownload">
<source src="https://srs-bazhong.t-aaron.com:2443/recording/50ae8720-d8b3-40c6-9e2b-4eb31ed619e6.mp4" type="video/mp4">
您的浏览器不支持 HTML5 视频播放。
</video>
</div>
<div class="controls">
<button onclick="document.getElementById('videoPlayer').play()">播放</button>
<button onclick="document.getElementById('videoPlayer').pause()">暂停</button>
<button onclick="document.getElementById('videoPlayer').currentTime = 0">重新播放</button>
<button onclick="toggleFullScreen()">全屏</button>
</div>
</div>
<script>
function toggleFullScreen() {
const video = document.getElementById('videoPlayer');
if (!document.fullscreenElement) {
if (video.requestFullscreen) {
video.requestFullscreen();
} else if (video.webkitRequestFullscreen) {
video.webkitRequestFullscreen();
} else if (video.msRequestFullscreen) {
video.msRequestFullscreen();
}
} else {
if (document.exitFullscreen) {
document.exitFullscreen();
} else if (document.webkitExitFullscreen) {
document.webkitExitFullscreen();
} else if (document.msExitFullscreen) {
document.msExitFullscreen();
}
}
}
// 添加错误处理
const video = document.getElementById('videoPlayer');
video.addEventListener('error', function(e) {
console.error('视频加载错误:', e);
alert('视频加载失败,请检查网络连接或视频地址是否正确。');
});
</script>
</body>
</html>

49
tuohengdev.sh Executable file
View File

@ -0,0 +1,49 @@
echo "开始执行 tuohengdev.sh"
export DOMAIN=develop
export DOMAIN_END=t-aaron.com
# 主机对外爆露的HTTP端口
export NGINX_HTTP_PORT=9999
# 主机对外爆露的HTTPS端口
export NGINX_HTTPS_PORT=3443
export MYSQL_PORT=3309
export REDIS_PORT=6381
#MQTT 配置
# MQTT对外爆露端口
export MQTT_PORT=1884
export MQTT_WS_PORT=9004
export KAFKA_PORT=9292
# SRS对外爆露端口
export SRS_RTMP_PORT=1938
# Minio对外爆露端口
export MINIO_API_PORT=9700
# Minio控制台对外爆露端口
export MINIO_CONSOLE_PORT=9022
export MINIO_ACCESS_KEY=5x2X7FkeyxEYQPAFOUet
export MINIO_SECRET_KEY=WOH5bzWr3OdrdzrPdN3hXFlxsSWJuRW2kQeRUbJI
# Consul 配置
export CONSUL_PORT=8600
# XXL-Job 配置
export XXLJOB_PORT=8383
export HHZ_ADMIN_WEB_DIST=/home/th/workspace/dockerbuilder/webs/dev/tuoheng_hhz_web/dist
export DSP_ADMIN_WEB_DIST=/home/th/workspace/dockerbuilder/webs/dev/dsp-admin/dist
export AIRPORT_WEB_DIST=/home/th/workspace/dockerbuilder/webs/dev/tuoheng_airport_web/dist
export BUSINESS_WEB_DIST=/home/th/workspace/dockerbuilder/webs/dev/business_web/dist
echo $HHZ_ADMIN_WEB_DIST
echo $DSP_ADMIN_WEB_DIST
echo $AIRPORT_WEB_DIST
echo $BUSINESS_WEB_DIST
#前端配置
#export VUE_APP_API_BASE_URL = https://${HHZ_DOMAIN}:${NGINX_HTTPS_PORT}/
#export VUE_APP_AUTHORITY = https://${OIDC_SERVER_DOMAIN}:${NGINX_HTTPS_PORT}
#export VUE_APP_OUT_AUTHORITY = https://${OIDC_SERVER_DOMAIN}:${NGINX_HTTPS_PORT}
#VUE_APP_API_BASE_URL=https://${AIRPORT_DOMAIN}:${NGINX_HTTPS_PORT}/airport
#https://airport-develop.t-aaron.com:3443
#https://hhz-develop.t-aaron.com:3443
#https://oidc-develop.t-aaron.com:3443

87
说明.md Normal file
View File

@ -0,0 +1,87 @@
整体:
1: 在构建服务器上面构建各个服务
builder 构建后端服务
nginx 构建前端服务
2: 在需要部署的服务器上执行start中的命令
先执行init中的脚本初始化环境
environment.sh 环境参数文件,构建时候和部署时候都依赖这个文件,必须保证一致
移植的时候需要修改domain和端口
nginx的vhosts里面的cert文件需要更新为域名的配置文件
1: 刷MySql数据
启动mysql后需要先初始化mysql数据 [和拓恒要]
2: 刷Kafka数据
3: 建minio的权限
4: 将环境变量拷贝到 nginx/vhosts/cert 目录下?
构建镜像 在tuoheng的服务器上构建
~~~~~~~~
其他:
srs: 推流: rtmp://srs-bazhong.t-aaron.com/live/1
读流: https://srs-bazhong.t-aaron.com:2443/live/1.flv
rtmp://srs-develop.t-aaron.com:1938/live/1
https://srs-develop.t-aaron.com:3443/live/1.flv
录制地址:https://srs-bazhong.t-aaron.com:2443/recording/50ae8720-d8b3-40c6-9e2b-4eb31ed619e6.mp4
https://srs-develop.t-aaron.com:3443/recording/50ae8720-d8b3-40c6-9e2b-4eb31ed619e6.mp4
139.224.117.253 3309 root tuoheng2024
https://minioconsole-develop.t-aaron.com:3443/ miniopassword miniopassword
部署在巴中:
dsp-api
hhz-admin hhz-api
部署在大数据服务器:
低空(预备)
大数据的mysql的数据
mqtt需要在综管改使用容器内新的mqtt
minio
srs
视频流录制的配置文件覆盖
业务地址:
河湖长: https://hhz-develop.t-aaron.com:3443/
机场: https://airport-develop.t-aaron.com:3443/
低空: https://business-develop.t-aaron.com:3443/
数据库地址:
139.224.117.253 3309 root tuoheng2024
minio管理台:
http://139.224.117.253:9022/login miniopassword miniopassword
文件读取地址样例:
https://minio-develop.t-aaron.com:3443/image/WechatIMG65.jpg
录制视频地址样例:
https://srs-develop.t-aaron.com:3443/recording/50ae8720-d8b3-40c6-9e2b-4eb31ed619e6.mp4
推流地址样例: rtmp://srs-develop.t-aaron.com:1938/live/1
上面推流地址对应的读流地址样例: https://srs-develop.t-aaron.com:3443/live/1.flv
https://srs-develop.t-aaron.com:3443/live/2outer.flv
MQTT地址: mqtt-develop.t-aaron.com:1884
consul地址:
https://consul-develop.t-aaron.com:3443/ui/dc1/services/consul/instances
xxlJob地址:
https://xxljob-develop.t-aaron.com:3443/xxl-job-admin/toLogin admin 123456