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()
diff --git a/projects/Infrastructure/Views/Account/_Layout.cshtml b/projects/Infrastructure/Views/Account/_Layout.cshtml index 89bf4433..1c0c65f9 100644 --- a/projects/Infrastructure/Views/Account/_Layout.cshtml +++ b/projects/Infrastructure/Views/Account/_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/projects/WebSPA/wwwroot/index.html b/projects/WebSPA/wwwroot/index.html index 7bb82798..306f2d91 100644 --- a/projects/WebSPA/wwwroot/index.html +++ b/projects/WebSPA/wwwroot/index.html @@ -10,7 +10,7 @@ - 物联管控 + 物联管控
@@ -24,7 +24,7 @@
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.override.yml b/publish/src/linux-x64/publish/docker-compose.override.yml index 21b92800..83260574 100644 --- a/publish/src/linux-x64/publish/docker-compose.override.yml +++ b/publish/src/linux-x64/publish/docker-compose.override.yml @@ -1 +1,18 @@ -version: "3.8" \ No newline at end of file +version: "3.8" +services: + webmvc: + image: nginx:1.18 + restart: always + environment: + TZ: "Asia/Shanghai" + volumes: + - ../../../../projects/WebMVC/wwwroot:/usr/share/nginx/html + - ./log/webmvc:/var/log/nginx + webspa: + image: nginx:1.18 + restart: always + environment: + TZ: "Asia/Shanghai" + volumes: + - ../../../../projects/WebSPA/wwwroot:/usr/share/nginx/html + - ./log/webspa:/var/log/nginx \ 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..7343609a 100644 --- a/publish/src/linux-x64/publish/docker-compose.yml +++ b/publish/src/linux-x64/publish/docker-compose.yml @@ -1,5 +1,13 @@ version: "3.8" services: + #https://portainer.readthedocs.io/en/latest/deployment.html + 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,40 +22,85 @@ 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:v4.0.23 + 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 + - ./log/srs:/usr/local/srs/objs/log + - ./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" + command: bash -c "chmod +x /UserCenter/UserCenter && cd /UserCenter && ./UserCenter" depends_on: - mysql - command: bash -c "chmod +x /UserCenter/UserCenter && cd /UserCenter && ./UserCenter" volumes: - ./UserCenter:/UserCenter iotcenter: image: mcr.microsoft.com/dotnet/core/runtime-deps:3.1-focal restart: always + environment: + TZ: "Asia/Shanghai" + command: bash -c "chmod +x /IoTCenter/IoTCenter && cd /IoTCenter && ./IoTCenter" 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" + command: bash -c "sleep 3 && chmod +x /JobServer/JobServer && cd /JobServer && ./JobServer" + depends_on: + - mysql + volumes: + - ./JobServer:/JobServer + webmvc: + image: nginx:1.18 + restart: always + environment: + TZ: "Asia/Shanghai" + volumes: + - ./WebMVC/wwwroot:/usr/share/nginx/html + - ./log/webmvc:/var/log/nginx + webspa: + image: nginx:1.18 + restart: always + environment: + TZ: "Asia/Shanghai" + volumes: + - ./WebSPA/wwwroot:/usr/share/nginx/html + - ./log/webspa:/var/log/nginx + nginx: + image: nginx:1.18 + restart: always + environment: + TZ: "Asia/Shanghai" + ports: + - 80:80 + - 443:443 + depends_on: + - webmvc + - webspa + - usercenter + - iotcenter + 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..9fb25577 100644 --- a/publish/src/linux-x64/publish/nginx/nginx.conf +++ b/publish/src/linux-x64/publish/nginx/nginx.conf @@ -45,27 +45,26 @@ 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; + proxy_pass http://webspa; break; } - proxy_pass http://localhost:5001/; + proxy_pass http://webmvc/; } 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://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..6b31ae33 --- /dev/null +++ b/publish/src/linux-x64/publish/srs/conf/srs.conf @@ -0,0 +1,65 @@ +listen 1935; +max_connections 1000; +srs_log_tank file; +srs_log_file ./objs/log/srs.log; +daemon off; +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 off; + 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; + } +}