This commit is contained in:
Korbs 2024-11-19 20:11:02 -05:00
parent d8156ca319
commit c5f0d23fdd
10 changed files with 49 additions and 426 deletions

View file

@ -3,17 +3,21 @@ import markdoc from '@astrojs/markdoc';
import robotsTxt from 'astro-robots-txt'; import robotsTxt from 'astro-robots-txt';
import mdx from '@astrojs/mdx'; import mdx from '@astrojs/mdx';
import vue from "@astrojs/vue"; import vue from "@astrojs/vue";
import betterImageService from "astro-better-image-service";
// https://astro.build/config
export default defineConfig({ export default defineConfig({
site: 'https://sudovanilla.org', site: 'https://sudovanilla.org',
trailingSlash: 'always',
// Slug issue if not enabled // Slug issue if not enabled
redirects: { redirects: {
'/docs/': '/docs/minpluto/introduction/', '/docs/': '/docs/zorn/introduction/',
'/docs/minpluto': '/docs/minpluto/introduction/' // ? '/docs/minpluto': '/docs/zorn/introduction/' // ?
}, },
integrations: [markdoc(), mdx(), robotsTxt({ integrations: [markdoc(), mdx(),
betterImageService({
limitInputPixels: true
}),
(await import("@playform/compress")).default(),
robotsTxt({
policy: [{ policy: [{
userAgent: 'Googlebot', userAgent: 'Googlebot',
disallow: '/' disallow: '/'

BIN
bun.lockb

Binary file not shown.

View file

@ -13,26 +13,29 @@
}, },
"dependencies": { "dependencies": {
"@astrojs/markdoc": "^0.11.5", "@astrojs/markdoc": "^0.11.5",
"@astrojs/mdx": "^3.1.8", "@astrojs/mdx": "^3.1.9",
"@astrojs/partytown": "^2.1.2", "@astrojs/partytown": "^2.1.2",
"@astrojs/vue": "^4.5.2", "@astrojs/vue": "^4.5.2",
"@iconoir/vue": "^7.9.0", "@iconoir/vue": "^7.10.0",
"@meilisearch/instant-meilisearch": "^0.21.1", "@meilisearch/instant-meilisearch": "^0.22.0",
"@minpluto/zorn": "^0.4.51", "@minpluto/zorn": "^0.4.64",
"astro": "^4.16.7", "@playform/compress": "^0.1.6",
"@unpic/astro": "^0.0.47",
"astro": "^4.16.13",
"astro-auto-import": "^0.4.4", "astro-auto-import": "^0.4.4",
"astro-better-image-service": "^2.0.37",
"astro-color-mode": "^0.7.1", "astro-color-mode": "^0.7.1",
"astro-json-element": "^1.1.4", "astro-json-element": "^1.1.4",
"astro-robots-txt": "^1.0.0", "astro-robots-txt": "^1.0.0",
"astro-tooltips": "^0.6.2", "astro-tooltips": "^0.6.2",
"docs-searchbar.js": "^2.5.0", "docs-searchbar.js": "^2.5.0",
"json-truncate": "^3.0.0", "json-truncate": "^3.0.0",
"meilisearch": "^0.44.1", "meilisearch": "^0.45.0",
"reshaped": "^3.2.3", "reshaped": "^3.2.7",
"untruncate-json": "^0.0.1", "untruncate-json": "^0.0.1",
"vue": "^3.5.12" "vue": "^3.5.13"
}, },
"devDependencies": { "devDependencies": {
"sass": "^1.80.4" "sass": "^1.81.0"
} }
} }

View file

@ -1,89 +0,0 @@
---
title: API
software: minpluto
---
## 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://image.proxy.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`

View file

@ -1,71 +0,0 @@
---
title: Compatibility
software: minpluto
---
## 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.

View file

@ -1,43 +0,0 @@
---
title: Introduction
software: minpluto
---
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.

View file

@ -1,31 +0,0 @@
---
title: Requirements
software: minpluto
---
## 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.

View file

@ -1,171 +0,0 @@
---
title: Self-Hosting
software: minpluto
---
## 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).

View file

@ -1,5 +0,0 @@
---
title: Support
software: minpluto
---
If you need help with something, email me.

View file

@ -9,6 +9,11 @@ import Default from "@layouts/Default.astro";
// Components // Components
import Sidebar from "@components/docs/sidebar.astro"; import Sidebar from "@components/docs/sidebar.astro";
// Icons
import {
WarningTriangleSolid
} from "@iconoir/vue"
--- ---
<Default MobileTitle="SudoVanilla Documentation"> <Default MobileTitle="SudoVanilla Documentation">
<Fragment slot="sub-header"> <Fragment slot="sub-header">
@ -16,12 +21,16 @@ import Sidebar from "@components/docs/sidebar.astro";
<p class="header-sub-service"><span id="show-w-scroll">SudoVanilla</span> Documentations</p> <p class="header-sub-service"><span id="show-w-scroll">SudoVanilla</span> Documentations</p>
</div> </div>
<div> <div>
<!-- <a href="/docs/minpluto/introduction/">MinPluto</a> <a href="https://minpluto.docs.sudovanilla.org">MinPluto</a>
<a href="/docs/zorn/introduction/">Zorn Player</a> <a href="/docs/zorn/introduction/">Zorn Player</a>
<a href="/docs/penpot-desktop/introduction/">Penpot Desktop</a> --> <a href="/docs/penpot-desktop/introduction/">Penpot Desktop</a>
</div> </div>
</Fragment> </Fragment>
<Fragment slot="body"> <Fragment slot="body">
<div class="page-banner">
<p><WarningTriangleSolid/> Documentation part of sudovanilla.org is being moved. Each project is being moved to it's own subdomain.</p>
<p>Already moved: MinPluto</p>
</div>
<div class="document-layout"> <div class="document-layout">
<div class="doc-content"> <div class="doc-content">
<slot slot="content"/> <slot slot="content"/>
@ -38,4 +47,21 @@ import Sidebar from "@components/docs/sidebar.astro";
text-decoration: underline; text-decoration: underline;
} }
} }
.page-banner {
background: #ffff9e;
color: black;
display: flex;
align-items: center;
justify-content: space-between;
padding: 12px 24px;
border-radius: 6px;
* {
margin: 0px;
display: flex;
align-items: center;
}
svg {
margin-right: 12px;
}
}
</style> </style>