Skip to content

Commit 062f491

Browse files
xiaorongnieipcjs
andauthored
feat(公交https): 新增公交https一键部署demo, 移除mysql5.7 (#25)
* feat(公交https): 新增公交https一键部署demo * feat(env说明): 增加说明 * feat(analytics): 增加库 * feat(bus-http): 修改http的demo, 保持docker-compose的目录 * feat(mysql5.7): 移除, 全部迁入mysql8 * feat(公交脚本): 更新公交最新脚本 * feat(bus-http): 增加默认值,方便本机一键启动 * feat(字符集): 统一成mysql8的默认字符集 * feat(分区): 删除cbus的device*库, 初始化立即调用分区 * feat(版本更新): 公交前后端更新到2025-11-06最新版本 * feat(公交计算): 移除掉公交计算服务 * feat(证书): 只保留空结构 * feat(默认配置): 修改成空+示例 * feat(rtp): 增加https方式, 对齐服务 * fix(文件路径): 下面有引用, 放最顶部 * feat(bus-nginx): http模式空占位 * feat(track-nginx): 增加http的证书占位 * feat(readme): 增加git管理要求 * wip: example的变量填写默认值 & 目录全部写到一起 * docs: 手动下载前端的文档, 移到projects/下 * refactor: projects -> scripts * feat: 修改部署和版本更新readme * feat(track-https): 修改https规范 * feat(设备表): 版本号改到256, 兼容通力 * feat(readme): 只保留参考 * wip: 添加"配置前端" * wip: xx * wip: 推荐安装docker扩展等 --------- Co-authored-by: ipcjs.mac4 <[email protected]>
1 parent 69583f4 commit 062f491

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

44 files changed

+3539
-4104
lines changed

.env.default

Lines changed: 46 additions & 46 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,29 @@
1+
## ================================ 目录 ================================
2+
3+
# 数据目录, 用于存放日志/数据库/文件等
4+
DATA_DIR=/data
5+
# docker仓库的目录, 不建议在compose文件中引用docker仓库的绝对路径, 建议使用configs替代: https://docs.docker.com/reference/compose-file/configs/
6+
DOCKER_DIR=/home/docker
7+
# 实际配置项目配置目录
8+
DOCKER_COMPOSE_DIR=/home/docker-compose
9+
# bus前端文件复写目录, 该目录中的文件会在compose被up时被复制到bus前端目录, 通常可以复写如下文件:
10+
# - _app.config.js: 前端配置文件
11+
BUS_WEB_OVERRIDE_DIR=${DOCKER_COMPOSE_DIR}/bus-override
12+
# track前端文件复写目录, 该目录中的文件会在compose被up时被复制到track前端目录, 通常可以复写如下文件:
13+
# - _app.config.js: 前端配置文件
14+
# - index-seo.html: 交给爬虫(搜索引擎/Line网页摘要等)读取的静态页面
15+
# - favicon.ico: ico图标
16+
# - favicon.png: png图标
17+
# - logo.png: 大图标
18+
TRACK_WEB_OVERRIDE_DIR=${DOCKER_COMPOSE_DIR}/track-override
19+
# TOKEN目录的绝对路径, 包含以下文件, 最新版服务器已经支持自动生成/下载这些文件:
20+
# - access/ras_key|ras_key.pub: 访问密钥的公私钥对
21+
# - refresh/ras_key|ras_key.pub: 刷新密钥的公私钥对
22+
# - ip2region.xdb: ip到区域的映射数据, 手动下载连接: https://raw.githubusercontent.com/lionsoul2014/ip2region/master/data/ip2region.xdb
23+
MAINTAIN_TOKEN_DIR=${DOCKER_COMPOSE_DIR}/token
24+
25+
## ================================ 服务器信息 ================================
26+
127
# 必填, 当前服务器公网IP, jtt808/video等服务不设置IP的时候,默认会读取这个
228
SERVER_IP_PUBLIC='' # 58.82.168.181
329

@@ -8,8 +34,8 @@ SERVER_IP_INTERNAL=''
834
# 必填, 服务器域名, 若没有域名, 则填写公网IP
935
SERVER_HOSTNAME='' # livedvr.tripsdd.com
1036

11-
# 必填, 证书文件的绝对路径, 排除.crt/.key后缀, nginx实际读取的是 ${SSL_CERTIFICATE}.crt 和 ${SSL_CERTIFICATE}.key 两个文件
12-
# 即使不使用https或者暂时没申请到证书, 也要配置该变量, 否则nginx会报错, 可以直接使用examples里面的假证书: /home/docker/examples/track/ssl/certificate
37+
# 使用https时, 必填, 证书文件的绝对路径, 排除.crt/.key后缀, nginx实际读取的是 ${SSL_CERTIFICATE}.crt 和 ${SSL_CERTIFICATE}.key 两个文件
38+
# 如果暂时没有申请到证书, 可以使用内置的假证书: /home/docker/nginx/ssl/placeholder
1339
SSL_CERTIFICATE='' # /home/docker-compose/ssl/livedvr_tripsdd_com
1440

1541
# bus和track部署在同一台服务器上时, 需要通过域名区分两者
@@ -18,47 +44,14 @@ BUS_SSL_CERTIFICATE=${SSL_CERTIFICATE}
1844
TRACK_HOSTNAME=${SERVER_HOSTNAME}
1945
TRACK_SSL_CERTIFICATE=${SSL_CERTIFICATE}
2046

21-
#---------------------------------------------
2247
## 前端配置
2348
WEB_PORT_HTTP=80
2449
WEB_PORT_HTTPS=443
2550
# 前端的公网URL
2651
# jtt808和maintain分开部署时, 必须填写这个变量
2752
WEB_BASE_URL='' # https://livedvr.tripsdd.com
28-
#---------------------------------------------
2953

30-
## 目录
31-
# 数据目录, 用于存放日志/数据库/文件等
32-
DATA_DIR=/data
33-
# docker仓库的目录, 不建议在compose文件中引用docker仓库的绝对路径, 建议使用configs替代: https://docs.docker.com/reference/compose-file/configs/
34-
DOCKER_DIR=/home/docker
35-
DOCKER_COMPOSE_DIR=/home/docker-compose
36-
37-
## 版本号, 设为latest则使用最新版
38-
# bus前端版本
39-
BUS_WEB_VERSION=5.30.0
40-
# bus前端文件复写目录, 该目录中的文件会在compose被up时被复制到bus前端目录, 通常可以复写如下文件:
41-
# - _app.config.js: 前端配置文件
42-
BUS_WEB_OVERRIDE_DIR=${DOCKER_COMPOSE_DIR}/bus-override
43-
# bus的后端, gateway-web和gateway-dispatch共用一个版本号
44-
BUS_GATEWAY_VERSION=1.21.1
45-
BUS_GATEWAY_808_2019_VERSION=25.8.25
46-
BUS_GATEWAY_JSATL12_VERSION=23.1.21
47-
BUS_GATEWAY_CALCULATION_VERSION=1.17.0
48-
49-
# track前端版本
50-
TRACK_WEB_VERSION=1.53.0
51-
# track前端文件复写目录, 该目录中的文件会在compose被up时被复制到track前端目录, 通常可以复写如下文件:
52-
# - _app.config.js: 前端配置文件
53-
# - index-seo.html: 交给爬虫(搜索引擎/Line网页摘要等)读取的静态页面
54-
# - favicon.ico: ico图标
55-
# - favicon.png: png图标
56-
# - logo.png: 大图标
57-
TRACK_WEB_OVERRIDE_DIR=${DOCKER_COMPOSE_DIR}/track-override
58-
TRACK_MAINTAIN_VERSION=1.45.0
59-
TRACK_JTT808_VERSION=1.18.0
60-
61-
# ---------------------------------------------
54+
## ================================ Services ================================
6255

6356
## 视频服务器
6457
# 必填, 视频公网IP, APP客户端和设备连接
@@ -88,8 +81,6 @@ VIDEO_PORT_HTTPS_3=9087
8881
VIDEO_PORT_HTTPS_4=9088
8982
VIDEO_PORT_HTTPS_5=9089
9083

91-
#---------------------------------------------
92-
9384
## 网关服务器
9485
# 必填, 后端和流媒体服务往网关服务器注册或者下发指令
9586
JTT808_HOST='jtt808'
@@ -101,16 +92,9 @@ JTT808_PORT_FTP=9021
10192
JTT808_PORT_FTP_ACTIVE=9022
10293
JTT808_PORT_FTP_PASSIVE=9041-9049
10394

104-
#---------------------------------------------
105-
10695
## maintain
10796
MAINTAIN_HOST='maintain'
10897
MAINTAIN_PORT='8080'
109-
# TOKEN目录的绝对路径, 包含以下文件, 最新版服务器已经支持自动生成/下载这些文件:
110-
# - access/ras_key|ras_key.pub: 访问密钥的公私钥对
111-
# - refresh/ras_key|ras_key.pub: 刷新密钥的公私钥对
112-
# - ip2region.xdb: ip到区域的映射数据, 手动下载连接: https://raw.githubusercontent.com/lionsoul2014/ip2region/master/data/ip2region.xdb
113-
MAINTAIN_TOKEN_DIR=${DOCKER_COMPOSE_DIR}/token
11498

11599
## MYSQL
116100
MYSQL_HOST='mysql8'
@@ -148,11 +132,27 @@ MINIO_SECRETKEY=${MINIO_PASSWORD}
148132
# MINIO ftp功能
149133
MINIO_FTP_PORT=8021
150134
MINIO_FTP_PASSIVE_PORT=8523-8529
151-
#---------------------------------------------
152135

153136
## 邮件
154137
# 默认使用transcodegroup的邮箱
155138
MAIL_HOST=smtp.transcodegroup.com
156139
157140
# 必填, 需要去企业邮箱中创建密码
158141
MAIL_PASSWORD=''
142+
143+
## ================================ 版本号, 设为latest则使用最新版 ================================
144+
145+
# bus前端
146+
BUS_WEB_VERSION=5.31.0
147+
# bus的后端
148+
BUS_GATEWAY_VERSION=1.23.0
149+
# 公交808-2019版本号
150+
BUS_GATEWAY_808_2019_VERSION=25.8.25
151+
# 公交主动安全版本号
152+
BUS_GATEWAY_JSATL12_VERSION=23.1.21
153+
154+
# track前端
155+
TRACK_WEB_VERSION=1.53.0
156+
# track后端
157+
TRACK_MAINTAIN_VERSION=1.45.0
158+
TRACK_JTT808_VERSION=1.18.0

.gitignore

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,4 +4,4 @@ ip2region.xdb
44
/.env
55
/.env.local
66
/tmp
7-
/projects/*.zip
7+
/scripts/*.zip

.vscode/extensions.json

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
{
2+
"recommendations": [
3+
"docker.docker"
4+
]
5+
}

.vscode/settings.json

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
{
2+
"cSpell.words": [
3+
"RABBITMQ"
4+
]
5+
}

README.md

Lines changed: 42 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -16,11 +16,16 @@ git clone https://github.com/TranscodeGroup/docker.git /home/docker
1616

1717
创建`/home/docker-compose/compose.yaml`文件, 参考如下示例:
1818

19+
**单机单独部署**:
20+
21+
- [bus-http](./examples/bus-http/compose.yaml): Bus-http单机部署
22+
- [bus-https](./examples/bus-https/compose.yaml): Bus-https单机部署
23+
- [track-https](./examples/track-https/compose.yaml): Tracker V2单机部署
24+
25+
**分布式部署**:
26+
1927
- [video-storage](./examples/video-storage/compose.yaml): RTP存储
2028
- [video-stream](./examples/video-stream/compose.yaml): RTP视频
21-
- [track](./examples/track/compose.yaml): Tracker V2单机部署
22-
- [bus](./examples/bus/compose.yaml): Bus单机部署
23-
- etc.
2429

2530
### 3. 配置`.env`
2631

@@ -38,48 +43,54 @@ docker compose config
3843
docker compose config > compose-stack.yaml
3944
```
4045

41-
### 4. 下载前端文件
42-
43-
#### 使用Docker自动下载
46+
### 4. 配置前端
4447

45-
`/home/docker-compose/compose.yaml`文件中, `include`如下服务, 即可自动下载前端:
48+
前端复写目录, 用来放`_app.config.js`等项目特定的前端配置文件:
4649

47-
```yaml
48-
include:
49-
# ...
50-
- path:
51-
- ../docker/web-downloader/compose.yml # 自动下载的基础配置
52-
- ../docker/web-downloader/compose.track.yml # 自动下载track, 可选
53-
- ../docker/web-downloader/compose.bus.yml # 自动下载bus, 可选
54-
```
50+
- `/home/docker-compose/bus-override`: bus前端复写目录
51+
- `/home/docker-compose/track-override`: track前端复写目录
5552

56-
#### 手动下载
53+
**注意**: 修改完配置后, 需要执行`docker compose up`, 文件才会被覆盖到`/data/nginx/html/`里面去. 因为是使用的覆盖的方式, 因此不建议直接修改`/data/nginx/html/`里面的文件.
5754

58-
部署distar等项目的前端:
59-
[说明文件](projects/README.md)
55+
### 5. 启动
6056

61-
下载并提取最新的`bus`前端:
57+
`/home/docker-compose`中执行如下命令, 启动docker:
6258

6359
```sh
64-
cd /data/nginx/html
65-
/home/docker/projects/teamcity-download-artifact.sh --build=CityBusVueAdmin_Release
66-
unzip CityBusVueAdmin_Release-latest.zip
67-
unzip bus.zip -d bus
60+
docker compose up
6861
```
6962

70-
下载并提取最新的`track`前端:
63+
### 6. 使用git管理docker-compose目录
64+
65+
`/home/docker-compose`中执行如下命令
7166

7267
```sh
73-
cd /data/nginx/html
74-
/home/docker/projects/teamcity-download-artifact.sh --build=MaintainVbenAdmin_Release
75-
unzip MaintainVbenAdmin_Release-latest.zip
76-
unzip maintain.zip -d track
68+
# 切换到目录下面
69+
cd /home/docker-compose
70+
71+
# 每次修改配置之后, 记得备份一下配置, 方便对比实际影响差异
72+
docker compose config > compose-stack.yaml
73+
74+
# 配置GIT账号
75+
git config --global user.name "tg"
76+
git config --global user.email [email protected]
77+
78+
# 初始化GIT
79+
git init
80+
# 加入暂存区
81+
git add -A
82+
# 提交本地仓库
83+
git commit -m "Initial commit(初始化仓库)"
7784
```
7885

79-
### 5. 启动
86+
## 注意事项
8087

81-
在`/home/docker-compose`中执行如下命令, 启动docker:
88+
### 版本管理, 版本迭代同时, 记得同步mysql下面的脚本
8289

8390
```sh
84-
docker compose up
91+
# bus前端
92+
BUS_WEB_VERSION=xxx
93+
# bus的后端
94+
BUS_GATEWAY_VERSION=xxx
95+
#...
8596
```

bus/compose.yml

Lines changed: 1 addition & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -176,34 +176,4 @@ services:
176176
driver: "json-file"
177177
options:
178178
# 限制日志文件大小
179-
max-size: "100m"
180-
gateway_calculation:
181-
image: transcodegroup/gateway-calculation:${BUS_GATEWAY_CALCULATION_VERSION:?required}
182-
container_name: gateway_calculation
183-
restart: always
184-
volumes:
185-
- ${DATA_DIR:-/data}/logs/gateway_calculation:/logs
186-
- ${DATA_DIR:-/data}/files:/data/files
187-
environment:
188-
# 默认开启分区存储
189-
- DYNAMIC_TABLE=TRUE
190-
- STORAGE_ACTIVE=FALSE
191-
# DB
192-
- SPRING_DATASOURCE_URL=jdbc:mysql://${MYSQL_HOST:-mysql}:${MYSQL_PORT:-3306}/cbus?allowMultiQueries=true&useUnicode=true&characterEncoding=UTF-8&serverTimezone=UTC&useSSL=false&allowPublicKeyRetrieval=true
193-
- SPRING_DATASOURCE_USERNAME=${MYSQL_USERNAME:-root}
194-
- SPRING_DATASOURCE_PASSWORD=${MYSQL_PASSWORD:?required}
195-
196-
# REDIS
197-
- SPRING_REDIS_HOST=${REDIS_HOST:-redis}
198-
- SPRING_REDIS_PORT=${REDIS_PORT:-6379}
199-
- SPRING_REDIS_PASSWORD=${REDIS_PASSWORD:?required}
200-
ulimits:
201-
nproc: 65535
202-
nofile:
203-
soft: 20000
204-
hard: 40000
205-
logging:
206-
driver: "json-file"
207-
options:
208-
# 限制日志文件大小
209-
max-size: "100m"
179+
max-size: "100m"

examples/bus-http/.env

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
#---------服务器信息, 必须按实际服务器信息填写-----------------
2+
## HOSTNAME 没有用公网IP替代
3+
SERVER_HOSTNAME='transcodegroup.cn'
4+
## 公网IP
5+
SERVER_IP_PUBLIC='81.71.36.80'
6+
7+
#---------自定义初始密码, 建议随机生成新的替换-------------
8+
## MYSQL, 必填,示例: p92oVkNxrUttUUu8qyqs
9+
MYSQL_PASSWORD='p92oVkNxrUttUUu8qyqs'
10+
## redis初始密码, 示例: nse3fLtG4Bm53URq4Ex
11+
REDIS_PASSWORD='p92oVkNxrUttUUu8qyqs'
12+
## rabbitMq初始密码, 示例: Prr1139gdGhMJ4RDo7Gt
13+
RABBITMQ_PASSWORD='p92oVkNxrUttUUu8qyqs'
14+
## Email密码, 示例ZfJwfEJvL8wbPr4LvCyx
15+
MAIL_PASSWORD='p92oVkNxrUttUUu8qyqs'
16+
17+
#----------自定义端口信息, 推荐开放9000~9100,443,80--------
18+
# nginx前端配置
19+
WEB_PORT_HTTP=9080
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
1-
# BUS单机部署模版
1+
# Bus单机部署, 使用http
22
include:
3-
- ../docker/mysql5.7/compose.yml
3+
- ../docker/mysql8/compose.yml
44
- ../docker/rabbitmq/compose.yml
5-
- ../docker/redis/compose.yml
5+
- ../docker/redis/compose.yml
66
- ../docker/bus/compose.yml
77
- path:
88
- ../docker/video-nginx/compose.yml
@@ -14,4 +14,7 @@ include:
1414
- path:
1515
- ../docker/nginx/compose.yml
1616
- ../docker/nginx/compose.bus.yml
17-
17+
- ../docker/nginx/compose.bus.http.yml
18+
- path:
19+
- ../docker/web-downloader/compose.yml
20+
- ../docker/web-downloader/compose.bus.yml

examples/bus-https/.env

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
#---------服务器信息, 必须按实际服务器信息填写-----------------
2+
## 公网IP
3+
SERVER_IP_PUBLIC='81.71.36.80'
4+
## HOSTNAME 没有用域名IP替代
5+
SERVER_HOSTNAME='transcodegroup.cn'
6+
## SSL证书
7+
SSL_CERTIFICATE='/home/docker-compose/ssl/tg_com'
8+
9+
#---------自定义初始密码, 建议随机生成新的替换-------------
10+
## MYSQL, 必填
11+
MYSQL_PASSWORD='ZfJwfEJvL8wbPr4LvCyx'
12+
## REDIS, 必填
13+
REDIS_PASSWORD='ZfJwfEJvL8wbPr4LvCyx'
14+
## RABBIT_MQ, 必填
15+
RABBITMQ_PASSWORD='ZfJwfEJvL8wbPr4LvCyx'
16+
## Email,必填
17+
MAIL_PASSWORD='ZfJwfEJvL8wbPr4LvCyx'
18+
19+
#----------自定义端口信息, 推荐开放9000~9100,443,80--------
20+
# 前端端口配置, HTTP默认80, HTTPS默认443
21+
WEB_PORT_HTTP=9070
22+
WEB_PORT_HTTPS=9080

examples/bus-https/compose.yaml

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
# Bus单机部署, 使用https
2+
# 密码/端口/域名等信息在.env文件中配置
3+
include:
4+
- ../docker/mysql8/compose.yml
5+
- ../docker/rabbitmq/compose.yml
6+
- ../docker/redis/compose.yml
7+
- ../docker/bus/compose.yml
8+
- ../docker/video-nginx/compose.yml
9+
- path:
10+
- ../docker/video/compose.yml
11+
- ../docker/video/compose.bus.yml
12+
- path:
13+
- ../docker/nginx/compose.yml
14+
- ../docker/nginx/compose.bus.yml
15+
- ../docker/nginx/compose.bus.https.yml
16+
- path:
17+
- ../docker/web-downloader/compose.yml
18+
- ../docker/web-downloader/compose.bus.yml

0 commit comments

Comments
 (0)