diff --git a/.github/workflows/DockerHubDescription.yml b/.github/workflows/DockerHubDescription.yml index a51a30d..723164d 100644 --- a/.github/workflows/DockerHubDescription.yml +++ b/.github/workflows/DockerHubDescription.yml @@ -11,7 +11,7 @@ on: concurrency: group: ${{ github.workflow }}-${{ github.ref }} cancel-in-progress: true - + jobs: description: name: "Update Docker Hub Description" @@ -22,6 +22,8 @@ jobs: matrix: repos: [ + ptr727/nxgo, + ptr727/nxgo-lsio, ptr727/nxmeta, ptr727/nxmeta-lsio, ptr727/nxwitness, diff --git a/CreateMatrix/JSON/Version.schema.json b/CreateMatrix/JSON/Version.schema.json index 12d5c56..4e46dfb 100644 --- a/CreateMatrix/JSON/Version.schema.json +++ b/CreateMatrix/JSON/Version.schema.json @@ -9,6 +9,7 @@ "Product": { "enum": [ "None", + "NxGo", "NxMeta", "NxWitness", "DWSpectrum" @@ -57,4 +58,4 @@ "title": "CreateMatrix Version Schema", "$id": "https://raw.githubusercontent.com/ptr727/NxWitness/main/CreateMatrix/JSON/Version.schema.json", "$schema": "https://json-schema.org/draft/2020-12/schema" -} \ No newline at end of file +} diff --git a/CreateMatrix/ProductInfo.cs b/CreateMatrix/ProductInfo.cs index 9003f7c..b7a6e75 100644 --- a/CreateMatrix/ProductInfo.cs +++ b/CreateMatrix/ProductInfo.cs @@ -12,6 +12,7 @@ public class ProductInfo public enum ProductType { None, + NxGo, NxMeta, NxWitness, DWSpectrum, @@ -35,6 +36,7 @@ public static string GetRelease(ProductType productType) { return productType switch { + ProductType.NxGo => "nxgo", ProductType.NxMeta => "metavms", ProductType.NxWitness => "default", ProductType.DWSpectrum => "digitalwatchdog", @@ -48,6 +50,7 @@ public static string GetCompany(ProductType productType) { return productType switch { + ProductType.NxGo => "networkoptix", ProductType.NxMeta => "networkoptix-metavms", ProductType.NxWitness => "networkoptix", ProductType.DWSpectrum => "digitalwatchdog", @@ -61,6 +64,7 @@ public static string GetDescription(ProductType productType) { return productType switch { + ProductType.NxGo => "Nx Go VMS", ProductType.NxMeta => "Nx Meta VMS", ProductType.NxWitness => "Nx Witness VMS", ProductType.DWSpectrum => "DW Spectrum IPVMS", @@ -93,7 +97,7 @@ public void GetVersions() // Match the logic with ReleasesTests.CreateProductInfo() // TODO: Refactor to reduce duplication and chance of divergence - // Get version information using releases.json and package.json + // Get version information using releases.json and package.json Log.Logger.Information("{Product}: Getting online release information...", Product); try { @@ -135,7 +139,7 @@ public void GetVersions() versionInfo.UriArm64 = $"https://updates.networkoptix.com/{GetRelease()}/{buildNumber}/{packageArm64.File}"; // Verify and add to list - if (VerifyVersion(versionInfo)) + if (VerifyVersion(versionInfo)) Versions.Add(versionInfo); } @@ -154,9 +158,9 @@ private bool VerifyVersion(VersionInfo versionInfo) // Static rules: // Ubuntu Jammy requires version 5.1 or later - if (versionInfo.CompareTo("5.1") >= 0) + if (versionInfo.CompareTo("5.1") >= 0) return true; - + Log.Logger.Warning("{Product}:{Version} : Ubuntu Jammy requires v5.1+", Product, versionInfo.Version); return false; } @@ -177,9 +181,9 @@ public void AddLabel(VersionInfo versionInfo, VersionInfo.LabelType label) } // Is this version larger than the other version - if (versionInfo.CompareTo(existingVersion) <= 0) + if (versionInfo.CompareTo(existingVersion) <= 0) return; - + Log.Logger.Warning("{Product}: Replacing {Label} from {ExistingVersion} to {NewVersion}", Product, label, existingVersion.Version, versionInfo.Version); // Remove from other version and add to this version @@ -250,7 +254,7 @@ public void VerifyUrls() { using HttpClient httpClient = new(); foreach (var versionUri in Versions) - { + { // Will throw on error VerifyUrl(httpClient, versionUri.UriX64); VerifyUrl(httpClient, versionUri.UriArm64); @@ -301,4 +305,4 @@ public void Verify() // Verify labels VerifyLabels(); } -} \ No newline at end of file +} diff --git a/Docker/NxGo-LSIO.Dockerfile b/Docker/NxGo-LSIO.Dockerfile new file mode 100644 index 0000000..0ef79bb --- /dev/null +++ b/Docker/NxGo-LSIO.Dockerfile @@ -0,0 +1,111 @@ +# Dockerfile created by CreateMatrix, do not modify by hand +# Product: NxGo +# Description: Nx Go VMS +# Company: networkoptix +# Release: nxgo +# LSIO: True + +# https://support.networkoptix.com/hc/en-us/articles/205313168-Nx-Witness-Operating-System-Support +# Latest Ubuntu supported for v5.1 is Jammy +FROM lsiobase/ubuntu:jammy + +# Labels +ARG LABEL_NAME="NxGo-LSIO" +ARG LABEL_DESCRIPTION="Nx Go VMS" +ARG LABEL_VERSION="6.0.0.38908" + +# Download URL and version +# Current values are defined by the build pipeline +ARG DOWNLOAD_X64_URL="https://updates.networkoptix.com/nxgo/39242/linux/nxgo-server-6.0.0.38908-linux_x64.deb" +ARG DOWNLOAD_ARM64_URL="https://updates.networkoptix.com/nxgo/39242/arm/nxgo-server-6.0.0.38908-linux_arm64.deb" +ARG DOWNLOAD_VERSION="6.0.0.38908" + +# Used for ${COMPANY_NAME} setting the server user and install directory +ARG RUNTIME_NAME="networkoptix" + +# Global builder variables +# https://docs.docker.com/engine/reference/builder/#automatic-platform-args-in-the-global-scope +ARG \ + # Platform of the build result. Eg linux/amd64, linux/arm/v7, windows/amd64 + TARGETPLATFORM \ + # Architecture component of TARGETPLATFORM + TARGETARCH \ + # Platform of the node performing the build + BUILDPLATFORM + +# The RUN wget command will be cached unless we change the cache tag +# Use the download version for the cache tag +ARG CACHE_DATE=${DOWNLOAD_VERSION} + +# Prevent EULA and confirmation prompts in installers +ARG DEBIAN_FRONTEND=noninteractive + +# Media server user and directory name +ENV COMPANY_NAME=${RUNTIME_NAME} + +# Labels +LABEL name=${LABEL_NAME}-${DOWNLOAD_VERSION} \ + description=${LABEL_DESCRIPTION} \ + version=${LABEL_VERSION} \ + maintainer="Pieter Viljoen " + +# Install required tools and utilities +RUN apt-get update \ + && apt-get upgrade --yes \ + && apt-get install --no-install-recommends --yes \ + ca-certificates \ + unzip \ + wget + +# Download the installer file +RUN mkdir -p /temp +COPY download.sh /temp/download.sh +# Set the working directory to /temp +WORKDIR /temp +RUN chmod +x download.sh \ + && ./download.sh + +# LSIO maps the host PUID and PGID environment variables to "abc" in the container. +# The mediaserver calls "chown ${COMPANY_NAME}" at runtime +# We have to match the ${COMPANY_NAME} username with the LSIO "abc" usernames +# LSIO does not officially support changing the "abc" username +# https://discourse.linuxserver.io/t/changing-abc-container-user/3208 +# https://github.com/linuxserver/docker-baseimage-ubuntu/blob/jammy/root/etc/s6-overlay/s6-rc.d/init-adduser/run +# Change user "abc" to ${COMPANY_NAME} +RUN usermod -l ${COMPANY_NAME} abc \ +# Change group "abc" to ${COMPANY_NAME} + && groupmod -n ${COMPANY_NAME} abc \ +# Replace "abc" with ${COMPANY_NAME} + && sed -i "s/abc/\${COMPANY_NAME}/g" /etc/s6-overlay/s6-rc.d/init-adduser/run + +# Install the mediaserver and dependencies +RUN apt-get update \ + && apt-get install --no-install-recommends --yes \ + gdb \ + ./vms_server.deb \ +# Cleanup + && apt-get clean \ + && apt-get autoremove --purge \ + && rm -rf /var/lib/apt/lists/* \ + && rm -rf /temp + +# Set ownership permissions +RUN chown --verbose ${COMPANY_NAME}:${COMPANY_NAME} /opt/${COMPANY_NAME}/mediaserver/bin \ + && chown --verbose ${COMPANY_NAME}:${COMPANY_NAME} /opt/${COMPANY_NAME}/mediaserver/bin/external.dat + +# Copy etc init and services files +# https://github.com/just-containers/s6-overlay#container-environment +# https://www.linuxserver.io/blog/how-is-container-formed +COPY s6-overlay /etc/s6-overlay + +# Expose port 7001 +EXPOSE 7001 + +# Create mount points +# Links will be created at runtime in LSIO/etc/s6-overlay/s6-rc.d/init-nx-relocate/run +# /opt/${COMPANY_NAME}/mediaserver/etc -> /config/etc +# /opt/${COMPANY_NAME}/mediaserver/var -> /config/var +# /root/.config/nx_ini links -> /config/ini +# /config is for configuration +# /media is for media recording +VOLUME /config /media diff --git a/Docker/NxGo.Dockerfile b/Docker/NxGo.Dockerfile new file mode 100644 index 0000000..168d4ce --- /dev/null +++ b/Docker/NxGo.Dockerfile @@ -0,0 +1,103 @@ +# Dockerfile created by CreateMatrix, do not modify by hand +# Product: NxGo +# Description: Nx Go VMS +# Company: networkoptix +# Release: nxgo +# LSIO: False + +# https://support.networkoptix.com/hc/en-us/articles/205313168-Nx-Witness-Operating-System-Support +# Latest Ubuntu supported for v5.1 is Jammy +FROM ubuntu:jammy + +# Labels +ARG LABEL_NAME="NxGo" +ARG LABEL_DESCRIPTION="Nx Go VMS" +ARG LABEL_VERSION="6.0.0.38908" + +# Download URL and version +# Current values are defined by the build pipeline +ARG DOWNLOAD_X64_URL="https://updates.networkoptix.com/nxgo/39242/linux/nxgo-server-6.0.0.38908-linux_x64.deb" +ARG DOWNLOAD_ARM64_URL="https://updates.networkoptix.com/nxgo/39242/arm/nxgo-server-6.0.0.38908-linux_arm64.deb" +ARG DOWNLOAD_VERSION="6.0.0.38908" + +# Used for ${COMPANY_NAME} setting the server user and install directory +ARG RUNTIME_NAME="networkoptix" + +# Global builder variables +# https://docs.docker.com/engine/reference/builder/#automatic-platform-args-in-the-global-scope +ARG \ + # Platform of the build result. Eg linux/amd64, linux/arm/v7, windows/amd64 + TARGETPLATFORM \ + # Architecture component of TARGETPLATFORM + TARGETARCH \ + # Platform of the node performing the build + BUILDPLATFORM + +# The RUN wget command will be cached unless we change the cache tag +# Use the download version for the cache tag +ARG CACHE_DATE=${DOWNLOAD_VERSION} + +# Prevent EULA and confirmation prompts in installers +ARG DEBIAN_FRONTEND=noninteractive + +# Media server user and directory name +ENV COMPANY_NAME=${RUNTIME_NAME} + +# Labels +LABEL name=${LABEL_NAME}-${DOWNLOAD_VERSION} \ + description=${LABEL_DESCRIPTION} \ + version=${LABEL_VERSION} \ + maintainer="Pieter Viljoen " + +# Install required tools and utilities +RUN apt-get update \ + && apt-get upgrade --yes \ + && apt-get install --no-install-recommends --yes \ + ca-certificates \ + unzip \ + wget + +# Download the installer file +RUN mkdir -p /temp +COPY download.sh /temp/download.sh +# Set the working directory to /temp +WORKDIR /temp +RUN chmod +x download.sh \ + && ./download.sh + +# Install the mediaserver and dependencies +RUN apt-get update \ + && apt-get install --no-install-recommends --yes \ + gdb \ + sudo \ + ./vms_server.deb \ +# Cleanup + && apt-get clean \ + && apt-get autoremove --purge \ + && rm -rf /var/lib/apt/lists/* \ + && rm -rf /temp + +# Add the mediaserver ${COMPANY_NAME} user to the sudoers group +# Only allow sudo no password access to the root-tool +RUN echo "${COMPANY_NAME} ALL = NOPASSWD: /opt/${COMPANY_NAME}/mediaserver/bin/root-tool" > /etc/sudoers.d/${COMPANY_NAME} + +# Copy the entrypoint.sh launch script +# entrypoint.sh will run the mediaserver and root-tool +COPY entrypoint.sh /opt/entrypoint.sh +RUN chmod +x /opt/entrypoint.sh + +# Run the entrypoint as the mediaserver ${COMPANY_NAME} user +# Note that this user exists in the container and does not directly map to a user on the host +USER ${COMPANY_NAME} + +# Runs entrypoint.sh on container start +ENTRYPOINT ["/opt/entrypoint.sh"] + +# Expose port 7001 +EXPOSE 7001 + +# Link volumes directly, e.g. +# /mnt/config/etc:opt/networkoptix/mediaserver/etc +# /mnt/config/nx_ini:/home/networkoptix/.config/nx_ini +# /mnt/config/var:/opt/networkoptix/mediaserver/var +# /mnt/media:/media diff --git a/Make/Build.sh b/Make/Build.sh index 28b6ba6..4bfb3c9 100755 --- a/Make/Build.sh +++ b/Make/Build.sh @@ -50,6 +50,7 @@ function BuildDockerfile { docker buildx create --name "nxwitness" --use || true # Build Dockerfiles +BuildDockerfile "NxGo" BuildDockerfile "NxMeta" BuildDockerfile "NxMeta-LSIO" BuildDockerfile "NxWitness" diff --git a/Make/Clean.sh b/Make/Clean.sh index 2ae6eae..2c76a86 100755 --- a/Make/Clean.sh +++ b/Make/Clean.sh @@ -11,6 +11,7 @@ function DeleteImage { ./Down.sh # Delete images +DeleteImage "NxGo" DeleteImage "NxMeta" DeleteImage "NxMeta-LSIO" DeleteImage "NxWitness" diff --git a/Make/Instructions.sh b/Make/Instructions.sh index c4d3324..c146f5b 100755 --- a/Make/Instructions.sh +++ b/Make/Instructions.sh @@ -2,11 +2,13 @@ # Instructions echo "Ctrl-Click on links to launch web UI in browser" -echo "Nx Meta:" "https://$HOSTNAME:7101/" -echo "Nx Meta LSIO:" "https://$HOSTNAME:7201/" -echo "Nx Witness:" "https://$HOSTNAME:7102/" -echo "Nx Witness LSIO:" "https://$HOSTNAME:7202/" -echo "DW Spectrum:" "https://$HOSTNAME:7103/" -echo "DW Spectrum LSIO:" "https://$HOSTNAME:7203/" -echo "Wisenet WAVE:" "https://$HOSTNAME:7104/" -echo "Wisenet WAVE LSIO:" "https://$HOSTNAME:7204/" +echo "Nx Go:" "https://$HOSTNAME:7101/" +echo "Nx Go LSIO:" "https://$HOSTNAME:7201/" +echo "Nx Meta:" "https://$HOSTNAME:7102/" +echo "Nx Meta LSIO:" "https://$HOSTNAME:7202/" +echo "Nx Witness:" "https://$HOSTNAME:7103/" +echo "Nx Witness LSIO:" "https://$HOSTNAME:7203/" +echo "DW Spectrum:" "https://$HOSTNAME:7104/" +echo "DW Spectrum LSIO:" "https://$HOSTNAME:7204/" +echo "Wisenet WAVE:" "https://$HOSTNAME:7105/" +echo "Wisenet WAVE LSIO:" "https://$HOSTNAME:7205/" diff --git a/Make/Matrix.json b/Make/Matrix.json index fbd0496..11520b9 100644 --- a/Make/Matrix.json +++ b/Make/Matrix.json @@ -2,6 +2,64 @@ "$schema": "https://raw.githubusercontent.com/ptr727/NxWitness/main/CreateMatrix/JSON/Matrix.schema.json", "SchemaVersion": 2, "Images": [ + { + "Name": "NxGo", + "Branch": "main", + "CacheScope": "default", + "Tags": [ + "docker.io/ptr727/nxgo:5.1.5.39242", + "docker.io/ptr727/nxgo:latest", + "docker.io/ptr727/nxgo:stable" + ], + "Args": [ + "DOWNLOAD_ARM64_URL=https://updates.networkoptix.com/nxgo/39242/arm/nxgo-server-5.1.5.39242-linux_arm64.deb", + "DOWNLOAD_VERSION=5.1.5.39242", + "DOWNLOAD_X64_URL=https://updates.networkoptix.com/nxgo/39242/linux/nxgo-server-5.1.5.39242-linux_x64.deb" + ] + }, + { + "Name": "NxGo", + "Branch": "main", + "CacheScope": "default", + "Tags": [ + "docker.io/ptr727/nxgo:6.0.0.39148", + "docker.io/ptr727/nxgo:rc" + ], + "Args": [ + "DOWNLOAD_ARM64_URL=https://updates.networkoptix.com/nxgo/39148/arm/nxgo-server-6.0.0.39148-linux_arm64-rc.deb", + "DOWNLOAD_VERSION=6.0.0.39148", + "DOWNLOAD_X64_URL=https://updates.networkoptix.com/nxgo/39148/linux/nxgo-server-6.0.0.39148-linux_x64-rc.deb" + ] + }, + { + "Name": "NxGo-LSIO", + "Branch": "main", + "CacheScope": "lsio", + "Tags": [ + "docker.io/ptr727/nxgo-lsio:5.1.5.39242", + "docker.io/ptr727/nxgo-lsio:latest", + "docker.io/ptr727/nxgo-lsio:stable" + ], + "Args": [ + "DOWNLOAD_ARM64_URL=https://updates.networkoptix.com/nxgo/39242/arm/nxgo-server-5.1.5.39242-linux_arm64.deb", + "DOWNLOAD_VERSION=5.1.5.39242", + "DOWNLOAD_X64_URL=https://updates.networkoptix.com/nxgo/39242/linux/nxgo-server-5.1.5.39242-linux_x64.deb" + ] + }, + { + "Name": "NxGo-LSIO", + "Branch": "main", + "CacheScope": "lsio", + "Tags": [ + "docker.io/ptr727/nxgo-lsio:6.0.0.39148", + "docker.io/ptr727/nxgo-lsio:rc" + ], + "Args": [ + "DOWNLOAD_ARM64_URL=https://updates.networkoptix.com/nxgo/39148/arm/nxgo-server-6.0.0.39148-linux_arm64-rc.deb", + "DOWNLOAD_VERSION=6.0.0.39148", + "DOWNLOAD_X64_URL=https://updates.networkoptix.com/nxgo/39148/linux/nxgo-server-6.0.0.39148-linux_x64-rc.deb" + ] + }, { "Name": "NxMeta", "Branch": "main", @@ -286,6 +344,66 @@ "DOWNLOAD_X64_URL=https://updates.networkoptix.com/hanwha/39148/wave-server_update-6.0.0.39148-linux_x64-rc.zip" ] }, + { + "Name": "NxGo", + "Branch": "develop", + "CacheScope": "default", + "Tags": [ + "docker.io/ptr727/nxgo:develop", + "docker.io/ptr727/nxgo:develop-5.1.5.39242", + "docker.io/ptr727/nxgo:develop-latest", + "docker.io/ptr727/nxgo:develop-stable" + ], + "Args": [ + "DOWNLOAD_ARM64_URL=https://updates.networkoptix.com/nxgo/39242/arm/nxgo-server-5.1.5.39242-linux_arm64.deb", + "DOWNLOAD_VERSION=5.1.5.39242", + "DOWNLOAD_X64_URL=https://updates.networkoptix.com/nxgo/39242/linux/nxgo-server-5.1.5.39242-linux_x64.deb" + ] + }, + { + "Name": "NxGo", + "Branch": "develop", + "CacheScope": "default", + "Tags": [ + "docker.io/ptr727/nxgo:develop-6.0.0.39148", + "docker.io/ptr727/nxgo:develop-rc" + ], + "Args": [ + "DOWNLOAD_ARM64_URL=https://updates.networkoptix.com/nxgo/39148/arm/nxgo-server-6.0.0.39148-linux_arm64-rc.deb", + "DOWNLOAD_VERSION=6.0.0.39148", + "DOWNLOAD_X64_URL=https://updates.networkoptix.com/nxgo/39148/linux/nxgo-server-6.0.0.39148-linux_x64-rc.deb" + ] + }, + { + "Name": "NxGo-LSIO", + "Branch": "develop", + "CacheScope": "lsio", + "Tags": [ + "docker.io/ptr727/nxgo-lsio:develop", + "docker.io/ptr727/nxgo-lsio:develop-5.1.5.39242", + "docker.io/ptr727/nxgo-lsio:develop-latest", + "docker.io/ptr727/nxgo-lsio:develop-stable" + ], + "Args": [ + "DOWNLOAD_ARM64_URL=https://updates.networkoptix.com/nxgo/39242/arm/nxgo-server-5.1.5.39242-linux_arm64.deb", + "DOWNLOAD_VERSION=5.1.5.39242", + "DOWNLOAD_X64_URL=https://updates.networkoptix.com/nxgo/39242/linux/nxgo-server-5.1.5.39242-linux_x64.deb" + ] + }, + { + "Name": "NxGo-LSIO", + "Branch": "develop", + "CacheScope": "lsio", + "Tags": [ + "docker.io/ptr727/nxgo-lsio:develop-6.0.0.39148", + "docker.io/ptr727/nxgo-lsio:develop-rc" + ], + "Args": [ + "DOWNLOAD_ARM64_URL=https://updates.networkoptix.com/nxgo/39148/arm/nxgo-server-6.0.0.39148-linux_arm64-rc.deb", + "DOWNLOAD_VERSION=6.0.0.39148", + "DOWNLOAD_X64_URL=https://updates.networkoptix.com/nxgo/39148/linux/nxgo-server-6.0.0.39148-linux_x64-rc.deb" + ] + }, { "Name": "NxMeta", "Branch": "develop", @@ -579,4 +697,4 @@ ] } ] -} \ No newline at end of file +} diff --git a/Make/Test-develop.yml b/Make/Test-develop.yml index ac42d60..baa286e 100644 --- a/Make/Test-develop.yml +++ b/Make/Test-develop.yml @@ -2,6 +2,17 @@ volumes: + # Dockerfile : NxGo + test_nxgo_etc: + test_nxgo_ini: + test_nxgo_var: + test_nxgo_media: + + + # Dockerfile : NxGo-LSIO + test_nxgo-lsio_config: + test_nxgo-lsio_media: + # Dockerfile : NxMeta test_nxmeta_etc: test_nxmeta_ini: @@ -49,8 +60,40 @@ volumes: services: - # Dockerfile : NxMeta + # Dockerfile : NxGo # Port : 7101 + nxgo: + image: docker.io/ptr727/nxgo:develop + container_name: nxgo-container + restart: unless-stopped + environment: + - TZ=Americas/Los_Angeles + network_mode: bridge + ports: + - 7101:7001 + volumes: + - test_nxgo_etc:/opt/networkoptix/mediaserver/etc + - test_nxgo_ini:/home/networkoptix/.config/nx_ini + - test_nxgo_var:/opt/networkoptix/mediaserver/var + - test_nxgo_media:/media + + # Dockerfile : NxGo-LSIO + # Port : 7201 + nxgo-lsio: + image: docker.io/ptr727/nxgo-lsio:develop + container_name: nxgo-lsio-container + restart: unless-stopped + environment: + - TZ=Americas/Los_Angeles + network_mode: bridge + ports: + - 7201:7001 + volumes: + - test_nxgo-lsio_config:/config + - test_nxgo-lsio_media:/media + + # Dockerfile : NxMeta + # Port : 7102 nxmeta: image: docker.io/ptr727/nxmeta:develop container_name: nxmeta-container @@ -59,7 +102,7 @@ services: - TZ=Americas/Los_Angeles network_mode: bridge ports: - - 7101:7001 + - 7102:7001 volumes: - test_nxmeta_etc:/opt/networkoptix-metavms/mediaserver/etc - test_nxmeta_ini:/home/networkoptix-metavms/.config/nx_ini @@ -67,7 +110,7 @@ services: - test_nxmeta_media:/media # Dockerfile : NxMeta-LSIO - # Port : 7201 + # Port : 7202 nxmeta-lsio: image: docker.io/ptr727/nxmeta-lsio:develop container_name: nxmeta-lsio-container @@ -76,13 +119,13 @@ services: - TZ=Americas/Los_Angeles network_mode: bridge ports: - - 7201:7001 + - 7202:7001 volumes: - test_nxmeta-lsio_config:/config - test_nxmeta-lsio_media:/media # Dockerfile : NxWitness - # Port : 7102 + # Port : 7103 nxwitness: image: docker.io/ptr727/nxwitness:develop container_name: nxwitness-container @@ -91,7 +134,7 @@ services: - TZ=Americas/Los_Angeles network_mode: bridge ports: - - 7102:7001 + - 7103:7001 volumes: - test_nxwitness_etc:/opt/networkoptix/mediaserver/etc - test_nxwitness_ini:/home/networkoptix/.config/nx_ini @@ -99,7 +142,7 @@ services: - test_nxwitness_media:/media # Dockerfile : NxWitness-LSIO - # Port : 7202 + # Port : 7203 nxwitness-lsio: image: docker.io/ptr727/nxwitness-lsio:develop container_name: nxwitness-lsio-container @@ -108,13 +151,13 @@ services: - TZ=Americas/Los_Angeles network_mode: bridge ports: - - 7202:7001 + - 7203:7001 volumes: - test_nxwitness-lsio_config:/config - test_nxwitness-lsio_media:/media # Dockerfile : DWSpectrum - # Port : 7103 + # Port : 7104 dwspectrum: image: docker.io/ptr727/dwspectrum:develop container_name: dwspectrum-container @@ -123,7 +166,7 @@ services: - TZ=Americas/Los_Angeles network_mode: bridge ports: - - 7103:7001 + - 7104:7001 volumes: - test_dwspectrum_etc:/opt/digitalwatchdog/mediaserver/etc - test_dwspectrum_ini:/home/digitalwatchdog/.config/nx_ini @@ -131,7 +174,7 @@ services: - test_dwspectrum_media:/media # Dockerfile : DWSpectrum-LSIO - # Port : 7203 + # Port : 7204 dwspectrum-lsio: image: docker.io/ptr727/dwspectrum-lsio:develop container_name: dwspectrum-lsio-container @@ -140,13 +183,13 @@ services: - TZ=Americas/Los_Angeles network_mode: bridge ports: - - 7203:7001 + - 7204:7001 volumes: - test_dwspectrum-lsio_config:/config - test_dwspectrum-lsio_media:/media # Dockerfile : WisenetWAVE - # Port : 7104 + # Port : 7105 wisenetwave: image: docker.io/ptr727/wisenetwave:develop container_name: wisenetwave-container @@ -155,7 +198,7 @@ services: - TZ=Americas/Los_Angeles network_mode: bridge ports: - - 7104:7001 + - 7105:7001 volumes: - test_wisenetwave_etc:/opt/hanwha/mediaserver/etc - test_wisenetwave_ini:/home/hanwha/.config/nx_ini @@ -163,7 +206,7 @@ services: - test_wisenetwave_media:/media # Dockerfile : WisenetWAVE-LSIO - # Port : 7204 + # Port : 7205 wisenetwave-lsio: image: docker.io/ptr727/wisenetwave-lsio:develop container_name: wisenetwave-lsio-container @@ -172,7 +215,7 @@ services: - TZ=Americas/Los_Angeles network_mode: bridge ports: - - 7204:7001 + - 7205:7001 volumes: - test_wisenetwave-lsio_config:/config - test_wisenetwave-lsio_media:/media \ No newline at end of file diff --git a/Make/Test-latest.yml b/Make/Test-latest.yml index 0245bb9..7e06924 100644 --- a/Make/Test-latest.yml +++ b/Make/Test-latest.yml @@ -2,6 +2,17 @@ volumes: + # Dockerfile : NxGo + test_nxgo_etc: + test_nxgo_ini: + test_nxgo_var: + test_nxgo_media: + + + # Dockerfile : NxGo-LSIO + test_nxgo-lsio_config: + test_nxgo-lsio_media: + # Dockerfile : NxMeta test_nxmeta_etc: test_nxmeta_ini: @@ -49,8 +60,40 @@ volumes: services: - # Dockerfile : NxMeta + # Dockerfile : NxGo # Port : 7101 + nxgo: + image: docker.io/ptr727/nxgo:latest + container_name: nxgo-container + restart: unless-stopped + environment: + - TZ=Americas/Los_Angeles + network_mode: bridge + ports: + - 7101:7001 + volumes: + - test_nxgo_etc:/opt/networkoptix/mediaserver/etc + - test_nxgo_ini:/home/networkoptix/.config/nx_ini + - test_nxgo_var:/opt/networkoptix/mediaserver/var + - test_nxgo_media:/media + + # Dockerfile : NxGo-LSIO + # Port : 7201 + nxgo-lsio: + image: docker.io/ptr727/nxgo-lsio:latest + container_name: nxgo-lsio-container + restart: unless-stopped + environment: + - TZ=Americas/Los_Angeles + network_mode: bridge + ports: + - 7201:7001 + volumes: + - test_nxgo-lsio_config:/config + - test_nxgo-lsio_media:/media + + # Dockerfile : NxMeta + # Port : 7102 nxmeta: image: docker.io/ptr727/nxmeta:latest container_name: nxmeta-container @@ -59,7 +102,7 @@ services: - TZ=Americas/Los_Angeles network_mode: bridge ports: - - 7101:7001 + - 7102:7001 volumes: - test_nxmeta_etc:/opt/networkoptix-metavms/mediaserver/etc - test_nxmeta_ini:/home/networkoptix-metavms/.config/nx_ini @@ -67,7 +110,7 @@ services: - test_nxmeta_media:/media # Dockerfile : NxMeta-LSIO - # Port : 7201 + # Port : 7202 nxmeta-lsio: image: docker.io/ptr727/nxmeta-lsio:latest container_name: nxmeta-lsio-container @@ -76,13 +119,13 @@ services: - TZ=Americas/Los_Angeles network_mode: bridge ports: - - 7201:7001 + - 7202:7001 volumes: - test_nxmeta-lsio_config:/config - test_nxmeta-lsio_media:/media # Dockerfile : NxWitness - # Port : 7102 + # Port : 7103 nxwitness: image: docker.io/ptr727/nxwitness:latest container_name: nxwitness-container @@ -91,7 +134,7 @@ services: - TZ=Americas/Los_Angeles network_mode: bridge ports: - - 7102:7001 + - 7103:7001 volumes: - test_nxwitness_etc:/opt/networkoptix/mediaserver/etc - test_nxwitness_ini:/home/networkoptix/.config/nx_ini @@ -99,7 +142,7 @@ services: - test_nxwitness_media:/media # Dockerfile : NxWitness-LSIO - # Port : 7202 + # Port : 7203 nxwitness-lsio: image: docker.io/ptr727/nxwitness-lsio:latest container_name: nxwitness-lsio-container @@ -108,13 +151,13 @@ services: - TZ=Americas/Los_Angeles network_mode: bridge ports: - - 7202:7001 + - 7203:7001 volumes: - test_nxwitness-lsio_config:/config - test_nxwitness-lsio_media:/media # Dockerfile : DWSpectrum - # Port : 7103 + # Port : 7104 dwspectrum: image: docker.io/ptr727/dwspectrum:latest container_name: dwspectrum-container @@ -123,7 +166,7 @@ services: - TZ=Americas/Los_Angeles network_mode: bridge ports: - - 7103:7001 + - 7104:7001 volumes: - test_dwspectrum_etc:/opt/digitalwatchdog/mediaserver/etc - test_dwspectrum_ini:/home/digitalwatchdog/.config/nx_ini @@ -131,7 +174,7 @@ services: - test_dwspectrum_media:/media # Dockerfile : DWSpectrum-LSIO - # Port : 7203 + # Port : 7204 dwspectrum-lsio: image: docker.io/ptr727/dwspectrum-lsio:latest container_name: dwspectrum-lsio-container @@ -140,13 +183,13 @@ services: - TZ=Americas/Los_Angeles network_mode: bridge ports: - - 7203:7001 + - 7204:7001 volumes: - test_dwspectrum-lsio_config:/config - test_dwspectrum-lsio_media:/media # Dockerfile : WisenetWAVE - # Port : 7104 + # Port : 7105 wisenetwave: image: docker.io/ptr727/wisenetwave:latest container_name: wisenetwave-container @@ -155,7 +198,7 @@ services: - TZ=Americas/Los_Angeles network_mode: bridge ports: - - 7104:7001 + - 7105:7001 volumes: - test_wisenetwave_etc:/opt/hanwha/mediaserver/etc - test_wisenetwave_ini:/home/hanwha/.config/nx_ini @@ -163,7 +206,7 @@ services: - test_wisenetwave_media:/media # Dockerfile : WisenetWAVE-LSIO - # Port : 7204 + # Port : 7205 wisenetwave-lsio: image: docker.io/ptr727/wisenetwave-lsio:latest container_name: wisenetwave-lsio-container @@ -172,7 +215,7 @@ services: - TZ=Americas/Los_Angeles network_mode: bridge ports: - - 7204:7001 + - 7205:7001 volumes: - test_wisenetwave-lsio_config:/config - test_wisenetwave-lsio_media:/media \ No newline at end of file diff --git a/Make/Test.yml b/Make/Test.yml index da2af96..32243c9 100644 --- a/Make/Test.yml +++ b/Make/Test.yml @@ -2,6 +2,17 @@ volumes: + # Dockerfile : NxGo + test_nxgo_etc: + test_nxgo_ini: + test_nxgo_var: + test_nxgo_media: + + + # Dockerfile : NxGo-LSIO + test_nxgo-lsio_config: + test_nxgo-lsio_media: + # Dockerfile : NxMeta test_nxmeta_etc: test_nxmeta_ini: @@ -49,8 +60,40 @@ volumes: services: - # Dockerfile : NxMeta + # Dockerfile : NxGo # Port : 7101 + nxgo: + image: test_nxgo + container_name: nxgo-container + restart: unless-stopped + environment: + - TZ=Americas/Los_Angeles + network_mode: bridge + ports: + - 7101:7001 + volumes: + - test_nxgo_etc:/opt/networkoptix/mediaserver/etc + - test_nxgo_ini:/home/networkoptix/.config/nx_ini + - test_nxgo_var:/opt/networkoptix/mediaserver/var + - test_nxgo_media:/media + + # Dockerfile : NxGo-LSIO + # Port : 7201 + nxgo-lsio: + image: test_nxgo-lsio + container_name: nxgo-lsio-container + restart: unless-stopped + environment: + - TZ=Americas/Los_Angeles + network_mode: bridge + ports: + - 7201:7001 + volumes: + - test_nxgo-lsio_config:/config + - test_nxgo-lsio_media:/media + + # Dockerfile : NxMeta + # Port : 7102 nxmeta: image: test_nxmeta container_name: nxmeta-container @@ -59,7 +102,7 @@ services: - TZ=Americas/Los_Angeles network_mode: bridge ports: - - 7101:7001 + - 7102:7001 volumes: - test_nxmeta_etc:/opt/networkoptix-metavms/mediaserver/etc - test_nxmeta_ini:/home/networkoptix-metavms/.config/nx_ini @@ -67,7 +110,7 @@ services: - test_nxmeta_media:/media # Dockerfile : NxMeta-LSIO - # Port : 7201 + # Port : 7202 nxmeta-lsio: image: test_nxmeta-lsio container_name: nxmeta-lsio-container @@ -76,13 +119,13 @@ services: - TZ=Americas/Los_Angeles network_mode: bridge ports: - - 7201:7001 + - 7202:7001 volumes: - test_nxmeta-lsio_config:/config - test_nxmeta-lsio_media:/media # Dockerfile : NxWitness - # Port : 7102 + # Port : 7103 nxwitness: image: test_nxwitness container_name: nxwitness-container @@ -91,7 +134,7 @@ services: - TZ=Americas/Los_Angeles network_mode: bridge ports: - - 7102:7001 + - 7103:7001 volumes: - test_nxwitness_etc:/opt/networkoptix/mediaserver/etc - test_nxwitness_ini:/home/networkoptix/.config/nx_ini @@ -99,7 +142,7 @@ services: - test_nxwitness_media:/media # Dockerfile : NxWitness-LSIO - # Port : 7202 + # Port : 7203 nxwitness-lsio: image: test_nxwitness-lsio container_name: nxwitness-lsio-container @@ -108,13 +151,13 @@ services: - TZ=Americas/Los_Angeles network_mode: bridge ports: - - 7202:7001 + - 7203:7001 volumes: - test_nxwitness-lsio_config:/config - test_nxwitness-lsio_media:/media # Dockerfile : DWSpectrum - # Port : 7103 + # Port : 7104 dwspectrum: image: test_dwspectrum container_name: dwspectrum-container @@ -123,7 +166,7 @@ services: - TZ=Americas/Los_Angeles network_mode: bridge ports: - - 7103:7001 + - 7104:7001 volumes: - test_dwspectrum_etc:/opt/digitalwatchdog/mediaserver/etc - test_dwspectrum_ini:/home/digitalwatchdog/.config/nx_ini @@ -131,7 +174,7 @@ services: - test_dwspectrum_media:/media # Dockerfile : DWSpectrum-LSIO - # Port : 7203 + # Port : 7204 dwspectrum-lsio: image: test_dwspectrum-lsio container_name: dwspectrum-lsio-container @@ -140,13 +183,13 @@ services: - TZ=Americas/Los_Angeles network_mode: bridge ports: - - 7203:7001 + - 7204:7001 volumes: - test_dwspectrum-lsio_config:/config - test_dwspectrum-lsio_media:/media # Dockerfile : WisenetWAVE - # Port : 7104 + # Port : 7105 wisenetwave: image: test_wisenetwave container_name: wisenetwave-container @@ -155,7 +198,7 @@ services: - TZ=Americas/Los_Angeles network_mode: bridge ports: - - 7104:7001 + - 7105:7001 volumes: - test_wisenetwave_etc:/opt/hanwha/mediaserver/etc - test_wisenetwave_ini:/home/hanwha/.config/nx_ini @@ -163,7 +206,7 @@ services: - test_wisenetwave_media:/media # Dockerfile : WisenetWAVE-LSIO - # Port : 7204 + # Port : 7205 wisenetwave-lsio: image: test_wisenetwave-lsio container_name: wisenetwave-lsio-container @@ -172,7 +215,7 @@ services: - TZ=Americas/Los_Angeles network_mode: bridge ports: - - 7204:7001 + - 7205:7001 volumes: - test_wisenetwave-lsio_config:/config - test_wisenetwave-lsio_media:/media \ No newline at end of file diff --git a/Make/Version.json b/Make/Version.json index 7c65e86..528c1eb 100644 --- a/Make/Version.json +++ b/Make/Version.json @@ -2,6 +2,28 @@ "$schema": "https://raw.githubusercontent.com/ptr727/NxWitness/main/CreateMatrix/JSON/Version.schema.json", "SchemaVersion": 2, "Products": [ + { + "Product": "NxGo", + "Versions": [ + { + "Version": "5.1.5.39242", + "UriX64": "https://updates.networkoptix.com/nxgo/39242/linux/nxgo-server-5.1.5.39242-linux_x64.deb", + "UriArm64": "https://updates.networkoptix.com/nxgo/39242/arm/nxgo-server-5.1.5.39242-linux_arm64.deb", + "Labels": [ + "Stable", + "Latest" + ] + }, + { + "Version": "6.0.0.39148", + "UriX64": "https://updates.networkoptix.com/nxgo/39148/linux/nxgo-server-6.0.0.39148-linux_x64-rc.deb", + "UriArm64": "https://updates.networkoptix.com/nxgo/39148/arm/nxgo-server-6.0.0.39148-linux_arm64-rc.deb", + "Labels": [ + "RC" + ] + } + ] + }, { "Product": "NxMeta", "Versions": [ @@ -105,4 +127,4 @@ ] } ] -} \ No newline at end of file +} diff --git a/README.md b/README.md index 1e18c7f..99d299e 100644 --- a/README.md +++ b/README.md @@ -42,6 +42,7 @@ The project supports the following product variants: - [Network Optix][networkoptix] [Nx Witness VMS][nxwitness] (not available for purchase in the US) - [Network Optix][networkoptix] [Nx Meta VMS][nxmeta] (developer and early access version of Nx Witness) +- [Network Optix][networkoptix] [Nx Go VMS][nxgo] (version of Nx Witness targeted at transportation sector) - [Digital Watchdog][digitalwatchdog] [DW Spectrum IPVMS][dwspectrum] (US licensed and OEM branded version of Nx Witness) - [Hanwha Vision][hanwhavision] [Wisenet WAVE VMS][dwspectrum] (US licensed and OEM branded version of Nx Witness) @@ -53,6 +54,8 @@ Images are published on [Docker Hub][hub]: - [NxWitness-LSIO][hub_nxwitness-lsio]: `docker pull docker.io/ptr727/nxwitness-lsio` - [NxMeta][hub_nxmeta]: `docker pull docker.io/ptr727/nxmeta` - [NxMeta-LSIO][hub_nxmeta-lsio]: `docker pull docker.io/ptr727/nxmeta-lsio` +- [NxGo][hub_nxgo]: `docker pull docker.io/ptr727/nxgo` +- [NxGo-LSIO][hub_nxwitness-lsio]: `docker pull docker.io/ptr727/nxgo-lsio` - [DWSpectrum][hub_dwspectrum]: `docker pull docker.io/ptr727/dwspectrum` - [DWSpectrum-LSIO][hub_dwspectrum-lsio]: `docker pull docker.io/ptr727/dwspectrum-lsio` - [WisenetWAVE][hub_wisenetwave]: `docker pull docker.io/ptr727/wisenetwave` @@ -98,6 +101,18 @@ Notes: [![NxMeta-LSIO RC][hub_nxmeta-lsio_rc_shield]][hub_nxmeta-lsio] [![NxMeta-LSIO Beta][hub_nxmeta-lsio_beta_shield]][hub_nxmeta-lsio] +[NxGo][hub_nxgo]: +[![NxGo Stable][hub_nxgo_stable_shield]][hub_nxgo] +[![NxGo Latest][hub_nxgo_latest_shield]][hub_nxgo] +[![NxGo RC][hub_nxgo_rc_shield]][hub_nxgo] +[![NxGo Beta][hub_nxgo_beta_shield]][hub_nxgo] + +[NxGo-LSIO][hub_nxgo-lsio]: +[![NxGo-LSIO Stable][hub_nxgo-lsio_stable_shield]][hub_nxgo-lsio] +[![NxGo-LSIO Latest][hub_nxgo-lsio_latest_shield]][hub_nxgo-lsio] +[![NxGo-LSIO RC][hub_nxgo-lsio_rc_shield]][hub_nxgo-lsio] +[![NxGo-LSIO Beta][hub_nxgo-lsio_beta_shield]][hub_nxgo-lsio] + [DWSpectrum][hub_dwspectrum]: [![DWSpectrum Stable][hub_dwspectrum_stable_shield]][hub_dwspectrum] [![DWSpectrum Latest][hub_dwspectrum_latest_shield]][hub_dwspectrum] @@ -273,6 +288,11 @@ services: - [Request Developer Licenses](hhttps://support.networkoptix.com/hc/en-us/articles/8693698259607-Get-a-License-for-Developers) - [Downloads][nxmeta_download] - [Beta Downloads][nxmeta_betadownload] +- Nx Go: + - [Releases JSON API][nxgo_releases] + - [Downloads][nxgo_download] + - [Beta Downloads][nxgo_betadownload] + - [Release Notes][nxgo_releasenotes] - DW Spectrum: - [Releases JSON API][dwspectrum_releases] - [Downloads][dwspectrum_download] @@ -474,6 +494,16 @@ To my knowledge there is no solution to duplicate devices being filtered, please [hub_dwspectrum-lsio_stable_shield]: https://img.shields.io/docker/v/ptr727/dwspectrum-lsio/stable?label=stable&logo=docker [hub_dwspectrum-lsio]: https://hub.docker.com/r/ptr727/dwspectrum-lsio [hub_dwspectrum]: https://hub.docker.com/r/ptr727/dwspectrum +[hub_nxgo_beta_shield]: https://img.shields.io/docker/v/ptr727/nxgo/beta?label=beta&logo=docker +[hub_nxgo_latest_shield]: https://img.shields.io/docker/v/ptr727/nxgo/latest?label=latest&logo=docker +[hub_nxgo_rc_shield]: https://img.shields.io/docker/v/ptr727/nxgo/rc?label=rc&logo=docker +[hub_nxgo_stable_shield]: https://img.shields.io/docker/v/ptr727/nxgo/stable?label=stable&logo=docker +[hub_nxgo-lsio_beta_shield]: https://img.shields.io/docker/v/ptr727/nxgo-lsio/beta?label=beta&logo=docker +[hub_nxgo-lsio_latest_shield]: https://img.shields.io/docker/v/ptr727/nxgo-lsio/latest?label=latest&logo=docker +[hub_nxgo-lsio_rc_shield]: https://img.shields.io/docker/v/ptr727/nxgo-lsio/rc?label=rc&logo=docker +[hub_nxgo-lsio_stable_shield]: https://img.shields.io/docker/v/ptr727/nxgo-lsio/stable?label=stable&logo=docker +[hub_nxgo-lsio]: https://hub.docker.com/r/ptr727/nxgo-lsio +[hub_nxgo]: https://hub.docker.com/r/ptr727/nxgo [hub_nxmeta_beta_shield]: https://img.shields.io/docker/v/ptr727/nxmeta/beta?label=beta&logo=docker [hub_nxmeta_latest_shield]: https://img.shields.io/docker/v/ptr727/nxmeta/latest?label=latest&logo=docker [hub_nxmeta_rc_shield]: https://img.shields.io/docker/v/ptr727/nxmeta/rc?label=rc&logo=docker @@ -538,6 +568,11 @@ To my knowledge there is no solution to duplicate devices being filtered, please [nxwitness_releasenotes]: https://www.networkoptix.com/all-nx-witness-release-notes [nxwitness_releases]: https://updates.vmsproxy.com/default/releases.json [nxwitness]: https://www.networkoptix.com/nx-witness/ +[nxgo_betadownload]: https://cloud.nxgo.io/download/betas/linux +[nxgo_download]: https://cloud.nxgo.io/download/releases/linux +[nxgo_releasenotes]: https://updates.networkoptix.com/nxgo/#releases_list +[nxgo_releases]: https://updates.networkoptix.com/nxgo/releases.json +[nxgo]: https://updates.networkoptix.com/nxgo [repo]: https://github.com/ptr727/NxWitness [s6]: https://github.com/just-containers/s6-overlay [thehomerepo]: https://github.com/thehomerepot/nxwitness