diff --git a/projects/Infrastructure/Areas/Admin/Views/Shared/_Layout.cshtml b/projects/Infrastructure/Areas/Admin/Views/Shared/_Layout.cshtml
index eb9e36a7..3c0e000a 100644
--- a/projects/Infrastructure/Areas/Admin/Views/Shared/_Layout.cshtml
+++ b/projects/Infrastructure/Areas/Admin/Views/Shared/_Layout.cshtml
@@ -95,7 +95,7 @@
@Html.Raw(string.Format(copyright, DateTime.Now.Year.ToString()))
-
v @Helper.Instance.GetVersion() build @Helper.Instance.GetAssemblyVersion()
+
v @Helper.Instance.GetVersion()
@if (User.Identity.IsAuthenticated)
{
管理
diff --git a/projects/Infrastructure/Views/Shared/_Layout.cshtml b/projects/Infrastructure/Views/Shared/_Layout.cshtml
index b5bc3647..cbc105c8 100644
--- a/projects/Infrastructure/Views/Shared/_Layout.cshtml
+++ b/projects/Infrastructure/Views/Shared/_Layout.cshtml
@@ -92,7 +92,7 @@
@Html.Raw(string.Format(copyright, DateTime.Now.Year.ToString()))
-
v @Helper.Instance.GetVersion() build @Helper.Instance.GetAssemblyVersion()
+
v @Helper.Instance.GetVersion()
@if (User.Identity.IsAuthenticated)
{
管理
diff --git a/projects/IoT.Shared/Services/IoTCenter/IoTCenterHub.cs b/projects/IoT.Shared/Services/IoTCenter/IoTCenterHub.cs
index d6ca06ce..3cc4fc53 100644
--- a/projects/IoT.Shared/Services/IoTCenter/IoTCenterHub.cs
+++ b/projects/IoT.Shared/Services/IoTCenter/IoTCenterHub.cs
@@ -105,7 +105,7 @@ namespace IoTCenter.Services
var organ = Context.Items["organ"] as string;
if (!string.IsNullOrEmpty(organ))
{
- this._publisher.Publish(new NodeClientConnectedEvent { NodeNumber=node.Number,OrganNumber=organ });
+ this._publisher.Publish(new NodeClientConnectedEvent { NodeNumber = node.Number, OrganNumber = organ });
}
}
catch (Exception ex)
@@ -308,7 +308,7 @@ namespace IoTCenter.Services
{
var device = this._deviceRepo.ReadOnlyTable().Include(o => o.Node).FirstOrDefault(o => o.Id == model.DeviceId);
var number = device.Node.Number;
- var url = this._cfg.GetValue
("srs", "http://localhost:1985");
+ var url = this._cfg.GetConnectionString("srs");
var method = Methods.UpdateCamera;
if (model.Value == "是")
{
diff --git a/projects/IoTCenter/Program.cs b/projects/IoTCenter/Program.cs
index d8108e1c..fb10968b 100644
--- a/projects/IoTCenter/Program.cs
+++ b/projects/IoTCenter/Program.cs
@@ -57,7 +57,7 @@ namespace IoTCenter
Log.Logger = new LoggerConfiguration().WriteTo.Console().CreateLogger();
}
o.AddSerilog();
- Log.Logger.Information("start...");
+ Log.Logger.Information(string.IsNullOrEmpty(config["docker"]) ? "start..." : "docker...");
})
.UseStartup()
.Build()
diff --git a/projects/Version.cs b/projects/Version.cs
index d566ab42..010c1212 100644
--- a/projects/Version.cs
+++ b/projects/Version.cs
@@ -1,4 +1,4 @@
using System.Reflection;
-[assembly: AssemblyVersion("1.0.0.*")]
+[assembly: AssemblyVersion("1.0.0.0")]
[assembly: AssemblyInformationalVersion("1.0.0.515")]
\ No newline at end of file
diff --git a/publish/src/linux-x64/publish/.gitignore b/publish/src/linux-x64/publish/.gitignore
index ab751823..048c5f08 100644
--- a/publish/src/linux-x64/publish/.gitignore
+++ b/publish/src/linux-x64/publish/.gitignore
@@ -1,8 +1,10 @@
-influxdb
+portainer/data
mysql
+influxdb
+srs/objs
log
UserCenter
IoTCenter
JobServer
WebMVC
-WebSPA
+WebSPA
\ No newline at end of file
diff --git a/publish/src/linux-x64/publish/docker-compose.yml b/publish/src/linux-x64/publish/docker-compose.yml
index 5b1c0b74..31b51de0 100644
--- a/publish/src/linux-x64/publish/docker-compose.yml
+++ b/publish/src/linux-x64/publish/docker-compose.yml
@@ -1,5 +1,12 @@
version: "3.8"
services:
+ portainer:
+ image: portainer/portainer:1.23.2
+ ports:
+ - 9000:9000
+ volumes:
+ - /var/run/docker.sock:/var/run/docker.sock
+ - ./portainer/data:/data
mysql:
image: mysql:8.0
restart: always
@@ -14,29 +21,28 @@ services:
restart: always
hostname: influxdb
environment:
+ TZ: "Asia/Shanghai"
INFLUXDB_ADMIN_ENABLED: "true"
INFLUXDB_ADMIN_USER: admin
INFLUXDB_ADMIN_PASSWORD: admin
volumes:
- ./influxdb:/var/lib/influxdb
- nginx:
- image: nginx:1.18
+ srs:
+ image: ossrs/srs:v3.0-b4
+ environment:
+ TZ: "Asia/Shanghai"
restart: always
- hostname: nginx
- ports:
- - 80:80
- - 443:443
- links:
- - usercenter
- - iotcenter
+ ports:
+ - 1935:1935
+ - 1985:1985
volumes:
- - ./nginx/nginx.conf:/etc/nginx/nginx.conf
- - ./nginx/edusoa.key:/etc/nginx/edusoa.key
- - ./nginx/edusoa.pem:/etc/nginx/edusoa.pem
- - ./log/nginx:/var/log/nginx
+ - ./srs/conf/srs.conf:/usr/local/srs/conf/srs.conf
+ - ./srs/objs/nginx/html/video:/usr/local/srs/objs/nginx/html/video
usercenter:
image: mcr.microsoft.com/dotnet/core/runtime-deps:3.1-focal
restart: always
+ environment:
+ TZ: "Asia/Shanghai"
depends_on:
- mysql
command: bash -c "chmod +x /UserCenter/UserCenter && cd /UserCenter && ./UserCenter"
@@ -45,9 +51,40 @@ services:
iotcenter:
image: mcr.microsoft.com/dotnet/core/runtime-deps:3.1-focal
restart: always
+ environment:
+ TZ: "Asia/Shanghai"
depends_on:
- mysql
- influxdb
command: bash -c "chmod +x /IoTCenter/IoTCenter && cd /IoTCenter && ./IoTCenter"
volumes:
- - ./IotCenter:/IoTCenter
\ No newline at end of file
+ - ./IotCenter:/IoTCenter
+ jobserver:
+ image: mcr.microsoft.com/dotnet/core/runtime-deps:3.1-focal
+ restart: always
+ environment:
+ TZ: "Asia/Shanghai"
+ depends_on:
+ - mysql
+ command: bash -c "sleep 3 && chmod +x /JobServer/JobServer && cd /JobServer && ./JobServer"
+ volumes:
+ - ./JobServer:/JobServer
+ nginx:
+ image: nginx:1.18
+ restart: always
+ hostname: nginx
+ environment:
+ TZ: "Asia/Shanghai"
+ ports:
+ - 80:80
+ - 443:443
+ depends_on:
+ - srs
+ - usercenter
+ - iotcenter
+ - jobserver
+ volumes:
+ - ./nginx/nginx.conf:/etc/nginx/nginx.conf
+ - ./nginx/edusoa.key:/etc/nginx/edusoa.key
+ - ./nginx/edusoa.pem:/etc/nginx/edusoa.pem
+ - ./log/nginx:/var/log/nginx
\ No newline at end of file
diff --git a/publish/src/linux-x64/publish/nginx/nginx.conf b/publish/src/linux-x64/publish/nginx/nginx.conf
index ced95072..486fe163 100644
--- a/publish/src/linux-x64/publish/nginx/nginx.conf
+++ b/publish/src/linux-x64/publish/nginx/nginx.conf
@@ -45,7 +45,6 @@ http {
ssl_prefer_server_ciphers on;
location / {
- #proxy_set_header Host $host:$server_port;
if ($http_user_agent ~* "(mobile|android|ipad|iphone|ipod|tablet)") {
proxy_pass http://localhost:5002;
break;
@@ -57,15 +56,15 @@ http {
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://go-fastdfs/;
+ proxy_pass http://minio/;
}
location ^~ /live/ {
- proxy_pass http://localhost:8080/live/;
+ proxy_pass http://srs:8080/live/;
}
location ^~ /video/ {
- proxy_pass http://localhost:8080/video/;
+ proxy_pass http://srs:8080/video/;
}
location ^~ /UserCenter/ {
@@ -90,7 +89,7 @@ http {
}
location ^~ /JobServer/ {
- proxy_pass http://localhost:8013/JobServer/;
+ proxy_pass http://jobserver/JobServer/;
proxy_set_header Host $host:$server_port;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
diff --git a/publish/src/linux-x64/publish/srs/conf/srs.conf b/publish/src/linux-x64/publish/srs/conf/srs.conf
new file mode 100644
index 00000000..c9aceff8
--- /dev/null
+++ b/publish/src/linux-x64/publish/srs/conf/srs.conf
@@ -0,0 +1,65 @@
+listen 1935;
+daemon off;
+max_connections 1000;
+srs_log_tank file;
+srs_log_file ./objs/srs.log;
+http_api {
+ enabled on;
+ listen 1985;
+ raw_api {
+ enabled on;
+ allow_reload on;
+ allow_query on;
+ allow_update on;
+ }
+}
+http_server {
+ enabled on;
+ listen 8080;
+ dir ./objs/nginx/html;
+}
+stats {
+ network 0;
+ disk sda sdb xvda xvdb;
+}
+vhost __defaultVhost__ {
+ transcode live {
+ enabled on;
+ ffmpeg ./objs/ffmpeg/bin/ffmpeg;
+ engine snapshot {
+ enabled on;
+ iformat flv;
+ vfilter {
+ vf fps=1;
+ }
+ vcodec png;
+ vparams {
+ vframes 1;
+ }
+ acodec an;
+ oformat image2;
+ output ./objs/nginx/html/[app]/[stream].png;
+ }
+ }
+ http_remux {
+ enabled on;
+ mount [vhost]/[app]/[stream].flv;
+ }
+ hls {
+ enabled on;
+ hls_fragment 3;
+ hls_window 10;
+ hls_path ./objs/nginx/html;
+ hls_m3u8_file [app]/[stream].m3u8;
+ hls_ts_file [app]/[stream]-[seq].ts;
+ }
+ dvr {
+ enabled on;
+ dvr_apply none;
+ dvr_path ./objs/nginx/html/video/[app].[stream].[timestamp].mp4;
+ }
+ http_hooks {
+ enabled on;
+ on_dvr http://iotcenter/IoTCenter/api/v1/Srs/OnDvr;
+ }
+}