Introducing DiskerNet - the tool that connects to your browser and makes it easy to save and organize the things you discover online.
+DiskerNet empowers you to be the master archivist of your own internet browsing. As a robust, lightweight tool, DiskerNet seamlessly connects to your browser, saving and organizing your online discoveries in real-time. With an option to archive everything or only bookmark-worthy content, DiskerNet places you in full control of your browsing history. No special plugins or extensions required. -With DiskerNet, you can choose between two modes:
+## Why DiskerNet? -No matter which mode you choose, DiskerNet makes it easy to search, browse, and share your archived content. Plus, our tool is lightweight and doesn't require any special plugins or extensions.
+**Local SSL Certificates Now Supported!** :lock: :tada: -To get started with DiskerNet, simply download the tool and connect it to your browser. You'll be amazed at how much easier it is to save and organize the things you discover online.
- -DiskerNet is licensed under the Polyform Strict License 1.0.0. You can purchase a license for different uses below:
- -- For personal, research, noncommercial purposes: Buy a Perpetual Non-commercial Use License of the current Version re-upped Monthly to the Latest Version, [USD$1.99 per month, paid yearly](https://buy.stripe.com/7sIg0acC5amT7PW6pl). Or [purchase an Unlimited Time version for the equivalent of 5 years](https://buy.stripe.com/14k5lw31veD96LS29b). -- For part of your internal tooling in your org: Buy a Perpetual Internal Use License of the current Version re-upped Monthly to the Latest Version, [USD $12.99 per month, paid yearly](https://buy.stripe.com/9AQaFQ59D52z3zGdRS), or [purchase an Unlimited Time version for the equivalent of 5 years](https://buy.stripe.com/fZe3do1Xr1Qn9Y4011). -- For anywhere in your business: Buy a Perpetual Small-medium Business License of the current Version re-upped Monthly to the Latest Version, [USD $99 per month, paid yearly](https://buy.stripe.com/eVa8xIcC5gLhfio6po). Or [purchase an Unlimited Time version for the equivalent of 5 years](https://buy.stripe.com/00g5lwcC566D7PW00Z). - -## Get it +## Get DiskerNet [Download a release](https://github.com/crisdosyago/Diskernet/releases) or ... -**Get it on [npm](https://www.npmjs.com/package/diskernet):** +Install via **[npm](https://www.npmjs.com/package/diskernet)**: ```sh $ npm i -g diskernet@latest @@ -61,60 +48,13 @@ or... $ git clone https://github.com/crisdosyago/DiskerNet $ cd DiskerNet $ npm i + +## Contributions! + +Welcome! Get involved. :) $ ./scripts/build_setup.sh $ ./scripts/compile.sh $ cd bin/ ``` -### Frequently Asked Questions - -**What is the licensing for Diskernet?** - -Diskernet is licensed under the Polyform Strict License 1.0.0. This license allows individuals to use the tool for free for personal, noncommercial purposes. It also allows businesses and organizations to purchase a license for use in their internal tooling or anywhere in their business. - -**Why did you choose the Polyform license for Diskernet?** - -We chose the Polyform license for Diskernet because it offers several benefits. It protects our rights as the creators of the tool, it allows individuals to use the tool for free for personal use, and it allows businesses to purchase a license for use in their operations. We believe that the Polyform license strikes a good balance between the interests of the open source community and the rights of the creators of Diskernet. - -**Is the Polyform license open source?** - -The Polyform license is not an open source license as defined by the Open Source Initiative (OSI). However, it allows individuals to use the tool for free for personal, noncommercial purposes, and it allows businesses to purchase a license for use in their operations. - -**Can I modify or distribute Diskernet under the Polyform license?** - -No, the Polyform license does not allow users to modify or distribute Diskernet without the permission of the creators. This is to protect our rights as the creators of the tool and to ensure that our work is not used or distributed without our permission. - -**Can I use Diskernet for commercial purposes?** - -Yes, you can use Diskernet for commercial purposes if you purchase a license from us. The license allows businesses and organizations to use Diskernet for their own purposes, including in their internal tooling or anywhere in their business. - -**What is Diskernet?** - -Diskernet is a tool for archiving and organizing online content. It connects to your browser and automatically saves the pages you visit, allowing you to easily search, browse, and share your archived content. - -**What are the key features of Diskernet?** - -The key features of Diskernet include: - -- Connects to your browser and automatically archives your browsing activity -- Two modes: archive everything or only bookmark-worthy content -- Easy-to-use interface for searching, browsing, and sharing your archives -- Lightweight and doesn't require any special plugins or extensions - -**Why should I use Diskernet?** - -There are several reasons to use Diskernet: - -- Never lose track of your favorite online content again -- Save time by quickly finding the information you need -- Share your archives with others, or keep them private -- Easy to use and doesn't require any extra tools or plugins - -**How do I get started with Diskernet?** - -Getting started with Diskernet is easy! Simply download the tool and connect it to your browser. You'll be amazed at how much easier it is to save and organize the things you discover online. - -**Does Diskernet work with all browsers?** - -No, right now Diskernet is compatible with Chrome and Chromium only (although theoretically compatible with Edge owing to the Remote Debugging Protocol). - +Navigate your digital world with DiskerNet. Download and start archiving today! diff --git a/global-run.cjs b/global-run.cjs new file mode 100755 index 0000000..cce1fab --- /dev/null +++ b/global-run.cjs @@ -0,0 +1,22 @@ +#!/usr/bin/env node + +const os = require('os'); +const { spawn } = require('child_process'); +const fs = require('fs'); +const path = require('path'); + +if (!fs.existsSync(path.join(process.cwd(), 'node_modules'))) { + spawn('npm', ['i'], { stdio: 'inherit' }); +} + +// Getting the total system memory +const totalMemory = os.totalmem(); + +// Allocating 90% of the total memory +const memoryAllocation = Math.floor((totalMemory / (1024 * 1024)) * 0.8); // Converted bytes to MB and took 90% of it + +console.log(`Index can use up to: ${memoryAllocation}MB RAM`); + +// Running the application +spawn('node', [`--max-old-space-size=${memoryAllocation}`, path.resolve(__dirname, 'build', 'diskernet.cjs')], { stdio: 'inherit' }); + diff --git a/package-lock.json b/package-lock.json index 42279af..55ac94e 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "diskernet", - "version": "2.9.0", + "version": "3.0.6", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "diskernet", - "version": "2.9.0", + "version": "3.0.6", "license": "PolyForm Strict 1.0", "dependencies": { "@667/ps-list": "^1.1.3", @@ -1796,6 +1796,18 @@ "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", "dev": true }, + "node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/marky": { "version": "1.2.5", "resolved": "https://registry.npmjs.org/marky/-/marky-1.2.5.tgz", @@ -1954,9 +1966,9 @@ } }, "node_modules/nodemon": { - "version": "2.0.20", - "resolved": "https://registry.npmjs.org/nodemon/-/nodemon-2.0.20.tgz", - "integrity": "sha512-Km2mWHKKY5GzRg6i1j5OxOHQtuvVsgskLfigG25yTtbyfRGn/GNvIbRyOf1PSCKJ2aT/58TiuUsuOU5UToVViw==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/nodemon/-/nodemon-3.0.1.tgz", + "integrity": "sha512-g9AZ7HmkhQkqXkRc20w+ZfQ73cHLbE8hnPbtaFbFtCumZsjyMhKk9LajQ07U5Ux28lvFjZ5X7HvWR1xzU8jHVw==", "dev": true, "dependencies": { "chokidar": "^3.5.2", @@ -1964,8 +1976,8 @@ "ignore-by-default": "^1.0.1", "minimatch": "^3.1.2", "pstree.remy": "^1.1.8", - "semver": "^5.7.1", - "simple-update-notifier": "^1.0.7", + "semver": "^7.5.3", + "simple-update-notifier": "^2.0.0", "supports-color": "^5.5.0", "touch": "^3.1.0", "undefsafe": "^2.0.5" @@ -1974,7 +1986,7 @@ "nodemon": "bin/nodemon.js" }, "engines": { - "node": ">=8.10.0" + "node": ">=10" }, "funding": { "type": "opencollective", @@ -2380,12 +2392,18 @@ "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" }, "node_modules/semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, "bin": { - "semver": "bin/semver" + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" } }, "node_modules/send": { @@ -2483,24 +2501,15 @@ } }, "node_modules/simple-update-notifier": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/simple-update-notifier/-/simple-update-notifier-1.1.0.tgz", - "integrity": "sha512-VpsrsJSUcJEseSbMHkrsrAVSdvVS5I96Qo1QAQ4FxQ9wXFcB+pjj7FB7/us9+GcgfW4ziHtYMc1J0PLczb55mg==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/simple-update-notifier/-/simple-update-notifier-2.0.0.tgz", + "integrity": "sha512-a2B9Y0KlNXl9u/vsW6sTIu9vGEpfKu2wRV6l1H3XEas/0gUIzGzBoP/IouTcUQbm9JWZLH3COxyn03TYlFax6w==", "dev": true, "dependencies": { - "semver": "~7.0.0" + "semver": "^7.5.3" }, "engines": { - "node": ">=8.10.0" - } - }, - "node_modules/simple-update-notifier/node_modules/semver": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.0.0.tgz", - "integrity": "sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==", - "dev": true, - "bin": { - "semver": "bin/semver.js" + "node": ">=10" } }, "node_modules/statuses": { @@ -2702,9 +2711,9 @@ } }, "node_modules/word-wrap": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", - "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", + "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==", "dev": true, "engines": { "node": ">=0.10.0" @@ -2744,6 +2753,12 @@ } } }, + "node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, "node_modules/yocto-queue": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", diff --git a/package.json b/package.json index 205cdff..14a88e3 100644 --- a/package.json +++ b/package.json @@ -1,12 +1,12 @@ { "name": "diskernet", - "version": "2.9.0", + "version": "3.0.6", "type": "module", "description": "Library server and an archivist browser controller.", "main": "src/app.js", "module": "dist/diskernet.mjs", "bin": { - "diskernet": "build/diskernet.cjs" + "diskernet": "./global-run.cjs" }, "scripts": { "start": "node src/app.js", @@ -41,7 +41,7 @@ "library" ], "author": "@dosy", - "license": "PolyForm Strict 1.0", + "license": "AGPL-3.0", "bugs": { "url": "https://github.com/dosyago/DiskerNet/issues" }, diff --git a/public/index.html b/public/index.html index f91d953..362e569 100644 --- a/public/index.html +++ b/public/index.html @@ -1,12 +1,12 @@ -- View the index + View your index