.gitignore000066400000000000000000000003441516424611500130540ustar00rootroot00000000000000/build /node_modules /*.log /*.iws .idea/workspace.xml .idea/tasks.xml .idea/profiles_settings.xml .idea/inspectionProfiles/Project_Default.xml .idea/inspectionProfiles/profiles_settings.xml node_modules/.yarn-integrity /dist.npmignore000066400000000000000000000002301516424611500130550ustar00rootroot00000000000000/.idea /artifacts /build /test /node_modules /*.iml /*.ipr /*.iws /.travis.yml /.scrutinizer.yml /Gruntfile.js /*.lock *.log /corifeus-boot.json /secure.travis.yml000066400000000000000000000014301516424611500131720ustar00rootroot00000000000000language: node_js node_js: - node before_script: - npm install -g grunt-cli npm env: global: secure: ndPY/yENX+jrLScJBSsu+GV93TZcnmFyPirG19UBvu2ZdUyh+jUnDfvsqtz9VCoYgArDoXaE2cn+O7ymlhzo3FaiTn4uhZFwWkNDvB/o4yVUY8JfqUJiKM1Ed/1FCwsKNQ5ClH9EyTKlsecu68f3Tl36C+YRI2n0ar2ILD9Fz4SzcFUS1sxAa1zAk20P5JKeEL/sEzHHYT/ex2p/TEltN/6SaV4ITV6z94FH5dxIuwgz7WQeteNx3dPG6H/b+mkpE6Lyzgb5fRhYSdoSiynWK6/Z4gswftXLG12YIue8NVR8Fa2RMAESA2Nzeu0SDfZl/jRJqw0DWKlNq+8Wzme81TPJw0S8aQDYVNWJAnbIXI2qGibXidy7+WHhM8AhoK/e+1VAKuD61H2W75YERGkktiN9oldcoGiyO/ODkxQ6gGZ6URsxC57SbtQdsTDWCAOGjkZOrcXE4qT30ItrfkVif0BpHtHhgCd8iAsnVDKcuTzj995gI/gNDitAKJjnMgIVlS3nLTYBATy7xJh90BMfDBG0MDvnonA7Co5Qrz04MotgQZ5abXckaNPkBAe9WTFeQ51pHcWSoWcuK/InTPIZCB6Hb6i/q5y8SOlGzTpr2v6vxPw9h83X2AxJLabxB6WgXCwr/DbehgnATK09O7s7QvwmG4PzfqqllcfCC6r4QRs= Gruntfile.js000066400000000000000000000004471516424611500133650ustar00rootroot00000000000000const utils = require('corifeus-utils'); module.exports = (grunt) => { const _ = require('lodash'); const builder = require(`corifeus-builder`); const loader = new builder.loader(grunt); loader.js({ }); grunt.registerTask('default', builder.config.task.build.js); } LICENSE000066400000000000000000000023501516424611500120700ustar00rootroot00000000000000 @license p3x-redis-ui v2018.9.8-1 The built p3x-redis-ui using p3x-redis-ui-server and p3x-redis-ui-material. https://pages.corifeus.com/redis-ui Copyright (c) 2018 Patrik Laszlo / P3X / Corifeus and contributors. MIT License Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.README.md000066400000000000000000000117661516424611500123550ustar00rootroot00000000000000[//]: #@corifeus-header [![Build Status](https://travis-ci.org/patrikx3/redis-ui.svg?branch=master)](https://travis-ci.org/patrikx3/redis-ui) [![Uptime Robot ratio (30 days)](https://img.shields.io/uptimerobot/ratio/m780749701-41bcade28c1ea8154eda7cca.svg)](https://uptimerobot.patrikx3.com/) --- # 📡 P3X Redis UI that uses Socket.IO, AngularJs Material and IORedis with statistics, console - terminal, tree, dark mode, internationalization, multiple connections, web and desktop by Electron. v2018.9.14-2 This is an open-source project. Star this repository, if you like it, or even donate! Thank you so much! :) I run my own server with dynamic IP address, so, it may happen, that the server can not be reachable for about max 15 minutes, due to nature of the dynamic DNS. The server may also be unreachable, when I backup the SSD with Clonzilla (very rarely) or an electrical issue (but this should not happen again). When the server is down, please hang on for 15-30 minutes and the server will be back up. All my domains (patrikx3.com and corifeus.com) could have errors, since I am developing in my free time. However, it is usually stable. **Bugs are evident™ - MATRIX️** ### Node Version Requirement ``` >=8.11.4 ``` ### Built on Node ``` v10.10.0 ``` The ```async``` and ```await``` keywords are required. Install NodeJs: https://nodejs.org/en/download/package-manager/ # Description [//]: #@corifeus-header:end ## Features * Works as a backend * For now, it only works with HTTPS * Works as a desktop via Electron * I have * Linux * Windows * macOS * I do not have the money to buy a macOS machine and build an Electron installer, but it would be very easy to do * The error handling took careful (as much I can find errors) * Starts with no settings without config, or setup your own config * Able to create, test, save, delete multiple connections or a readonly connections setup, for shared usage * Able to use the console and interact with Redis * Online you are able to choose the tree separator, for example :, /, -, space, etc... * It is based on Redis-Commander and phpRedisAdmin * You can select the database via console or the drop down, where the checked database is not empty, so you can always know which is filled * Save button to save the db * There is a performance penalty for this application, given it uses AngularJS `ng-repeat` for the tree component. The best is if your application uses nested keys (something:nested:good), then the tree will be fast, but, for example, Nextcloud uses about 500 keys inline and it can take 5 seconds to generate the tree. * Another solution is that instead of the : separator for your app, you can use the / separator. Then it will be much more responsive, see the settings tree separator * A second solution is to use paging, the default paging is 250 keys * Full statistics pages, can be useful * This is just a New Kind on the Block in the Redis world, so, of course, there are advantages and disadvantages in the other Redis GUIs * Dark - Dracula / light themes ## Releases https://github.com/patrikx3/redis-ui/releases ## More Info It creates a package that allows you to compose `p3x-redis-ui-server` and `p3x-redis-ui-material` into one. **This is just, the development has been since September of 2018 only, please hang, to mature it.** By default, only English is created, but given all strings are from a `JS` file, it is very quick to spawn another language eg. German, France, Spanish etc ... # The test version https://p3x.redis.patrikx3.com # Start up with a server [Start up with a server readme](artifacts/readme/start-up-server.md) # Start up with Electron [Start up with Electron readme](artifacts/readme/start-up-with-electron.md) - in progress # To create your own certificate [To create your own certificate readme](artifacts/readme/create-https-cert.md) # Some description about the config file [Some description about the config file readme](p3xrs.json) # TODO [The to do readme](todo.md) # Change log [The change log readme](changelog.md) - in progress [//]: #@corifeus-footer --- [**P3X-REDIS-UI**](https://pages.corifeus.com/redis-ui) Build v2018.9.14-2 [![Like Corifeus @ Facebook](https://img.shields.io/badge/LIKE-Corifeus-3b5998.svg)](https://www.facebook.com/corifeus.software) [![Donate for Corifeus / P3X](https://img.shields.io/badge/Donate-Corifeus-003087.svg)](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=QZVM4V6HVZJW6) [![Contact Corifeus / P3X](https://img.shields.io/badge/Contact-P3X-ff9900.svg)](https://www.patrikx3.com/en/front/contact) ## P3X Sponsors [IntelliJ - The most intelligent Java IDE](https://www.jetbrains.com) [![JetBrains](https://cdn.corifeus.com/assets/svg/jetbrains-logo.svg)](https://www.jetbrains.com/) [![NoSQLBooster](https://cdn.corifeus.com/assets/png/nosqlbooster-70x70.png)](https://www.nosqlbooster.com/) [The Smartest IDE for MongoDB](https://www.nosqlbooster.com) [//]: #@corifeus-footer:endartifacts/000077500000000000000000000000001516424611500130435ustar00rootroot00000000000000artifacts/helpers/000077500000000000000000000000001516424611500145055ustar00rootroot00000000000000artifacts/helpers/redis-commander-types/000077500000000000000000000000001516424611500207205ustar00rootroot00000000000000artifacts/helpers/redis-commander-types/redis-type-hash.png000066400000000000000000000003041516424611500244310ustar00rootroot00000000000000PNG  IHDRasRGB pHYs  tIMEptEXtCommentCreated with GIMPW1IDAT8c`bř(b :HGP)*G <FMgiyIENDB`artifacts/helpers/redis-commander-types/redis-type-list.png000066400000000000000000000004221516424611500244620ustar00rootroot00000000000000PNG  IHDRasRGB pHYs  tIME:+H>tEXtCommentCreated with GIMPWIDAT8˵ C}yށ2m@h`LHd[^$;yl[v[$- 'm[xWU%Mܼ~XҸ %ZFq7i;b*]OC;IENDB`artifacts/helpers/redis-commander-types/redis-type-set.png000066400000000000000000000005571516424611500243130ustar00rootroot00000000000000PNG  IHDRh6sRGB pHYs  tIMELStEXtCommentCreated with GIMPWIDAT(ϵJ1oXE ZTCo=z(+}oKB7Z9NL&tuG]\I^ob$;ԻL$R2Kd!hx*N1|'/1g55iLuB|M0Ep C^G^ _&.n4#*r| 0z@+KhېAny Ay|+_=LzwIENDB`artifacts/helpers/redis-commander-types/redis-type-zset.png000066400000000000000000000003571516424611500245030ustar00rootroot00000000000000PNG  IHDRasRGB pHYs  tIME75tEXtCommentCreated with GIMPW\IDAT8Փ 0Cƾ\?<ԛRr ""mҦ~6 3 pfZXY"ds:ܖ-B{.,nӵ/񖤈+5viPf IENDB`artifacts/readme/000077500000000000000000000000001516424611500143005ustar00rootroot00000000000000artifacts/readme/create-https-cert.md000066400000000000000000000031041516424611500201560ustar00rootroot00000000000000[//]: #@corifeus-header # 📡 P3X Redis UI that uses Socket.IO, AngularJs Material and IORedis with statistics, console - terminal, tree, dark mode, internationalization, multiple connections, web and desktop by Electron. [//]: #@corifeus-header:end # Create HTTPS2 certificate Use PEM pass phrase: `123456789` ```bash #openssl req -newkey rsa:2048 -keyout localhost.key -out localhost.csr -passwd 123456789 openssl req -x509 -sha256 -newkey rsa:2048 -keyout key.pem -out cert.pem -days 36500 openssl rsa -in key.pem -out key.nopass.pem ``` # Allow unauthorized TLS certificate ```bash process.env.NODE_TLS_REJECT_UNAUTHORIZED = "0"; ``` [//]: #@corifeus-footer --- [**P3X-REDIS-UI**](https://pages.corifeus.com/redis-ui) Build v2018.9.14-2 [![Like Corifeus @ Facebook](https://img.shields.io/badge/LIKE-Corifeus-3b5998.svg)](https://www.facebook.com/corifeus.software) [![Donate for Corifeus / P3X](https://img.shields.io/badge/Donate-Corifeus-003087.svg)](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=QZVM4V6HVZJW6) [![Contact Corifeus / P3X](https://img.shields.io/badge/Contact-P3X-ff9900.svg)](https://www.patrikx3.com/en/front/contact) ## P3X Sponsors [IntelliJ - The most intelligent Java IDE](https://www.jetbrains.com) [![JetBrains](https://cdn.corifeus.com/assets/svg/jetbrains-logo.svg)](https://www.jetbrains.com/) [![NoSQLBooster](https://cdn.corifeus.com/assets/png/nosqlbooster-70x70.png)](https://www.nosqlbooster.com/) [The Smartest IDE for MongoDB](https://www.nosqlbooster.com) [//]: #@corifeus-footer:endartifacts/readme/start-up-server.md000066400000000000000000000107051516424611500177100ustar00rootroot00000000000000[//]: #@corifeus-header # 📡 P3X Redis UI that uses Socket.IO, AngularJs Material and IORedis with statistics, console - terminal, tree, dark mode, internationalization, multiple connections, web and desktop by Electron. [//]: #@corifeus-header:end # Start up with a server ```bash npm i -g p3x-redis-ui p3x-redis # if you want to disable changing of connections p3x-redis --readonly-connections # or p3x-redis -r # or p3x-redis --config p3xrs.json # mix p3x-redis --config p3xrs.json --readonly-connections ``` # Create a Linux SystemD service ```bash adduser --disabled-password redis-ui touch /etc/systemd/system/p3x-redis-ui.service nano /etc/systemd/system/p3x-redis-ui.service ``` Place this file with this content: ```text [Unit] Description=p3x-redis After=network.target [Service] Type=simple User=redis-ui WorkingDirectory=/home/redis-ui # or if you want readonly connections as it is public #ExecStart=/usr/bin/p3x-redis --readonly-connections #ExecStart=/usr/bin/p3x-redis --readonly-connections --config /usr/some/path/p3xrs.json ExecStart=/usr/bin/p3x-redis Restart=on-abort [Install] WantedBy=multi-user.target ``` Finally: ```bash systemctl daemon-reload systemctl enable p3x-redis-ui service p3x-redis-ui start ``` The server is loading at: [https://localhost:7843](https://localhost:7843) The best is, if you have an NGINX with a valid, secure HTTPS certificate for example Let's Encrypt and then use it as a proxy, for example my own: ```text /etc/nginx/sites-enabled/p3x.redis.patrikx3.com ``` Config: ```text server { listen 80 ; listen [::]:80 ; server_name p3x.redis.patrikx3.com; error_log /var/log/nginx/p3x.redis.patrikx3.com-error.log; access_log /var/log/nginx/p3x.redis.patrikx3.com-access.log combined if=$loggable; root /home/redis-ui/www/public; location ~ /.well-known { auth_basic off; auth_pam off; allow all; root /var/www/acme-challenge; } location = /robots.txt { allow all; log_not_found off; access_log off; } return 301 https://$host$request_uri; } server { server_name p3x.redis.patrikx3.com; error_log /var/log/nginx/p3x.redis.patrikx3.com-error.log; access_log /var/log/nginx/p3x.redis.patrikx3.com-access.log combined if=$loggable; root /home/redis-ui/www/public; location ~ /.well-known { auth_basic off; auth_pam off; allow all; root /var/www/acme-challenge; } location = /robots.txt { allow all; log_not_found off; access_log off; } ssl_certificate /home/redis-ui/acme/ssl/p3x.redis.patrikx3.com/fullchain.cer; ssl_certificate_key /home/redis-ui/acme/ssl//patrikx3.com/patrikx3.com.key; location / { proxy_pass "https://127.0.0.1:7843"; proxy_set_header X-Forwarded-For $remote_addr; proxy_set_header Host $host; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; } listen 443 ssl http2; listen [::]:443 ssl http2; ssl on; add_header Strict-Transport-Security "max-age=31536000; " always; add_header X-Content-Type-Options nosniff; add_header X-XSS-Protection "1; mode=block"; } ``` [//]: #@corifeus-footer --- [**P3X-REDIS-UI**](https://pages.corifeus.com/redis-ui) Build v2018.9.14-2 [![Like Corifeus @ Facebook](https://img.shields.io/badge/LIKE-Corifeus-3b5998.svg)](https://www.facebook.com/corifeus.software) [![Donate for Corifeus / P3X](https://img.shields.io/badge/Donate-Corifeus-003087.svg)](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=QZVM4V6HVZJW6) [![Contact Corifeus / P3X](https://img.shields.io/badge/Contact-P3X-ff9900.svg)](https://www.patrikx3.com/en/front/contact) ## P3X Sponsors [IntelliJ - The most intelligent Java IDE](https://www.jetbrains.com) [![JetBrains](https://cdn.corifeus.com/assets/svg/jetbrains-logo.svg)](https://www.jetbrains.com/) [![NoSQLBooster](https://cdn.corifeus.com/assets/png/nosqlbooster-70x70.png)](https://www.nosqlbooster.com/) [The Smartest IDE for MongoDB](https://www.nosqlbooster.com) [//]: #@corifeus-footer:endartifacts/readme/start-up-with-electron.md000066400000000000000000000023471516424611500211710ustar00rootroot00000000000000[//]: #@corifeus-header # 📡 P3X Redis UI that uses Socket.IO, AngularJs Material and IORedis with statistics, console - terminal, tree, dark mode, internationalization, multiple connections, web and desktop by Electron. [//]: #@corifeus-header:end # Start up with Electron in progress... [//]: #@corifeus-footer --- [**P3X-REDIS-UI**](https://pages.corifeus.com/redis-ui) Build v2018.9.14-2 [![Like Corifeus @ Facebook](https://img.shields.io/badge/LIKE-Corifeus-3b5998.svg)](https://www.facebook.com/corifeus.software) [![Donate for Corifeus / P3X](https://img.shields.io/badge/Donate-Corifeus-003087.svg)](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=QZVM4V6HVZJW6) [![Contact Corifeus / P3X](https://img.shields.io/badge/Contact-P3X-ff9900.svg)](https://www.patrikx3.com/en/front/contact) ## P3X Sponsors [IntelliJ - The most intelligent Java IDE](https://www.jetbrains.com) [![JetBrains](https://cdn.corifeus.com/assets/svg/jetbrains-logo.svg)](https://www.jetbrains.com/) [![NoSQLBooster](https://cdn.corifeus.com/assets/png/nosqlbooster-70x70.png)](https://www.nosqlbooster.com/) [The Smartest IDE for MongoDB](https://www.nosqlbooster.com) [//]: #@corifeus-footer:endbin/000077500000000000000000000000001516424611500116335ustar00rootroot00000000000000bin/p3x-redis.js000077500000000000000000000001241516424611500140070ustar00rootroot00000000000000#!/usr/bin/env node const boot = require('p3x-redis-ui-server/src/lib/boot') boot() changelog.md000066400000000000000000000023321516424611500133340ustar00rootroot00000000000000[//]: #@corifeus-header # 📡 P3X Redis UI that uses Socket.IO, AngularJs Material and IORedis with statistics, console - terminal, tree, dark mode, internationalization, multiple connections, web and desktop by Electron. [//]: #@corifeus-header:end # Change log in progress ... [//]: #@corifeus-footer --- [**P3X-REDIS-UI**](https://pages.corifeus.com/redis-ui) Build v2018.9.14-2 [![Like Corifeus @ Facebook](https://img.shields.io/badge/LIKE-Corifeus-3b5998.svg)](https://www.facebook.com/corifeus.software) [![Donate for Corifeus / P3X](https://img.shields.io/badge/Donate-Corifeus-003087.svg)](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=QZVM4V6HVZJW6) [![Contact Corifeus / P3X](https://img.shields.io/badge/Contact-P3X-ff9900.svg)](https://www.patrikx3.com/en/front/contact) ## P3X Sponsors [IntelliJ - The most intelligent Java IDE](https://www.jetbrains.com) [![JetBrains](https://cdn.corifeus.com/assets/svg/jetbrains-logo.svg)](https://www.jetbrains.com/) [![NoSQLBooster](https://cdn.corifeus.com/assets/png/nosqlbooster-70x70.png)](https://www.nosqlbooster.com/) [The Smartest IDE for MongoDB](https://www.nosqlbooster.com) [//]: #@corifeus-footer:endp3xrs.json000066400000000000000000000016511516424611500130400ustar00rootroot00000000000000{ "p3xrs": { "https2": { "certs-info": "If you want to use your own certificates, you can use a relative or absolute cert and key.", "cert": "~p3x-redis-ui-server/artifacts/certs/cert.pem", "key": "~p3x-redis-ui-server/artifacts/certs/key.nopass.pem", "port-info": "this is ommitted, it will be default 7843", "port": 7843 }, "connections": { "home-dir-info": "if the dir config is empty or home, the connections are saved in the home folder, otherwise it will resolve the directory set as it is, either relative ./ or absolute starting with /. NodeJs will resolve this directory in p3xrs.connections.dir", "home-dir": "home" }, "static-info": "This is the best configuration, if it starts with ~, then it is in resolve the path in the node_modules, otherwise it resolves to the current process current working directory.", "static": "~p3x-redis-ui-material/dist" } }package.json000066400000000000000000000026071516424611500133560ustar00rootroot00000000000000{ "name": "p3x-redis-ui", "version": "2018.9.14-2", "description": "📡 P3X Redis UI that uses Socket.IO, AngularJs Material and IORedis with statistics, console - terminal, tree, dark mode, internationalization, multiple connections, web and desktop by Electron.", "corifeus": { "icon": "fas fa-database", "code": "2Q", "prefix": "p3x-", "type": "p3x", "opencollective": false, "publish": true, "build": true, "nodejs": "v10.10.0", "reponame": "redis-ui" }, "main": "src/index.js", "bin": { "p3x-redis": "./bin/p3x-redis.js" }, "scripts": { "test": "grunt" }, "repository": { "type": "git", "url": "https://github.com/patrikx3/redis-ui.git" }, "keywords": [ "redis", "ui", "gui", "web", "electron", "desktop", "server", "angularjs", "javascript", "material", "dark", "light" ], "author": "Patrik Laszlo ", "license": "MIT", "devDependencies": { "corifeus-builder": "^2018.9.14-1" }, "engines": { "node": ">=8.11.4" }, "homepage": "https://pages.corifeus.com/redis-ui", "dependencies": { "p3x-redis-ui-material": "^2018.9.14-3", "p3x-redis-ui-server": "^2018.9.14-2" } } redis-ui.iml000066400000000000000000000005171516424611500133120ustar00rootroot00000000000000 todo.md000066400000000000000000000036571516424611500123650ustar00rootroot00000000000000[//]: #@corifeus-header # 📡 P3X Redis UI that uses Socket.IO, AngularJs Material and IORedis with statistics, console - terminal, tree, dark mode, internationalization, multiple connections, web and desktop by Electron. [//]: #@corifeus-header:end # To do * add pager for max 200 keys at once * for now, the keys will be loaded at once, but the tree will be paging, because that is where it is having a penalty from AngularJS * add pager to use * 10 * 25 * 50 * 100 - default * 250 * 500 * All * overview is not complete * final key view * key editor * tree key * filter * types * string * key * value * hash * key * hash key * value * list * key * index * empty to append, -1 to prepend * value * set * key * value * zset * key * score * value * key * rename * delete * export * json tree * load types * encoding * ttl * editable, -1 expire right away * type * size [//]: #@corifeus-footer --- [**P3X-REDIS-UI**](https://pages.corifeus.com/redis-ui) Build v2018.9.14-2 [![Like Corifeus @ Facebook](https://img.shields.io/badge/LIKE-Corifeus-3b5998.svg)](https://www.facebook.com/corifeus.software) [![Donate for Corifeus / P3X](https://img.shields.io/badge/Donate-Corifeus-003087.svg)](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=QZVM4V6HVZJW6) [![Contact Corifeus / P3X](https://img.shields.io/badge/Contact-P3X-ff9900.svg)](https://www.patrikx3.com/en/front/contact) ## P3X Sponsors [IntelliJ - The most intelligent Java IDE](https://www.jetbrains.com) [![JetBrains](https://cdn.corifeus.com/assets/svg/jetbrains-logo.svg)](https://www.jetbrains.com/) [![NoSQLBooster](https://cdn.corifeus.com/assets/png/nosqlbooster-70x70.png)](https://www.nosqlbooster.com/) [The Smartest IDE for MongoDB](https://www.nosqlbooster.com) [//]: #@corifeus-footer:end