This commit is contained in:
Korbs 2024-10-24 17:16:19 -04:00
commit f458300f65
7 changed files with 440 additions and 0 deletions

89
API.mdx Normal file
View file

@ -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`

30
FAQ.md Normal file
View file

@ -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 its 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 dont 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.

71
compatibility.mdx Normal file
View file

@ -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.

43
introduction.mdx Normal file
View file

@ -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 its 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 dont 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.

31
requirements.mdx Normal file
View file

@ -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.

171
self-hosting.mdx Normal file
View file

@ -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 youve 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
Youll 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 youve 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).

5
support.mdx Normal file
View file

@ -0,0 +1,5 @@
---
Title: Support
Type: Document
---
If you need help with something, email me.