diff --git a/README.md b/README.md index 813cf20b..9f7b3a63 100644 --- a/README.md +++ b/README.md @@ -48,7 +48,7 @@ To provide an easy to use, fully-featured, scalable, and portable SCADA/IIoT-I4. - MongoDB as the real-time core database, persistence layer, config store, SOE historian. - Event-based realtime async data processing with MongoDB Change Streams. - Portability and modular interoperability over Linux, Windows, Mac OSX, x86/64, ARM. -- Windows installer available in the [releases section](https://github.com/riclolsen/json-scada/releases/tag/V0.45-alpha). +- Windows installer available in the [releases section](https://github.com/riclolsen/json-scada/releases/tag/V0.46-alpha). - Unlimited tags, servers, and users. - Horizontal scalability, from a single computer to big clusters (MongoDB-sharding), Docker containers, VMs, Kubernetes, cloud, or hybrid deployments. - Modular distributed architecture. Lightweight redundant data acquisition nodes can connect securely over TLS to the database server. E.g. a Raspberry PI can be a data acquisition node. @@ -90,8 +90,10 @@ To provide an easy to use, fully-featured, scalable, and portable SCADA/IIoT-I4. ## Documentation - [Generic Install Guide](https://github.com/riclolsen/json-scada/blob/master/docs/install.md) -- [Windows Installer](https://github.com/riclolsen/json-scada/releases/tag/V0.45-alpha) -- [RedHat/Rocky Linux Installer](https://github.com/riclolsen/json-scada/blob/master/docs/install.md#rhel94-and-compatible-systems-automated-installation) +- [Windows Installer](https://github.com/riclolsen/json-scada/releases/tag/V0.46-alpha) +- [RedHat/Rocky Linux Installer Script](https://github.com/riclolsen/json-scada/blob/master/docs/install.md#rhel94-and-compatible-systems-automated-installation) +- [Ubuntu Linux Installer Script](https://github.com/riclolsen/json-scada/blob/master/docs/install.md#ubuntu-2404-scripted-installation) +- [Generic Install Guide](https://github.com/riclolsen/json-scada/blob/master/docs/install.md) - [Docker Demo](https://github.com/riclolsen/json-scada/blob/master/demo-docker/README.md) - [Schema Documentation](https://github.com/riclolsen/json-scada/blob/master/docs/schema.md) - [Config File](https://github.com/riclolsen/json-scada/blob/master/conf/README.md) @@ -169,6 +171,7 @@ To provide an easy to use, fully-featured, scalable, and portable SCADA/IIoT-I4. - [x] Online Demo - [x] Docker Demo (docker-compose.yaml scripts) - [x] Install Script for RedHat/Rocky 9.4 Linux x86-64 and arm64 +- [x] Install Script for Ubuntu 24.04 Linux x86-64 and arm64 - [ ] Linux Image / VM - [x] Supervisor (Linux process manager) examples - [x] Project IDX Configuration diff --git a/index.md b/index.md index 1b58fb1c..80699690 100644 --- a/index.md +++ b/index.md @@ -48,7 +48,7 @@ To provide an easy to use, fully-featured, scalable, and portable SCADA/IIoT-I4. - MongoDB as the real-time core database, persistence layer, config store, SOE historian. - Event-based realtime async data processing with MongoDB Change Streams. - Portability and modular interoperability over Linux, Windows, Mac OSX, x86/64, ARM. -- Windows installer available in the [releases section](https://github.com/riclolsen/json-scada/releases/tag/V0.45-alpha). +- Windows installer available in the [releases section](https://github.com/riclolsen/json-scada/releases/tag/V0.46-alpha). - Unlimited tags, servers, and users. - Horizontal scalability, from a single computer to big clusters (MongoDB-sharding), Docker containers, VMs, Kubernetes, cloud, or hybrid deployments. - Modular distributed architecture. Lightweight redundant data acquisition nodes can connect securely over TLS to the database server. E.g. a Raspberry PI can be a data acquisition node. @@ -90,9 +90,10 @@ To provide an easy to use, fully-featured, scalable, and portable SCADA/IIoT-I4. ## Documentation - [Generic Install Guide](docs/install.md) -- [Windows Installer](https://github.com/riclolsen/json-scada/releases/tag/V0.45-alpha) -- [RedHat/Rocky Linux Installer](docs/install.md#rhel94-and-compatible-systems-automated-installation) -- [Install Guide](docs/install.md) +- [Windows Installer](https://github.com/riclolsen/json-scada/releases/tag/V0.46-alpha) +- [RedHat/Rocky Linux Installer Script](docs/install.md#rhel94-and-compatible-systems-automated-installation) +- [Ubuntu Linux Installer Script](docs/install.md#ubuntu-2404-scripted-installation) +- [Generic Install Guide](docs/install.md) - [Docker Demo](demo-docker/README.md) - [Schema Documentation](docs/schema.md) - [Config File](conf/README.md) @@ -171,6 +172,7 @@ To provide an easy to use, fully-featured, scalable, and portable SCADA/IIoT-I4. - [x] Online Demo - [x] Docker Demo (docker-compose.yaml scripts) - [x] Install Script for RedHat/Rocky 9.4 Linux x86-64 and arm64 +- [x] Install Script for Ubuntu 24.04 Linux x86-64 and arm64 - [ ] Linux Image / VM - [x] Supervisor (Linux process manager) examples - [x] Project IDX Configuration diff --git a/platform-windows/json-scada.nsi b/platform-windows/json-scada.nsi index 75d0fb07..ccdb74d3 100644 --- a/platform-windows/json-scada.nsi +++ b/platform-windows/json-scada.nsi @@ -20,8 +20,8 @@ RequestExecutionLevel admin ;-------------------------------- -!define VERSION "v.0.45" -!define VERSION_ "0.45.0.0" +!define VERSION "v.0.46" +!define VERSION_ "0.46.0.0" Function .onInit System::Call 'keexrnel32::CreateMutexA(p0, i1, t "MutexJsonScadaInstall")?e' diff --git a/platform-windows/release_notes.txt b/platform-windows/release_notes.txt index 5bc25709..2ca243c6 100644 --- a/platform-windows/release_notes.txt +++ b/platform-windows/release_notes.txt @@ -135,11 +135,40 @@ Inkscape+SAGE: ------------------------------------------------------------------- +Notes for version 0.46: + +* NPM packages updated. +* PostgreSQL ingestion: fixed errors when inserting/updating JSON data. +* Events Viewer: limit overflow of columns with ellipsis. +* Update Metabase to version 0.52.5. +* Chromium updated to version 131.0.6778.265. +* Grafana updated to 11.4.0. + +To quickly run the system after installed, open the JSON-SCADA desktop folder and: + +* On the JSON-SCADA desktop folder: execute "_Start_Services". +* On the JSON-SCADA desktop folder: execute "_JSON SCADA WEB". +* Default login credentials: username=admin password=jsonscada. +* Metabase credentials: username=json@scada.com password=jsonscada123. + +Requirements and recommendations: + +* Windows 10/11 64 bits or Server >=2019, Windows PowerShell. At least 20GB of free space in the "C:" drive. +* Administrative rights. Corporate Windows policies may cause problems with the creation of services and the opening of TCP ports. +* Free TCP ports 6688, 6689, 27017, 5432, 80, 8080, 3000, 3001, 9000. Other ports may be required for optional services and protocols. +* If the server already has MongoDB, PostgreSQL, Grafana, Metabase, Nginx or another webserver, please uninstall, disable or watch out for possible conflicts. +* Do not update previously installed JSON-SCADA. Please uninstall previous JSON-SCADA versions before installing a new version. +* If using VirtualBox configure "paravirtualization interface"=KVM, otherwise Nodejs errors may occur. +* MongoDB requires AVX instructions on x86 CPU. + +------------------------------------------------------------------- + Notes for version 0.45: * OPC-UA Client: improved performance, auto tagging and data types handling. * Tabular Viewer: selectable dark/light theme. * Viewers: better table alignment, improved feedback for commands. +* Updated Excel worksheet config and service. To quickly run the system after installed, open the JSON-SCADA desktop folder and: @@ -147,7 +176,6 @@ To quickly run the system after installed, open the JSON-SCADA desktop folder an * On the JSON-SCADA desktop folder: execute "_JSON SCADA WEB". * Default login credentials: username=admin password=jsonscada. * Metabase credentials: username=json@scada.com password=jsonscada123. -* Updated Excel worksheet config and service. Requirements and recommendations: diff --git a/src/AdminUI/package-lock.json b/src/AdminUI/package-lock.json index 46ec8f11..9e2235dc 100644 --- a/src/AdminUI/package-lock.json +++ b/src/AdminUI/package-lock.json @@ -64,12 +64,12 @@ } }, "node_modules/@babel/parser": { - "version": "7.26.3", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.26.3.tgz", - "integrity": "sha512-WJ/CvmY8Mea8iDXo6a7RK2wbmJITT5fN3BEkRuFlxVyNx8jOKIIhmC4fSkTcPcf8JyavbBwIe6OpiCOBXt/IcA==", + "version": "7.26.5", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.26.5.tgz", + "integrity": "sha512-SRJ4jYmXRqV1/Xc+TIVG84WjHBXKlxO9sHQnA2Pf12QQEAp1LOh6kDzNHXcUnbH1QI0FDoPPVOt+vyUDucxpaw==", "license": "MIT", "dependencies": { - "@babel/types": "^7.26.3" + "@babel/types": "^7.26.5" }, "bin": { "parser": "bin/babel-parser.js" @@ -79,9 +79,9 @@ } }, "node_modules/@babel/types": { - "version": "7.26.3", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.26.3.tgz", - "integrity": "sha512-vN5p+1kl59GVKMvTHt55NzzmYVxprfJD+ql7U9NFIfKCBkYE55LYtS+WtPlaYOyzydrKI8Nezd+aZextrd+FMA==", + "version": "7.26.5", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.26.5.tgz", + "integrity": "sha512-L6mZmwFDK6Cjh1nRCLXpa6no13ZIioJDz7mdkzHv399pThrTa/k0nUlNaenOeh2kWu/iaOQYElEpKPUswUa9Vg==", "license": "MIT", "dependencies": { "@babel/helper-string-parser": "^7.25.9", @@ -1351,6 +1351,13 @@ "node": ">=16.14.0" } }, + "node_modules/ast-kit/node_modules/pathe": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/pathe/-/pathe-1.1.2.tgz", + "integrity": "sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==", + "dev": true, + "license": "MIT" + }, "node_modules/ast-walker-scope": { "version": "0.6.2", "resolved": "https://registry.npmjs.org/ast-walker-scope/-/ast-walker-scope-0.6.2.tgz", @@ -1618,9 +1625,9 @@ "license": "MIT" }, "node_modules/core-js": { - "version": "3.39.0", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.39.0.tgz", - "integrity": "sha512-raM0ew0/jJUqkJ0E6e8UDtl+y/7ktFivgWvqw8dNSQeNWoSDLvQ1H/RN3aPXB9tBd4/FhyR4RDPGhsNIMsAn7g==", + "version": "3.40.0", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.40.0.tgz", + "integrity": "sha512-7vsMc/Lty6AGnn7uFpYT56QesI5D2Y/UkgKounk87OP9Z2H9Z8kj6jzcSGAxFmUtDOS0ntK6lbQz+Nsa0Jj6mQ==", "hasInstallScript": true, "license": "MIT", "funding": { @@ -3683,15 +3690,15 @@ } }, "node_modules/mlly": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/mlly/-/mlly-1.7.3.tgz", - "integrity": "sha512-xUsx5n/mN0uQf4V548PKQ+YShA4/IW0KI1dZhrNrPCLG+xizETbHTkOa1f8/xut9JRPp8kQuMnz0oqwkTiLo/A==", + "version": "1.7.4", + "resolved": "https://registry.npmjs.org/mlly/-/mlly-1.7.4.tgz", + "integrity": "sha512-qmdSIPC4bDJXgZTCR7XosJiNKySV7O215tsPtDN9iEO/7q/76b/ijtgRu/+epFXSJhijtTCCGp3DWS549P3xKw==", "dev": true, "license": "MIT", "dependencies": { "acorn": "^8.14.0", - "pathe": "^1.1.2", - "pkg-types": "^1.2.1", + "pathe": "^2.0.1", + "pkg-types": "^1.3.0", "ufo": "^1.5.4" } }, @@ -3976,9 +3983,9 @@ "license": "MIT" }, "node_modules/pathe": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/pathe/-/pathe-1.1.2.tgz", - "integrity": "sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pathe/-/pathe-2.0.1.tgz", + "integrity": "sha512-6jpjMpOth5S9ITVu5clZ7NOgHNsv5vRQdheL9ztp2vZmM6fRbLvyua1tiBIL4lk8SAe3ARzeXEly6siXCjDHDw==", "dev": true, "license": "MIT" }, @@ -4013,6 +4020,13 @@ "pathe": "^1.1.2" } }, + "node_modules/pkg-types/node_modules/pathe": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/pathe/-/pathe-1.1.2.tgz", + "integrity": "sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==", + "dev": true, + "license": "MIT" + }, "node_modules/possible-typed-array-names": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.0.0.tgz", @@ -4944,9 +4958,9 @@ } }, "node_modules/unplugin-vue-components/node_modules/unplugin": { - "version": "1.16.0", - "resolved": "https://registry.npmjs.org/unplugin/-/unplugin-1.16.0.tgz", - "integrity": "sha512-5liCNPuJW8dqh3+DM6uNM2EI3MLLpCKp/KY+9pB5M2S2SR2qvvDHhKgBOaTWEbZTAws3CXfB0rKTIolWKL05VQ==", + "version": "1.16.1", + "resolved": "https://registry.npmjs.org/unplugin/-/unplugin-1.16.1.tgz", + "integrity": "sha512-4/u/j4FrCKdi17jaxuJA0jClGxB1AvU2hw/IuayPc4ay1XGaJs/rbb4v5WKwAjNifjmXK9PIFyuPiaK8azyR9w==", "dev": true, "license": "MIT", "dependencies": { @@ -5001,6 +5015,13 @@ "node": ">=6" } }, + "node_modules/unplugin-vue-router/node_modules/pathe": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/pathe/-/pathe-1.1.2.tgz", + "integrity": "sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==", + "dev": true, + "license": "MIT" + }, "node_modules/upath": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/upath/-/upath-2.0.1.tgz", diff --git a/src/AdminUI/public/i18n/messages_i18n-en_us.js b/src/AdminUI/public/i18n/messages_i18n-en_us.js index f5112731..017f5b8d 100644 --- a/src/AdminUI/public/i18n/messages_i18n-en_us.js +++ b/src/AdminUI/public/i18n/messages_i18n-en_us.js @@ -1,10 +1,10 @@ // Internationalization Messages -// {json:scada} - Copyright (c) 2008-2024 - Ricardo L. Olsen +// {json:scada} - Copyright (c) 2008-2025 - Ricardo L. Olsen var Msg = { NomeProduto: '{json:scada}', -VersaoProduto: '0.45', +VersaoProduto: '0.46', NomeVisorTelas: 'Display Viewer', NomeVisorEventos: 'Events Viewer', diff --git a/src/AdminUI/public/i18n/messages_i18n-pt_br.js b/src/AdminUI/public/i18n/messages_i18n-pt_br.js index fee63a64..937a4faa 100644 --- a/src/AdminUI/public/i18n/messages_i18n-pt_br.js +++ b/src/AdminUI/public/i18n/messages_i18n-pt_br.js @@ -1,10 +1,10 @@ // Internationalization Messages -// {json:scada} - Copyright (c) 2008-2024 - Ricardo L. Olsen +// {json:scada} - Copyright (c) 2008-2025 - Ricardo L. Olsen var Msg = { NomeProduto: '{json:scada}', -VersaoProduto: '0.45', +VersaoProduto: '0.46', NomeVisorTelas: 'Visor de Telas', NomeVisorEventos: 'Visor de Eventos', diff --git a/src/AdminUI/public/i18n/messages_i18n-uk_ua.js b/src/AdminUI/public/i18n/messages_i18n-uk_ua.js index 183f8e5e..bb78d826 100644 --- a/src/AdminUI/public/i18n/messages_i18n-uk_ua.js +++ b/src/AdminUI/public/i18n/messages_i18n-uk_ua.js @@ -1,10 +1,10 @@ // Internationalization Messages -// {json:scada} - Copyright (c) 2008-2024 - Ricardo L. Olsen +// {json:scada} - Copyright (c) 2008-2025 - Ricardo L. Olsen var Msg = { NomeProduto: '{json:scada}', -VersaoProduto: '0.45', +VersaoProduto: '0.46', NomeVisorTelas: 'Перегляд ', NomeVisorEventos: 'Події', diff --git a/src/AdminUI/public/i18n/messages_i18n.js b/src/AdminUI/public/i18n/messages_i18n.js index f5112731..017f5b8d 100644 --- a/src/AdminUI/public/i18n/messages_i18n.js +++ b/src/AdminUI/public/i18n/messages_i18n.js @@ -1,10 +1,10 @@ // Internationalization Messages -// {json:scada} - Copyright (c) 2008-2024 - Ricardo L. Olsen +// {json:scada} - Copyright (c) 2008-2025 - Ricardo L. Olsen var Msg = { NomeProduto: '{json:scada}', -VersaoProduto: '0.45', +VersaoProduto: '0.46', NomeVisorTelas: 'Display Viewer', NomeVisorEventos: 'Events Viewer', diff --git a/src/AdminUI/public/release_notes.txt b/src/AdminUI/public/release_notes.txt index 5bc25709..2ca243c6 100644 --- a/src/AdminUI/public/release_notes.txt +++ b/src/AdminUI/public/release_notes.txt @@ -135,11 +135,40 @@ Inkscape+SAGE: ------------------------------------------------------------------- +Notes for version 0.46: + +* NPM packages updated. +* PostgreSQL ingestion: fixed errors when inserting/updating JSON data. +* Events Viewer: limit overflow of columns with ellipsis. +* Update Metabase to version 0.52.5. +* Chromium updated to version 131.0.6778.265. +* Grafana updated to 11.4.0. + +To quickly run the system after installed, open the JSON-SCADA desktop folder and: + +* On the JSON-SCADA desktop folder: execute "_Start_Services". +* On the JSON-SCADA desktop folder: execute "_JSON SCADA WEB". +* Default login credentials: username=admin password=jsonscada. +* Metabase credentials: username=json@scada.com password=jsonscada123. + +Requirements and recommendations: + +* Windows 10/11 64 bits or Server >=2019, Windows PowerShell. At least 20GB of free space in the "C:" drive. +* Administrative rights. Corporate Windows policies may cause problems with the creation of services and the opening of TCP ports. +* Free TCP ports 6688, 6689, 27017, 5432, 80, 8080, 3000, 3001, 9000. Other ports may be required for optional services and protocols. +* If the server already has MongoDB, PostgreSQL, Grafana, Metabase, Nginx or another webserver, please uninstall, disable or watch out for possible conflicts. +* Do not update previously installed JSON-SCADA. Please uninstall previous JSON-SCADA versions before installing a new version. +* If using VirtualBox configure "paravirtualization interface"=KVM, otherwise Nodejs errors may occur. +* MongoDB requires AVX instructions on x86 CPU. + +------------------------------------------------------------------- + Notes for version 0.45: * OPC-UA Client: improved performance, auto tagging and data types handling. * Tabular Viewer: selectable dark/light theme. * Viewers: better table alignment, improved feedback for commands. +* Updated Excel worksheet config and service. To quickly run the system after installed, open the JSON-SCADA desktop folder and: @@ -147,7 +176,6 @@ To quickly run the system after installed, open the JSON-SCADA desktop folder an * On the JSON-SCADA desktop folder: execute "_JSON SCADA WEB". * Default login credentials: username=admin password=jsonscada. * Metabase credentials: username=json@scada.com password=jsonscada123. -* Updated Excel worksheet config and service. Requirements and recommendations: diff --git a/src/AdminUI/src/App.vue b/src/AdminUI/src/App.vue index 6a61e3d9..9d47433f 100644 --- a/src/AdminUI/src/App.vue +++ b/src/AdminUI/src/App.vue @@ -119,7 +119,7 @@ import { useRouter } from 'vue-router' import { STORAGE_KEY } from './i18n' - const version = ref('v0.45-alpha') + const version = ref('v0.46-alpha') const router = useRouter() const theme = ref('dark') const vuetifyTheme = useTheme()