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/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; + } +}