Former-commit-id: a43fd30923f651994a591ed80a0b7d692e7a5d48
TangShanKaiPing
wanggang 5 years ago
parent c216a8bade
commit 7aef8dc9e8

@ -2,92 +2,161 @@
<li class="nav-item"><a class="nav-link @GetClass("Home")" href="@Url.Action("Index","Home")"><i class="nav-icon fas fa-tachometer-alt"></i><p>首页</p></a></li>
@if (User.IsInRole("Read-Setting"))
{
<li class="nav-item"><a class="nav-link @GetClass("Setting")" href="@Url.Action("Index","Setting")"><i class="nav-icon ion ion-md-hammer"></i><p>设置</p></a></li>
<li class="nav-item"><a class="nav-link @GetClass("Setting")" href="@Url.Action("Index","Setting")"><i class="nav-icon fa fa-wrench"></i><p>设置</p></a></li>
}
@if (User.IsInRole("Read-User") || User.IsInRole("Read-Role") || User.IsInRole("Read-Permission"))
{
<li class="nav-item has-treeview @GetClass2("User","Role","Permission")">
<a href="javascript:;" class="nav-link @GetClass("User","Role","Permission")">
<i class="fa fa-user"></i>
<p>用户管理<i class="right fas fa-angle-left"></i></p>
</a>
<ul class="nav nav-treeview">
@if (User.IsInRole("Read-User"))
{
<li class="nav-item"><a class="nav-link @GetClass("User")" href="@Url.Action("Index","User")"><i class="far fa-circle nav-icon"></i><p>用户管理</p></a></li>
}
@if (User.IsInRole("Read-Role"))
{
<li class="nav-item"><a class="nav-link @GetClass("Role")" href="@Url.Action("Index","Role")"><i class="far fa-circle nav-icon"></i><p>角色管理</p></a></li>
}
@if (User.IsInRole("Read-Permission"))
{
<li class="nav-item"><a class="nav-link @GetClass("Permission")" href="@Url.Action("Index","Permission")"><i class="far fa-circle nav-icon"></i><p>权限管理</p></a></li>
}
</ul>
</li>
}
@if (User.IsInRole("Read-Product") || User.IsInRole("Read-Api") || User.IsInRole("Read-Parameter"))
{
<li class="nav-item has-treeview @GetClass2("Product","Api","Parameter")">
<a href="javascript:;" class="nav-link @GetClass("Product","Api","Parameter")">
<i class="fa fa-folder"></i>
<p>
产品管理
<i class="right fas fa-angle-left"></i>
</p>
</a>
<ul class="nav nav-treeview">
@if (User.IsInRole("Read-Product"))
{
<li class="nav-item"><a class="nav-link @GetClass("Product")" href="@Url.Action("Index","Product")"><i class="far fa-circle nav-icon"></i><span>产品管理</span></a></li>
}
@if (User.IsInRole("Read-Api"))
{
<li class="nav-item"><a class="nav-link @GetClass("Api")" href="@Url.Action("Index","Api")"><i class="far fa-circle nav-icon"></i><span>接口管理</span></a></li>
}
@if (User.IsInRole("Read-Parameter"))
{
<li class="nav-item"><a class="nav-link @GetClass("Parameter")" href="@Url.Action("Index","Parameter")"><i class="far fa-circle nav-icon"></i><span>参数管理</span></a></li>
}
</ul>
</li>
}
@if (User.IsInRole("Read-Node") || User.IsInRole("Read-Device") || User.IsInRole("Read-Data") || User.IsInRole("Read-Command"))
{
<li class="nav-item has-treeview @GetClass2("Node","Device","Data","Command")">
<a href="javascript:;" class="nav-link @GetClass("Node","Device","Data","Command")">
<i class="fa fa-cube"></i>
<p>
节点管理
<i class="right fas fa-angle-left"></i>
</p>
</a>
<ul class="nav nav-treeview">
@if (User.IsInRole("Read-Node"))
{
<li class="nav-item"><a class="nav-link @GetClass("Node")" href="@Url.Action("Index","Node")"><i class="far fa-circle nav-icon"></i><span>节点管理</span></a></li>
}
@if (User.IsInRole("Read-Device"))
{
<li class="nav-item"><a class="nav-link @GetClass("Device")" href="@Url.Action("Index","Device")"><i class="far fa-circle nav-icon"></i><span>设备管理</span></a></li>
}
@if (User.IsInRole("Read-Data"))
{
<li class="nav-item"><a class="nav-link @GetClass("Data")" href="@Url.Action("Index","Data")"><i class="far fa-circle nav-icon"></i><span>数据管理</span></a></li>
}
@if (User.IsInRole("Read-Command"))
{
<li class="nav-item"><a class="nav-link @GetClass("Command")" href="@Url.Action("Index","Command")"><i class="far fa-circle nav-icon"></i><span>设备命令管理</span></a></li>
}
</ul>
</li>
}
@if (User.IsInRole("Read-User"))
{
<li class="nav-item"><a class="nav-link @GetClass("User")" href="@Url.Action("Index","User")"><i class=" nav-icon far fa-user"></i><p>用户管理</p></a></li>
}
@if (User.IsInRole("Read-Role"))
{
<li class="nav-item"><a class="nav-link @GetClass("Role")" href="@Url.Action("Index","Role")"><i class="nav-icon ion ion-md-glasses"></i><p>角色管理</p></a></li>
}
@if (User.IsInRole("Read-Permission"))
{
<li class="nav-item"><a class="nav-link @GetClass("Permission")" href="@Url.Action("Index","Permission")"><i class="nav-icon fas fa-key"></i><p>权限管理</p></a></li>
}
@if (User.IsInRole("Read-Product"))
{
<li class="nav-item"><a class="nav-link @GetClass("Product")" href="@Url.Action("Index","Product")"><i class="nav-icon fa fa-leaf"></i><span>产品管理</span></a></li>
}
@if (User.IsInRole("Read-Api"))
{
<li class="nav-item"><a class="nav-link @GetClass("Api")" href="@Url.Action("Index","Api")"><i class="nav-icon fa fa-plug"></i><span>接口管理</span></a></li>
}
@if (User.IsInRole("Read-Parameter"))
{
<li class="nav-item"><a class="nav-link @GetClass("Parameter")" href="@Url.Action("Index","Parameter")"><i class="nav-icon far fa-circle"></i><span>参数管理</span></a></li>
}
@if (User.IsInRole("Read-Node"))
{
<li class="nav-item"><a class="nav-link @GetClass("Node")" href="@Url.Action("Index","Node")"><i class="nav-icon fa fa-home"></i><span>节点管理</span></a></li>
@if (User.IsInRole("Read-Scene") || User.IsInRole("Read-SceneCommand") || User.IsInRole("Read-SceneTimer") || User.IsInRole("Read-SceneTigger"))
{
<li class="nav-item has-treeview @GetClass2("Scene","SceneCommand","SceneTimer","SceneTigger")">
<a href="javascript:;" class="nav-link @GetClass("Scene","SceneCommand","SceneTimer","SceneTigger")">
<i class="fa fa-archive"></i>
<p>
节点场景管理
<i class="right fas fa-angle-left"></i>
</p>
</a>
<ul class="nav nav-treeview">
@if (User.IsInRole("Read-Scene"))
{
<li class="nav-item"><a class="nav-link @GetClass("Scene")" href="@Url.Action("Index","Scene")"><i class="far fa-circle nav-icon"></i><span>场景管理</span></a></li>
}
@if (User.IsInRole("Read-SceneCommand"))
{
<li class="nav-item"><a class="nav-link @GetClass("SceneCommand")" href="@Url.Action("Index","SceneCommand")"><i class="far fa-circle nav-icon"></i><span>场景命令管理</span></a></li>
}
@if (User.IsInRole("Read-SceneTimer"))
{
<li class="nav-item"><a class="nav-link @GetClass("SceneTimer")" href="@Url.Action("Index","SceneTimer")"><i class="far fa-circle nav-icon"></i><span>定时器管理</span></a></li>
}
@if (User.IsInRole("Read-SceneTigger"))
{
<li class="nav-item"><a class="nav-link @GetClass("SceneTigger")" href="@Url.Action("Index","SceneTigger")"><i class="far fa-circle nav-icon"></i><span>触发器管理</span></a></li>
}
</ul>
</li>
}
@if (User.IsInRole("Read-Scene") || User.IsInRole("Read-SceneCommand") || User.IsInRole("Read-SceneTimer") || User.IsInRole("Read-SceneTigger"))
{
<li class="nav-item has-treeview @GetClass2("GlobalScene","GlobalSceneCommand","GlobalSceneTimer","GlobalSceneTigger")">
<a href="javascript:;" class="nav-link @GetClass("GlobalScene","GlobalSceneCommand","GlobalSceneTimer","GlobalSceneTigger")">
<i class="fa fa-laptop"></i>
<p>
平台场景管理
<i class="right fas fa-angle-left"></i>
</p>
</a>
<ul class="nav nav-treeview">
@if (User.IsInRole("Read-Scene"))
{
<li class="nav-item"><a class="nav-link @GetClass("GlobalScene")" href="@Url.Action("Index","GlobalScene")"><i class="far fa-circle nav-icon"></i><span>场景管理</span></a></li>
}
@if (User.IsInRole("Read-SceneCommand"))
{
<li class="nav-item"><a class="nav-link @GetClass("GlobalSceneCommand")" href="@Url.Action("Index","GlobalSceneCommand")"><i class="far fa-circle nav-icon"></i><span>场景命令管理</span></a></li>
}
@if (User.IsInRole("Read-SceneTimer"))
{
<li class="nav-item"><a class="nav-link @GetClass("GlobalSceneTimer")" href="@Url.Action("Index","GlobalSceneTimer")"><i class="far fa-circle nav-icon"></i><span>定时器管理</span></a></li>
}
@if (User.IsInRole("Read-SceneTigger"))
{
<li class="nav-item"><a class="nav-link @GetClass("GlobalSceneTigger")" href="@Url.Action("Index","GlobalSceneTigger")"><i class="far fa-circle nav-icon"></i><span>触发器管理</span></a></li>
}
</ul>
</li>
}
@if (User.IsInRole("Read-NodeCategory"))
{
<li class="nav-item"><a class="nav-link @GetClass("NodeCategory")" href="@Url.Action("Index","NodeCategory")"><i class="nav-icon fa fa-cubes"></i><span>节点分类管理</span></a></li>
<li class="nav-item"><a class="nav-link @GetClass("NodeCategory")" href="@Url.Action("Index","NodeCategory")"><i class="nav-icon fa fa-leaf"></i><span>节点分类管理</span></a></li>
}
@if (User.IsInRole("Read-Organ"))
{
<li class="nav-item"><a class="nav-link @GetClass("Organ")" href="@Url.Action("Index","Organ")"><i class="nav-icon fa fa-home"></i><span>节点机构管理</span></a></li>
}
@if (User.IsInRole("Read-Device"))
{
<li class="nav-item"><a class="nav-link @GetClass("Device")" href="@Url.Action("Index","Device")"><i class="nav-icon fa fa-tv"></i><span>设备管理</span></a></li>
}
@if (User.IsInRole("Read-Data"))
{
<li class="nav-item"><a class="nav-link @GetClass("Data")" href="@Url.Action("Index","Data")"><i class="nav-icon fa fa-database"></i><span>数据管理</span></a></li>
<li class="nav-item"><a class="nav-link @GetClass("Organ")" href="@Url.Action("Index","Organ")"><i class="nav-icon fa fa-sitemap"></i><span>节点机构管理</span></a></li>
}
@if (User.IsInRole("Read-LiveRecord"))
{
<li class="nav-item"><a class="nav-link @GetClass("LiveRecord")" href="@Url.Action("Index","LiveRecord")"><i class="nav-icon fa fa-camera"></i><span>回放管理</span></a></li>
}
@if (User.IsInRole("Read-Command"))
{
<li class="nav-item"><a class="nav-link @GetClass("Command")" href="@Url.Action("Index","Command")"><i class="nav-icon far fa-circle"></i><span>设备命令管理</span></a></li>
}
@if (User.IsInRole("Read-Scene"))
{
<li class="nav-item"><a class="nav-link @GetClass("Scene")" href="@Url.Action("Index","Scene")"><i class="nav-icon fa fa-list-ol"></i><span>场景管理</span></a></li>
}
@if (User.IsInRole("Read-SceneCommand"))
{
<li class="nav-item"><a class="nav-link @GetClass("SceneCommand")" href="@Url.Action("Index","SceneCommand")"><i class="nav-icon far fa-circle"></i><span>场景命令管理</span></a></li>
}
@if (User.IsInRole("Read-SceneTimer"))
{
<li class="nav-item"><a class="nav-link @GetClass("SceneTimer")" href="@Url.Action("Index","SceneTimer")"><i class="nav-icon far fa-clock"></i><span>场景定时器管理</span></a></li>
}
@if (User.IsInRole("Read-SceneTigger"))
{
<li class="nav-item"><a class="nav-link @GetClass("SceneTigger")" href="@Url.Action("Index","SceneTigger")"><i class="nav-icon fa fa-fire"></i><span>场景触发器管理</span></a></li>
}
@if (User.IsInRole("Read-Scene"))
{
<li class="nav-item"><a class="nav-link @GetClass("GlobalScene")" href="@Url.Action("Index","GlobalScene")"><i class="nav-icon fa fa-list-ol"></i><span>平台场景管理</span></a></li>
}
@if (User.IsInRole("Read-SceneCommand"))
{
<li class="nav-item"><a class="nav-link @GetClass("GlobalSceneCommand")" href="@Url.Action("Index","GlobalSceneCommand")"><i class="nav-icon far fa-circle"></i><span>平台场景命令管理</span></a></li>
}
@if (User.IsInRole("Read-SceneTimer"))
{
<li class="nav-item"><a class="nav-link @GetClass("GlobalSceneTimer")" href="@Url.Action("Index","GlobalSceneTimer")"><i class="nav-icon far fa-clock"></i><span>平台场景定时器管理</span></a></li>
}
@if (User.IsInRole("Read-SceneTigger"))
{
<li class="nav-item"><a class="nav-link @GetClass("GlobalSceneTigger")" href="@Url.Action("Index","GlobalSceneTigger")"><i class="nav-icon fa fa-fire"></i><span>平台场景触发器管理</span></a></li>
}
<li class="nav-item"><a class="nav-link" href="/JobServer/job"><i class="nav-icon fa fa-clock"></i><span>平台定时器监控</span></a></li>
</ul>
@functions{
@ -95,12 +164,17 @@
{
if (controllers.Select(o => o.ToLower()).Contains(this.ViewContext.RouteData.Values["controller"].ToString().ToLower()))
{
if (controllers.Length > 1)
{
return "active open";
}
return "active";
}
return "";
}
public string GetClass2(params string[] controllers)
{
if (controllers.Select(o => o.ToLower()).Contains(this.ViewContext.RouteData.Values["controller"].ToString().ToLower()))
{
return "menu-open";
}
return "";
}
}

@ -4,23 +4,23 @@
},
"ConnectionStrings": {
"postgresql": "User ID=root;Host=postgresql;Port=26257;Database=iotcenter;CommandTimeout=120",
"mysql": "Server=mysql;Port=3306;Database=iotcenter;Uid=root;Pwd=root;",
"mysql": "Server=172.172.0.30;Port=3306;Database=iotcenter;Uid=root;Pwd=root;",
"redis": "redis:6379,allowAdmin=true",
"srs": "http://srs:1985",
"JobServer": "http://jobserver/JobServer",
"JobCallBack": "http://iotcenter/IoTCenter/api/v1/Api/ExecTimer"
"srs": "http://172.172.0.60:1985",
"JobServer": "http://172.172.0.10/JobServer",
"JobCallBack": "http://172.172.0.10/IoTCenter/api/v1/Api/ExecTimer"
},
"influxdb": {
"url": "http://influxdb:8086",
"url": "http://172.172.0.50:8086",
"usr": "admin",
"pwd": "admin"
},
"logserver": {
"influxdb": {
"address": "http://influxdb"
"address": "http://172.172.0.50"
}
},
"minio": {
"endpoint": "minio:9000"
"endpoint": " 172.172.0.20:9000"
}
}

@ -1,5 +1,5 @@
{
"ConnectionStrings": {
"HangfireConnection": "Server=mysql;Port=3306;Database=jobserver;Uid=root;Pwd=root;Allow User Variables=True;"
"HangfireConnection": "Server=172.172.0.30;Port=3306;Database=jobserver;Uid=root;Pwd=root;Allow User Variables=True;"
}
}

@ -4,10 +4,10 @@
},
"ConnectionStrings": {
"postgresql": "User ID=root;Host=postgresql;Port=26257;Database=usercenter;CommandTimeout=120",
"mysql": "Server=mysql;Port=3306;Database=usercenter;Uid=root;Pwd=root;",
"redis": "redis:6379,allowAdmin=true"
"mysql": "Server=172.172.0.30;Port=3306;Database=usercenter;Uid=root;Pwd=root;",
"redis": "172.172.0.40:6379,allowAdmin=true"
},
"minio": {
"endpoint": "minio:9000"
"endpoint": "172.172.0.20:9000"
}
}

@ -1,4 +1,4 @@
using System.Reflection;
[assembly: AssemblyVersion("1.0.0.0")]
[assembly: AssemblyInformationalVersion("1.0.0.602")]
[assembly: AssemblyInformationalVersion("1.0.0.603")]

@ -3,4 +3,7 @@
log
docker\log\
docker\data\
docker-compose.override.yml
docker-compose.override.yml
debug.start.ps1
debug.stop.ps1
nginx.development.conf

@ -42,6 +42,8 @@ sudo dpkg -i ~/publish/files/supervisor_3.3.5-1_all.deb
#config apps
sudo cp -f ~/publish/supervisord.conf /etc/supervisor/supervisord.conf
sudo chmod 755 ~/publish/apps/IoTNode/IoTNode
sudo chmod 755 ~/publish/apps/frp/frpc
sudo chmod 755 ~/publish/apps/srs/objs/srs
sudo chmod 755 ~/publish/apps/IoTNode/wwwroot/ffmpeg-linux-arm
sudo chmod 755 ~/publish/apps/IoTNode/wwwroot/ffmpeg-linux-arm64

@ -1 +0,0 @@
docker-compose up -d --remove-orphans

@ -1,26 +1,32 @@
#docker-compose up -d
version: "3.8"
services:
services:
webmvc:
image: nginx:1.18
restart: always
environment:
TZ: "Asia/Shanghai"
ports:
environment:
TZ: "Asia/Shanghai"
ports:
- 5001:80
volumes:
volumes:
- ../../../../projects/WebMVC/wwwroot:/usr/share/nginx/html
- ./docker/log/webmvc:/var/log/nginx
networks:
default:
ipv4_address: 172.172.0.110
webspa:
image: nginx:1.18
restart: always
environment:
environment:
TZ: "Asia/Shanghai"
ports:
ports:
- 5002:80
volumes:
volumes:
- ../../../../projects/WebSPA/wwwroot:/usr/share/nginx/html
- ./docker/log/webspa:/var/log/nginx
networks:
default:
ipv4_address: 172.172.0.120
nginx:
volumes:
- ./docker/conf/nginx/nginx.development.conf:/etc/nginx/nginx.conf
volumes:
- ./docker/conf/nginx/nginx.development.conf:/etc/nginx/nginx.conf

@ -1,73 +1,89 @@
#docker-compose -f docker-compose.yml -f docker-compose.prod.yml up -d
#docker-compose down --remove-orphans
version: "3.8"
services:
usercenter:
services:
usercenter:
image: mcr.microsoft.com/dotnet/core/runtime-deps:3.1-focal
restart: always
environment:
environment:
- TZ=Asia/Shanghai
- ASPNETCORE_ENVIRONMENT=Docker
command: bash -c "chmod +x /UserCenter/UserCenter && cd /UserCenter && ./UserCenter"
depends_on:
depends_on:
- mysql
ports:
ports:
- 8010:80
volumes:
volumes:
- ./apps/UserCenter:/UserCenter
- ./docker/log/UserCenter:/UserCenter/logs
iotcenter:
networks:
default:
ipv4_address: 172.172.0.70
iotcenter:
image: mcr.microsoft.com/dotnet/core/runtime-deps:3.1-focal
restart: always
environment:
environment:
- TZ=Asia/Shanghai
- ASPNETCORE_ENVIRONMENT=Docker
command: bash -c "chmod +x /IoTCenter/IoTCenter && cd /IoTCenter && ./IoTCenter"
depends_on:
depends_on:
- mysql
- redis
ports:
ports:
- 8011:80
volumes:
volumes:
- ./apps/IotCenter:/IoTCenter
- ./docker/log/IotCenter:/IotCenter/logs
jobserver:
networks:
default:
ipv4_address: 172.172.0.80
jobserver:
image: mcr.microsoft.com/dotnet/core/runtime-deps:3.1-focal
restart: always
environment:
environment:
- TZ=Asia/Shanghai
- ASPNETCORE_ENVIRONMENT=Docker
command: bash -c "sleep 3 && chmod +x /JobServer/JobServer && cd /JobServer && ./JobServer"
depends_on:
depends_on:
- mysql
ports:
ports:
- 8013:80
volumes:
- ./apps/JobServer:/JobServer
volumes:
- ./apps/JobServer:/JobServer
- ./docker/log/JobServer:/JobServer/logs
networks:
default:
ipv4_address: 172.172.0.90
webmvc:
image: nginx:1.18
restart: always
environment:
TZ: "Asia/Shanghai"
ports:
- 5001:80
volumes:
environment:
TZ: "Asia/Shanghai"
ports:
- 5001:80
volumes:
- ./apps/WebMVC/wwwroot:/usr/share/nginx/html
- ./docker/log/webmvc:/var/log/nginx
networks:
default:
ipv4_address: 172.172.0.110
webspa:
image: nginx:1.18
restart: always
environment:
TZ: "Asia/Shanghai"
ports:
- 5002:80
volumes:
environment:
TZ: "Asia/Shanghai"
ports:
- 5002:80
volumes:
- ./apps/WebSPA/wwwroot:/usr/share/nginx/html
- ./docker/log/webspa:/var/log/nginx
networks:
default:
ipv4_address: 172.172.0.120
nginx:
depends_on:
depends_on:
- usercenter
- iotcenter
- jobserver
- webmvc
- webspa
- webspa

@ -1,15 +1,11 @@
version: "3.8"
networks:
networks:
default:
services:
portainer:
image: portainer/portainer:1.23.2
restart: always
ports:
- 9002:9000
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- ./docker/data/portainer:/data
driver: bridge
ipam:
config:
- subnet: 172.172.0.0/24
services:
minio:
image: minio/minio:RELEASE.2020-05-29T14-08-49Z
restart: always
@ -17,104 +13,136 @@ services:
MINIO_ACCESS_KEY: "admin"
MINIO_SECRET_KEY: "12345678"
command: server /data
ports:
ports:
- 9000:9000
volumes:
volumes:
- ./docker/data/minio:/data
networks:
default:
ipv4_address: 172.172.0.20
mysql:
image: mysql:8.0
restart: always
environment:
environment:
- MYSQL_ROOT_PASSWORD=root
- MYSQL_DATABASE=jobserver
command: --default-authentication-plugin=mysql_native_password
healthcheck:
test: "/usr/bin/mysql --user=root --password=root --execute \"SHOW DATABASES;\""
interval: 3s
timeout: 3s
retries: 10
ports:
ports:
- 3306:3306
volumes:
volumes:
- ./docker/data/mysql:/var/lib/mysql
phpmyadmin:
image: phpmyadmin/phpmyadmin
restart: always
environment:
- PMA_HOST=mysql
- PMA_PORT=3306
ports:
- 9003:80
depends_on:
- mysql
networks:
default:
ipv4_address: 172.172.0.30
redis:
image: redis:6.0
restart: always
ports:
- 6379:6379
phpredisadmin:
image: erikdubbelboer/phpredisadmin
restart: always
environment:
- REDIS_1_HOST=redis
- REDIS_1_PORT=6379
- ADMIN_USER=admin
- ADMIN_PASS=123456
ports:
- 9004:80
depends_on:
- redis
influxdb:
networks:
default:
ipv4_address: 172.172.0.40
influxdb:
image: influxdb:1.8
restart: always
environment:
environment:
TZ: "Asia/Shanghai"
INFLUXDB_ADMIN_ENABLED: "true"
INFLUXDB_ADMIN_USER: admin
INFLUXDB_ADMIN_PASSWORD: admin
ports:
ports:
- 8086:8086
volumes:
volumes:
- ./docker/data/influxdb:/var/lib/influxdb
influxdb-web:
image: influxdb:1.2.4
restart: always
environment:
TZ: "Asia/Shanghai"
INFLUXDB_ADMIN_ENABLED: "true"
INFLUXDB_ADMIN_USER: admin
INFLUXDB_ADMIN_PASSWORD: admin
ports:
- 8083:8083
depends_on:
- influxdb
networks:
default:
ipv4_address: 172.172.0.50
srs:
image: ossrs/srs:v4.0.23
environment:
environment:
TZ: "Asia/Shanghai"
restart: always
ports:
- 1935:1935
- 1935:1935
- 8080:8080
- 1985:1985
volumes:
volumes:
- ./docker/conf/srs/srs.conf:/usr/local/srs/conf/srs.conf
- ./docker/log/srs:/usr/local/srs/objs/log
- ./docker/data/srs:/usr/local/srs/objs/nginx/html/video
nginx:
networks:
default:
ipv4_address: 172.172.0.60
nginx:
image: nginx:1.18
restart: always
environment:
environment:
TZ: "Asia/Shanghai"
ports:
ports:
- 80:80
- 443:443
volumes:
volumes:
- ./docker/conf/nginx/nginx.conf:/etc/nginx/nginx.conf
#- ./docker/conf/nginx/edusoa.key:/etc/nginx/edusoa.key
#- ./docker/conf/nginx/edusoa.pem:/etc/nginx/edusoa.pem
- ./docker/log/nginx:/var/log/nginx
depends_on:
depends_on:
- minio
- mysql
networks:
default:
ipv4_address: 172.172.0.10
portainer:
image: portainer/portainer:1.23.2
restart: always
ports:
- 9002:9000
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- ./docker/data/portainer:/data
networks:
default:
ipv4_address: 172.172.0.101
phpmyadmin:
image: phpmyadmin/phpmyadmin
restart: always
environment:
- PMA_HOST=mysql
- PMA_PORT=3306
ports:
- 9003:80
depends_on:
- mysql
networks:
default:
ipv4_address: 172.172.0.102
phpredisadmin:
image: erikdubbelboer/phpredisadmin
restart: always
environment:
- REDIS_1_HOST=redis
- REDIS_1_PORT=6379
- ADMIN_USER=admin
- ADMIN_PASS=123456
ports:
- 9004:80
depends_on:
- redis
networks:
default:
ipv4_address: 172.172.0.103
influxdb-web:
image: influxdb:1.2.4
restart: always
environment:
TZ: "Asia/Shanghai"
INFLUXDB_ADMIN_ENABLED: "true"
INFLUXDB_ADMIN_USER: admin
INFLUXDB_ADMIN_PASSWORD: admin
ports:
- 8083:8083
depends_on:
- influxdb
networks:
default:
ipv4_address: 172.172.0.104

@ -22,44 +22,44 @@ http {
location / {
if ($http_user_agent ~* "(mobile|android|ipad|iphone|ipod|tablet)") {
proxy_pass http://webspa;
proxy_pass http://172.172.0.120;
break;
}
proxy_pass http://webmvc/;
proxy_pass http://172.172.0.110/;
}
location ^~ /dfs/ {
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_pass http://minio:9000/;
proxy_pass http://172.172.0.20:9000/;
}
location ^~ /live/ {
proxy_pass http://srs:8080/live/;
proxy_pass http://172.172.0.60:8080/live/;
}
location ^~ /video/ {
proxy_pass http://srs:8080/video/;
proxy_pass http://172.172.0.60:8080/video/;
}
location ^~ /UserCenter/ {
proxy_pass http://usercenter/UserCenter/;
proxy_pass http://172.172.0.70/UserCenter/;
}
location ^~ /IoTCenter/ {
proxy_pass http://iotcenter/IoTCenter/;
proxy_pass http://172.172.0.80/IoTCenter/;
}
location ^~ /IoTCenter/hub {
proxy_pass http://iotcenter/IoTCenter/hub;
proxy_pass http://172.172.0.80/IoTCenter/hub;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
location ^~ /JobServer/ {
proxy_pass http://jobserver/JobServer/;
proxy_pass http://172.172.0.90/JobServer/;
}
error_page 500 502 503 504 /50x.html;

@ -1 +1 @@
docker-compose -f docker-compose.yml -f docker-compose.prod.yml up -d
docker-compose -f docker-compose.yml -f docker-compose.prod.yml up --remove-orphans -d

@ -1 +1 @@
docker-compose down
docker-compose down --remove-orphans
Loading…
Cancel
Save