From f458300f659b40621e97bf255682e9970e998c9a Mon Sep 17 00:00:00 2001 From: Korbs Date: Thu, 24 Oct 2024 17:16:19 -0400 Subject: [PATCH] updaet --- API.mdx | 89 ++++++++++++++++++++++++ FAQ.md | 30 ++++++++ compatibility.mdx | 71 +++++++++++++++++++ introduction.mdx | 43 ++++++++++++ requirements.mdx | 31 +++++++++ self-hosting.mdx | 171 ++++++++++++++++++++++++++++++++++++++++++++++ support.mdx | 5 ++ 7 files changed, 440 insertions(+) create mode 100644 API.mdx create mode 100644 FAQ.md create mode 100644 compatibility.mdx create mode 100644 introduction.mdx create mode 100644 requirements.mdx create mode 100644 self-hosting.mdx create mode 100644 support.mdx diff --git a/API.mdx b/API.mdx new file mode 100644 index 0000000..d6dfb96 --- /dev/null +++ b/API.mdx @@ -0,0 +1,89 @@ +--- +Title: API +Type: Document +--- +## Generic +**Language** + +`/api/language/` [`en` | `jp`] + +**Telemtry** + +`/api/telemtry/` [`enable` | `disable`] + +## Player +**Milieu** + +`/api/player/milieu/` [`enable` | `disable`] + +Enable or disable the Milieu mode. + +## Account System +**Register** + +`/api/auth/register` + +*Required* + - `name` + - `email` + - `password` + +When a user registered an account, it is processed with the following data: + +```JSON +{ + "name": "PROVIDED_NAME", + "ui_theme": "Default", + "ui_color": "Default", + "ui_zen": "false", + "ui_sidebar_size": "Normal", + "invidous_data": "https://yt.sudovanilla.org", + "invidous_media": "https://yt.sudovanilla.org", + "safetwitch_data": "https://twitch.sudovanilla.org", + "safetwitch_media": "https://twitch.sudovanilla.org", + "image_proxy": "https://ipx.sudovanilla.org", + "player_type": "Zorn" +} +``` + +The end-user is then redirected to `/?=welcome` with an onboarding screen(Planned, this actually does nothing for now). + +Before logging in, end-users are required to verify their email first before logging in. + +**Confirm** + +`/api/auth/confirm` + +*Required* + - `email` + - `code` + +As mention just before, end-users are required to verify their email first before logging in. After registration, end-users are brought to a "Confirm Email" page. + +It is required that the email in question is provided, along with the code sent to that email from the SMTP server. + +**Login** + +`/api/auth/login` + +*Required* + - `email` + - `password` + +**Logout** + +`/api/auth/logout` + +**Update Name** + +`/api/update/name` + +*Required* + - `name` + +**Update Email** + +`/api/update/email` + +*Required* + - `email` \ No newline at end of file diff --git a/FAQ.md b/FAQ.md new file mode 100644 index 0000000..1b69ad4 --- /dev/null +++ b/FAQ.md @@ -0,0 +1,30 @@ +## End-User FAQ +### Can I use MinPluto on this device? + +For devices with a web browser built-in, MinPluto will run in it. However, MinPluto does not have a dedicated app for devices like Roku, Amazon Firestick, Google TV, and any other Smart TV device along with gaming consoles. + +For mobile users, you can install MinPluto from your browser as an app, if the browser has that option. + +### Will there be a Android/iOS app? + +For now, MinPluto is planned to be only a web application that can be accessed via a web browser. There are currently no plans to build a mobile application. + +### What data does MinPluto collect? + +MinPluto by itself does not collect any data about you or any other user. + +If you decide to opt-in to the telemtry, the Telemtry page will list what is logged and what is not logged. + +However, please keep in mind that on other MinPluto instances, the instance operator can log your IP address like any other server could. + +### What is a YouTube/Twitch frontend? + +A frontend is it’s own UI and service that serves data from another platform such as YouTube, Twitch, X, Reddit, etc. + +### Why use a different frontend and not use the real thing? + +There are multiple reasons to use a frontend like MinPluto. Reasons such as like privacy, to avoid being tracked from invasive companies; speed, to avoid the bloated pages that these platforms have…frontend alternatives are commonly lightweight; and another reason is to avoid ads, all frontends don’t serve ads like these platforms do. + +### Why is the player different for Twitch Streams? + +In order to support playing live streams for MinPluto a technology known as HLS(HTTP Live Streaming) has to be added to a supported player, in this case VideoJS. Using your browser's built-in player will not work and this has not been tested for for MinPluto's custom player yet. \ No newline at end of file diff --git a/compatibility.mdx b/compatibility.mdx new file mode 100644 index 0000000..8c807ab --- /dev/null +++ b/compatibility.mdx @@ -0,0 +1,71 @@ +--- +Title: Compatibility +Type: Document +--- +## Package Managers +| Package Manager | Install Packages | Run Project | +|---------------------|------------------|-------------| +| NPM | ❌ | ❌ | +| PNPM | ❌ | ❌ | +| Bun | ✅ | ✅ | +| Yarn v1 | ✅ | ❌ | +| Yarn v3 | ✅ | ❌ | +| Yarn v4 | ✅ | ❌ | + +## Deployment +| Software | Build | Run | +|---------------------|-------|------| +Bun (Local) | ✅ | ✅ | +Node (Local) | ✅ | ✅ | +Docker (Local) | ✅ | Mix | +Cloudflare Pages | 🔘 | 🔘 | + +> MinPluto can use a lot of bandwidth, which most services will charge extra for. So this list is small and limited to certain services that allow unlimited bandwidth. + +## Web Browsers +| Browser | Live Streams |Player | CSS | JavaScript | Account System | Embed | +|--------------------|--------------|-------|-----|------------|----------------|-------| +| **Other Browsers**| +| FOSS Browser | ❌ | ✅ | ❌ | ✅ | 🔘 | 🔘 | +| Ladybird*3 | ❌ | ❌ | ✅ | ✅ | 🔘 | 🔘 | +| **WebKit Browsers**| +| Safariᴸᴬ | ✅ | ✅ | ❌ | ✅ | 🔘 | 🔘 | +| GNOME Web | ✅ | ❌*2 | ✅ | ✅ | 🔘 | 🔘 | +| DuckDuckGoᴸᴬ | ✅ | ✅ | ✅ | ✅ | 🔘 | 🔘 | +| **Electron Browsers**| +| Min | ✅ | ✅ | ✅ | ✅ | 🔘 | 🔘 | +| **Chromium Browsers**| +| Braveᴸᴬ | ✅ | ✅ | ✅ | ✅ | 🔘 | 🔘 | +| Chromium | 🔘 | 🔘 | 🔘 | 🔘 | 🔘 | 🔘 | +| Google Chrome | 🔘 | 🔘 | 🔘 | 🔘 | 🔘 | 🔘 | +| Microsoft Edge | 🔘 | 🔘 | 🔘 | 🔘 | 🔘 | 🔘 | +| Opera | 🔘 | 🔘 | 🔘 | 🔘 | 🔘 | 🔘 | +| Vivaldi | ✅ | ✅ | ✅ | ✅ | 🔘 | 🔘 | +| Yandex | ✅ | ✅ | ✅ | ✅ | 🔘 | 🔘 | +| **Firefox Browsers**| +| ~~Dot Browser~~*1 | 🔘 | 🔘 | 🔘 | 🔘 | 🔘 | 🔘 | +| Falkon | ✅ | ✅ | ✅ | ✅ | 🔘 | 🔘 | +| Firefox | ✅ | ✅ | ✅ | ✅ | 🔘 | 🔘 | +| Floorp | ✅ | ✅ | ✅ | ✅ | 🔘 | 🔘 | +| IceCat | ❌ | ✅ | ❌ | 🔘 | 🔘 | 🔘 | +| Librewolf | ✅ | ✅ | ✅ | ✅ | 🔘 | 🔘 | +| Mull | ❌ | ✅ | ✅ | ✅ | 🔘 | 🔘 | +| Mullvad | ✅ | ❌ | ✅ | ✅ | 🔘 | 🔘 | +| Tor | 🔘 | 🔘 | 🔘 | 🔘 | 🔘 | 🔘 | +| Waterfox | ✅ | ✅ | ✅ | ✅ | 🔘 | 🔘 | +| **Outdated Browsers**| +| Internet Explorer | ❌ | ✅ | ❌ | ✅ | 🔘 | 🔘 | + +> 🔘: Untested + +> All browsers are tested as-is out of box. Some functions with ❌ can probably work if you tweak the settings or interact with a built-in extension. + +> For Firefox-based browsers: Timestamp may show wrong data on first load, everything works correctly after a reload and so on. + +> ᴸᴬ: Tested in Lambdatest + +> *1: This web browser is unstable to operate + +> *2: Seeking doesn't work + +> *3: Ladybird is a new web browser that is uncompleted. This browser is not expected to work correctly for MinPluto at the moment. \ No newline at end of file diff --git a/introduction.mdx b/introduction.mdx new file mode 100644 index 0000000..9c28d03 --- /dev/null +++ b/introduction.mdx @@ -0,0 +1,43 @@ +--- +Title: Introduction +Type: Document +--- +MinPluto is a modern privacy frontend for YouTube giving you total anonymity. It provides additional features such an account system with an anomyous option, no annoying ads, multilingual support, custom video player, and additional customization. + +***MinPluto is currently in early alpha stages, so a lot of features that were mentioned above may not be present in the current product.*** + +## FAQ + +**Can I use MinPluto on this device?** + +For devices with a web browser built-in, MinPluto will run in it. However, MinPluto does not have a dedicated app for devices like Roku, Amazon Firestick, Google TV, and any other Smart TV device along with gaming consoles. + +For mobile users, you can install MinPluto from your browser as an app, if the browser has that option. + +**Will there be a Android/iOS app?** + +For now, MinPluto is planned to be only a web application that can be accessed via a web browser. There are currently no plans to build a mobile application. + +**Can I create an account?** + +MinPluto is currently in an early alpha stage, which does not yet have an account system for you to use. There are plans to add one which will also will include an anomyous mode for privacy-focused users. + +**What data does MinPluto collect?** + +MinPluto by itself does not collect any data about you or any other user. + +If you decide to opt-in to the telemtry, the Telemtry page will list what is logged and what is not logged. + +However, please keep in mind that on other MinPluto instances, the instance operator can log your IP address like any other server could. + +**What is a YouTube/Twitch frontend?** + +A frontend is it’s own UI and service that serves data from another platform such as YouTube, Twitter, Reddit, etc. + +**Why use a different frontend and not use the real thing?** + +There are multiple reasons to use a frontend like MinPluto. Reasons such as like privacy, to avoid being tracked from invasive companies; speed, to avoid the bloated pages that these platforms have…frontend alternatives are commonly lightweight; and another reason is to avoid ads, all frontends don’t serve ads like these platforms do. + +**Why is the player different for Twitch Streams?** + +In order to support playing live streams for MinPluto a technology known as HLS(HTTP Live Streaming) has to be added to a supported player, in this case VideoJS. Using your browser's built-in player will not work and this has not been tested for Zorn yet. \ No newline at end of file diff --git a/requirements.mdx b/requirements.mdx new file mode 100644 index 0000000..684f213 --- /dev/null +++ b/requirements.mdx @@ -0,0 +1,31 @@ +--- +Title: Requirements +Type: Document +--- +## Hardware +| | Minimum | Recommended | +|-------------------|--------------------|------------------| +| CPU Cores | 2 | 4 | +| Memory | 2GB*1 | 8GB | +| Storage | 20GB | 60GB | +| Network Speed | 300Mbps/Upload | 1Gbps/Upload | +| Traffic | 20TB Monthly | Unlimited/No Cap | + +> *1: At least have 512Mb free for the operating system. + +**Recommended VPS** + +| Host | Plan | Monthly Pricing | Yearly Pricing | +|------------------|-------------|-------------------|------------------| +| BuyVM | SLICE 4096 | $15.00 | $180.00 | +| Regxa | EVA3 | $15.00 | $171.00 | + +> A provider with unlimited bandwidth is preferred. + +> All prices are listed in USD. + +## Software + +The package manager that you need to use with MinPluto must be [Bun](https://bun.sh/) since it appears to be the most functional option for this project. Attempting to use another package manager like Yarn or PNPM may cause issues, view [Package Managers](#package-managers) in the [Compatibility](#compatibility) section. There seems to be some issues related to both `@astrojs/vue` and `@iconoir/vue`. + +You'll still need to have [NodeJS](https://nodejs.org/en/download/package-manager) v21 or newer install in order for translations to work properly. \ No newline at end of file diff --git a/self-hosting.mdx b/self-hosting.mdx new file mode 100644 index 0000000..93cc1ce --- /dev/null +++ b/self-hosting.mdx @@ -0,0 +1,171 @@ +--- +Title: Self-Hosting +Type: Document +--- +## Hardware Requirements + +| Minimium | Recommended | +| ---------------------------------------- | ---------------------------------------- | +| 10GB of Disk Space | 60GB of Disk Space | +| 512MB | 4GB | +| 1 Core | 2 Core | +| 10TB of Traffic (Unlimited is preferred) | 20TB of Traffic (Unlimited is preferred) | + +## Installation + +### Docker Compose Method (Recommended) + +Please make sure that the Docker Engine is installed on your system before continuing. + +Clone MinPluto somewhere on your system: + +Terminal window + +``` +git clone https://sudovanilla.com/code/MinPluto/MinPluto/ +``` + +cd MinPluto + +Then, edit the included `config.json` file: + +``` +{ +"SERVER_DOMAIN": "https://example.org", + +"SERVER_ADMIN": "Company LLC", + +"SERVER_LOCATION": "Undisclosed", + +"STATISTICS": false, + +"ANALYLICS_TOOL": "", + +"ANALYLICS_ID": "", + +"SCRIPT_SRC": "", + +"DOMAIN": "example.org", + +"DEFAULT_VIDEO_PROXY": "https://v.minpluto.org", + +"DEFAULT_DATA_PROXY": "https://v.minpluto.org", + +"DEFAULT_IMAGE_PROXY": "https://i.minpluto.org", + +"DEFAULT_PLAYER": "Zorn", + +"SIDEBAR_CATEGORIES": true, + +"SIDEBAR_DISCOVER": false, + +"MODIFIED": false, + +"CUSTOM_SOURCE_CODE": "" + +} +``` + +You should at the least edit `SERVER_DOMAIN` and `SERVER_ADMIN`. If you have an analytics tool that you use like Plausible or Umami, the configuration will work with them. + +If you plan to make any changes to MinPluto on your instance, you must make it public and state what you’ve changed, and provide a link to the modified source code in `CUSTOM_SOURCE_CODE`. + +You can now launch MinPluto: + +Terminal window + +``` +docker compose up -d # sudo may be required depending on your setup +``` + +MinPluto should launch on the default port, which should be at [http://0.0.0.0:1930](http://0.0.0.0:1930). An image proxy is added to the Docker Compose file, which should be on port `1931`. + +### Manual + +You’ll need to install either NodeJS or Bun. + +Clone MinPluto somewhere on your system: + +Terminal window + +``` +git clone https://sudovanilla.com/code/MinPluto/MinPluto/ +``` + +cd MinPluto + +Then, edit the included `config.json` file: + +``` +{ +"SERVER_DOMAIN": "https://example.org", + +"SERVER_ADMIN": "Company LLC", + +"SERVER_LOCATION": "Undisclosed", + +"STATISTICS": false, + +"ANALYLICS_TOOL": "", + +"ANALYLICS_ID": "", + +"SCRIPT_SRC": "", + +"DOMAIN": "example.org", + +"DEFAULT_VIDEO_PROXY": "https://v.minpluto.org", + +"DEFAULT_DATA_PROXY": "https://v.minpluto.org", + +"DEFAULT_IMAGE_PROXY": "https://i.minpluto.org", + +"DEFAULT_PLAYER": "Zorn", + +"SIDEBAR_CATEGORIES": true, + +"SIDEBAR_DISCOVER": false, + +"MODIFIED": false, + +"CUSTOM_SOURCE_CODE": "" + +} +``` + +You should at the least edit `DEFAULT_IMAGE_PROXY`, `SERVER_DOMAIN`, and `SERVER_ADMIN`. If you have an analytics tool that you use like Plausible or Umami, the configuration will work with them. + +If you plan to make any changes to MinPluto on your instance, you must make it public and state what you’ve changed, and provide a link to the modified source code in `CUSTOM_SOURCE_CODE`. + +All domains should NOT end with a `/`. + +Install packages: + +* [NPM](https://sudovanilla.com/docs/minpluto/selfhosting/#tab-panel-0) + +* [Bun](https://sudovanilla.com/docs/minpluto/selfhosting/#tab-panel-1) + +* [Yarn](https://sudovanilla.com/docs/minpluto/selfhosting/#tab-panel-2) + +* [PNPM](https://sudovanilla.com/docs/minpluto/selfhosting/#tab-panel-3) + +``` +npm install +``` + +Then run: + +* [NPM](https://sudovanilla.com/docs/minpluto/selfhosting/#tab-panel-4) + +* [Bun](https://sudovanilla.com/docs/minpluto/selfhosting/#tab-panel-5) + +* [Yarn](https://sudovanilla.com/docs/minpluto/selfhosting/#tab-panel-6) + +* [PNPM](https://sudovanilla.com/docs/minpluto/selfhosting/#tab-panel-7) + +``` +npm start +``` + +MinPluto should launch on the default port, which should be at [http://0.0.0.0:1930](http://0.0.0.0:1930). + diff --git a/support.mdx b/support.mdx new file mode 100644 index 0000000..314e43b --- /dev/null +++ b/support.mdx @@ -0,0 +1,5 @@ +--- +Title: Support +Type: Document +--- +If you need help with something, email me.