diff --git a/.env b/.env new file mode 100644 index 0000000..411f761 --- /dev/null +++ b/.env @@ -0,0 +1 @@ +CONTENT_API_KEY=bef2ed15d9e38f7703be9412b3 \ No newline at end of file diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..5919fc8 --- /dev/null +++ b/.gitignore @@ -0,0 +1,23 @@ +# build output +dist/ + +# generated types +.astro/ + +# dependencies +node_modules/ + +# logs +npm-debug.log* +yarn-debug.log* +yarn-error.log* +pnpm-debug.log* + +# environment variables +.env.production + +# macOS-specific files +.DS_Store + +# jetbrains setting folder +.idea/ \ No newline at end of file diff --git a/Jenkinsfile b/Jenkinsfile new file mode 100644 index 0000000..6dcc366 --- /dev/null +++ b/Jenkinsfile @@ -0,0 +1,17 @@ +pipeline { + agent any + stages { + stage('Build') { + steps { + sh "npm i --registry https://js.registry.sudovanilla.org" + sh "npx astro build" + } + } + stage('Deploy') { + steps { + echo "Deploy" + sh "mv dist/ /stations/mar-s1/docker/volumes/static/sudovanilla-website/" + } + } + } +} diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..7602752 --- /dev/null +++ b/LICENSE @@ -0,0 +1,22 @@ +MIT License + +Copyright 2023-2025 SudoVanilla + +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: + +In addition, the following restrictions apply: + +1. The Software and any modifications made to it may not be used for the purpose of training or improving machine learning algorithms, +including but not limited to artificial intelligence, natural language processing, or data mining. This condition applies to any derivatives, +modifications, or updates based on the Software code. Any usage of the Software in an AI-training dataset is considered a breach of this License. + +2. The Software may not be included in any dataset used for training or improving machine learning algorithms, +including but not limited to artificial intelligence, natural language processing, or data mining. + +3. Any person or organization found to be in violation of these restrictions will be subject to legal action and may be held liable +for any damages resulting from such use. + +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. \ No newline at end of file diff --git a/README.md b/README.md deleted file mode 100644 index d0e5d26..0000000 --- a/README.md +++ /dev/null @@ -1 +0,0 @@ -# SudoVanilla Website diff --git a/astro.config.mjs b/astro.config.mjs new file mode 100644 index 0000000..f2b3982 --- /dev/null +++ b/astro.config.mjs @@ -0,0 +1,35 @@ +// @ts-check +import { defineConfig } from 'astro/config'; +import mdx from '@astrojs/mdx'; +import vue from "@astrojs/vue"; +import compressor from "astro-compressor"; +import purgecss from 'astro-purgecss'; + +export default defineConfig({ + site: 'https://sudovanilla.org', + redirects: { + '/docs/': '/docs/zorn/introduction/', + '/docs/minpluto': '/docs/zorn/introduction/', + '/on-premise-policy': '/umbrella-policy' + }, + integrations: [ + compressor(), + mdx(), + vue(), + purgecss({ + fontFace: true, + keyframes: true + }) + ], + output: 'static', + build: { + inlineStylesheets: 'never' + }, + server: { + port: 5522, + host: true + }, + devToolbar: { + enabled: false + } +}); \ No newline at end of file diff --git a/bunfig.toml b/bunfig.toml new file mode 100644 index 0000000..01b9dd7 --- /dev/null +++ b/bunfig.toml @@ -0,0 +1,10 @@ +smol = true +telemetry = false + +[install] +auto = "force" +registry = "https://js.registry.sudovanilla.org" +saveTextLockfile = false + +[install.lockfile] +save = false \ No newline at end of file diff --git a/package.json b/package.json new file mode 100644 index 0000000..51276e8 --- /dev/null +++ b/package.json @@ -0,0 +1,32 @@ +{ + "name": "sudovanilla-dojo", + "type": "module", + "version": "2025.01.01", + "scripts": { + "start": "astro preview --host 192.168.1.172", + "dev": "astro dev" + }, + "dependencies": { + "@astrojs/mdx": "^4.0.6", + "@astrojs/node": "^9.0.1", + "@astrojs/vue": "^5.0.5", + "@iconoir/vue": "^7.10.1", + "@sudovanilla/errors": "^3.0.0", + "@sudovanilla/pandora": "1.7.7", + "@tryghost/content-api": "^1.11.21", + "astro": "^5.1.7", + "astro-color-mode": "^0.7.1", + "astro-compressor": "^1.0.0", + "astro-purgecss": "^5.1.0", + "astro-robots-txt": "^1.0.0", + "astro-tooltips": "^0.6.2", + "purgecss": "^7.0.2", + "vue": "^3.5.13" + }, + "devDependencies": { + "sass": "^1.83.4" + }, + "trustedDependencies": [ + "@parcel/watcher" + ] +} \ No newline at end of file diff --git a/public/fonts/Open_Sans/OFL.txt b/public/fonts/Open_Sans/OFL.txt new file mode 100644 index 0000000..4fc6170 --- /dev/null +++ b/public/fonts/Open_Sans/OFL.txt @@ -0,0 +1,93 @@ +Copyright 2020 The Open Sans Project Authors (https://github.com/googlefonts/opensans) + +This Font Software is licensed under the SIL Open Font License, Version 1.1. +This license is copied below, and is also available with a FAQ at: +https://openfontlicense.org + + +----------------------------------------------------------- +SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007 +----------------------------------------------------------- + +PREAMBLE +The goals of the Open Font License (OFL) are to stimulate worldwide +development of collaborative font projects, to support the font creation +efforts of academic and linguistic communities, and to provide a free and +open framework in which fonts may be shared and improved in partnership +with others. + +The OFL allows the licensed fonts to be used, studied, modified and +redistributed freely as long as they are not sold by themselves. The +fonts, including any derivative works, can be bundled, embedded, +redistributed and/or sold with any software provided that any reserved +names are not used by derivative works. The fonts and derivatives, +however, cannot be released under any other type of license. The +requirement for fonts to remain under this license does not apply +to any document created using the fonts or their derivatives. + +DEFINITIONS +"Font Software" refers to the set of files released by the Copyright +Holder(s) under this license and clearly marked as such. This may +include source files, build scripts and documentation. + +"Reserved Font Name" refers to any names specified as such after the +copyright statement(s). + +"Original Version" refers to the collection of Font Software components as +distributed by the Copyright Holder(s). + +"Modified Version" refers to any derivative made by adding to, deleting, +or substituting -- in part or in whole -- any of the components of the +Original Version, by changing formats or by porting the Font Software to a +new environment. + +"Author" refers to any designer, engineer, programmer, technical +writer or other person who contributed to the Font Software. + +PERMISSION & CONDITIONS +Permission is hereby granted, free of charge, to any person obtaining +a copy of the Font Software, to use, study, copy, merge, embed, modify, +redistribute, and sell modified and unmodified copies of the Font +Software, subject to the following conditions: + +1) Neither the Font Software nor any of its individual components, +in Original or Modified Versions, may be sold by itself. + +2) Original or Modified Versions of the Font Software may be bundled, +redistributed and/or sold with any software, provided that each copy +contains the above copyright notice and this license. These can be +included either as stand-alone text files, human-readable headers or +in the appropriate machine-readable metadata fields within text or +binary files as long as those fields can be easily viewed by the user. + +3) No Modified Version of the Font Software may use the Reserved Font +Name(s) unless explicit written permission is granted by the corresponding +Copyright Holder. This restriction only applies to the primary font name as +presented to the users. + +4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font +Software shall not be used to promote, endorse or advertise any +Modified Version, except to acknowledge the contribution(s) of the +Copyright Holder(s) and the Author(s) or with their explicit written +permission. + +5) The Font Software, modified or unmodified, in part or in whole, +must be distributed entirely under this license, and must not be +distributed under any other license. The requirement for fonts to +remain under this license does not apply to any document created +using the Font Software. + +TERMINATION +This license becomes null and void if any of the above conditions are +not met. + +DISCLAIMER +THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT +OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE +COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL +DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM +OTHER DEALINGS IN THE FONT SOFTWARE. diff --git a/public/fonts/Open_Sans/OpenSans-Italic-VariableFont_wdth,wght.ttf b/public/fonts/Open_Sans/OpenSans-Italic-VariableFont_wdth,wght.ttf new file mode 100644 index 0000000..8312b2c Binary files /dev/null and b/public/fonts/Open_Sans/OpenSans-Italic-VariableFont_wdth,wght.ttf differ diff --git a/public/fonts/Open_Sans/OpenSans-VariableFont_wdth,wght.ttf b/public/fonts/Open_Sans/OpenSans-VariableFont_wdth,wght.ttf new file mode 100644 index 0000000..ac587b4 Binary files /dev/null and b/public/fonts/Open_Sans/OpenSans-VariableFont_wdth,wght.ttf differ diff --git a/public/fonts/Open_Sans/README.txt b/public/fonts/Open_Sans/README.txt new file mode 100644 index 0000000..2548322 --- /dev/null +++ b/public/fonts/Open_Sans/README.txt @@ -0,0 +1,100 @@ +Open Sans Variable Font +======================= + +This download contains Open Sans as both variable fonts and static fonts. + +Open Sans is a variable font with these axes: + wdth + wght + +This means all the styles are contained in these files: + OpenSans-VariableFont_wdth,wght.ttf + OpenSans-Italic-VariableFont_wdth,wght.ttf + +If your app fully supports variable fonts, you can now pick intermediate styles +that aren’t available as static fonts. Not all apps support variable fonts, and +in those cases you can use the static font files for Open Sans: + static/OpenSans_Condensed-Light.ttf + static/OpenSans_Condensed-Regular.ttf + static/OpenSans_Condensed-Medium.ttf + static/OpenSans_Condensed-SemiBold.ttf + static/OpenSans_Condensed-Bold.ttf + static/OpenSans_Condensed-ExtraBold.ttf + static/OpenSans_SemiCondensed-Light.ttf + static/OpenSans_SemiCondensed-Regular.ttf + static/OpenSans_SemiCondensed-Medium.ttf + static/OpenSans_SemiCondensed-SemiBold.ttf + static/OpenSans_SemiCondensed-Bold.ttf + static/OpenSans_SemiCondensed-ExtraBold.ttf + static/OpenSans-Light.ttf + static/OpenSans-Regular.ttf + static/OpenSans-Medium.ttf + static/OpenSans-SemiBold.ttf + static/OpenSans-Bold.ttf + static/OpenSans-ExtraBold.ttf + static/OpenSans_Condensed-LightItalic.ttf + static/OpenSans_Condensed-Italic.ttf + static/OpenSans_Condensed-MediumItalic.ttf + static/OpenSans_Condensed-SemiBoldItalic.ttf + static/OpenSans_Condensed-BoldItalic.ttf + static/OpenSans_Condensed-ExtraBoldItalic.ttf + static/OpenSans_SemiCondensed-LightItalic.ttf + static/OpenSans_SemiCondensed-Italic.ttf + static/OpenSans_SemiCondensed-MediumItalic.ttf + static/OpenSans_SemiCondensed-SemiBoldItalic.ttf + static/OpenSans_SemiCondensed-BoldItalic.ttf + static/OpenSans_SemiCondensed-ExtraBoldItalic.ttf + static/OpenSans-LightItalic.ttf + static/OpenSans-Italic.ttf + static/OpenSans-MediumItalic.ttf + static/OpenSans-SemiBoldItalic.ttf + static/OpenSans-BoldItalic.ttf + static/OpenSans-ExtraBoldItalic.ttf + +Get started +----------- + +1. Install the font files you want to use + +2. Use your app's font picker to view the font family and all the +available styles + +Learn more about variable fonts +------------------------------- + + https://developers.google.com/web/fundamentals/design-and-ux/typography/variable-fonts + https://variablefonts.typenetwork.com + https://medium.com/variable-fonts + +In desktop apps + + https://theblog.adobe.com/can-variable-fonts-illustrator-cc + https://helpx.adobe.com/nz/photoshop/using/fonts.html#variable_fonts + +Online + + https://developers.google.com/fonts/docs/getting_started + https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Fonts/Variable_Fonts_Guide + https://developer.microsoft.com/en-us/microsoft-edge/testdrive/demos/variable-fonts + +Installing fonts + + MacOS: https://support.apple.com/en-us/HT201749 + Linux: https://www.google.com/search?q=how+to+install+a+font+on+gnu%2Blinux + Windows: https://support.microsoft.com/en-us/help/314960/how-to-install-or-remove-a-font-in-windows + +Android Apps + + https://developers.google.com/fonts/docs/android + https://developer.android.com/guide/topics/ui/look-and-feel/downloadable-fonts + +License +------- +Please read the full license text (OFL.txt) to understand the permissions, +restrictions and requirements for usage, redistribution, and modification. + +You can use them in your products & projects – print or digital, +commercial or otherwise. + +This isn't legal advice, please consider consulting a lawyer and see the full +license for all details. diff --git a/public/fonts/Open_Sans/static/OpenSans-Bold.ttf b/public/fonts/Open_Sans/static/OpenSans-Bold.ttf new file mode 100644 index 0000000..98c74e0 Binary files /dev/null and b/public/fonts/Open_Sans/static/OpenSans-Bold.ttf differ diff --git a/public/fonts/Open_Sans/static/OpenSans-BoldItalic.ttf b/public/fonts/Open_Sans/static/OpenSans-BoldItalic.ttf new file mode 100644 index 0000000..8558928 Binary files /dev/null and b/public/fonts/Open_Sans/static/OpenSans-BoldItalic.ttf differ diff --git a/public/fonts/Open_Sans/static/OpenSans-ExtraBold.ttf b/public/fonts/Open_Sans/static/OpenSans-ExtraBold.ttf new file mode 100644 index 0000000..4eb3393 Binary files /dev/null and b/public/fonts/Open_Sans/static/OpenSans-ExtraBold.ttf differ diff --git a/public/fonts/Open_Sans/static/OpenSans-ExtraBoldItalic.ttf b/public/fonts/Open_Sans/static/OpenSans-ExtraBoldItalic.ttf new file mode 100644 index 0000000..75789b4 Binary files /dev/null and b/public/fonts/Open_Sans/static/OpenSans-ExtraBoldItalic.ttf differ diff --git a/public/fonts/Open_Sans/static/OpenSans-Italic.ttf b/public/fonts/Open_Sans/static/OpenSans-Italic.ttf new file mode 100644 index 0000000..29ff693 Binary files /dev/null and b/public/fonts/Open_Sans/static/OpenSans-Italic.ttf differ diff --git a/public/fonts/Open_Sans/static/OpenSans-Light.ttf b/public/fonts/Open_Sans/static/OpenSans-Light.ttf new file mode 100644 index 0000000..ea175cc Binary files /dev/null and b/public/fonts/Open_Sans/static/OpenSans-Light.ttf differ diff --git a/public/fonts/Open_Sans/static/OpenSans-LightItalic.ttf b/public/fonts/Open_Sans/static/OpenSans-LightItalic.ttf new file mode 100644 index 0000000..edbfe0b Binary files /dev/null and b/public/fonts/Open_Sans/static/OpenSans-LightItalic.ttf differ diff --git a/public/fonts/Open_Sans/static/OpenSans-Medium.ttf b/public/fonts/Open_Sans/static/OpenSans-Medium.ttf new file mode 100644 index 0000000..ae71693 Binary files /dev/null and b/public/fonts/Open_Sans/static/OpenSans-Medium.ttf differ diff --git a/public/fonts/Open_Sans/static/OpenSans-MediumItalic.ttf b/public/fonts/Open_Sans/static/OpenSans-MediumItalic.ttf new file mode 100644 index 0000000..6d1e09b Binary files /dev/null and b/public/fonts/Open_Sans/static/OpenSans-MediumItalic.ttf differ diff --git a/public/fonts/Open_Sans/static/OpenSans-Regular.ttf b/public/fonts/Open_Sans/static/OpenSans-Regular.ttf new file mode 100644 index 0000000..67803bb Binary files /dev/null and b/public/fonts/Open_Sans/static/OpenSans-Regular.ttf differ diff --git a/public/fonts/Open_Sans/static/OpenSans-SemiBold.ttf b/public/fonts/Open_Sans/static/OpenSans-SemiBold.ttf new file mode 100644 index 0000000..e5ab464 Binary files /dev/null and b/public/fonts/Open_Sans/static/OpenSans-SemiBold.ttf differ diff --git a/public/fonts/Open_Sans/static/OpenSans-SemiBoldItalic.ttf b/public/fonts/Open_Sans/static/OpenSans-SemiBoldItalic.ttf new file mode 100644 index 0000000..cd23e15 Binary files /dev/null and b/public/fonts/Open_Sans/static/OpenSans-SemiBoldItalic.ttf differ diff --git a/public/fonts/Open_Sans/static/OpenSans_Condensed-Bold.ttf b/public/fonts/Open_Sans/static/OpenSans_Condensed-Bold.ttf new file mode 100644 index 0000000..525397d Binary files /dev/null and b/public/fonts/Open_Sans/static/OpenSans_Condensed-Bold.ttf differ diff --git a/public/fonts/Open_Sans/static/OpenSans_Condensed-BoldItalic.ttf b/public/fonts/Open_Sans/static/OpenSans_Condensed-BoldItalic.ttf new file mode 100644 index 0000000..d6c9bc0 Binary files /dev/null and b/public/fonts/Open_Sans/static/OpenSans_Condensed-BoldItalic.ttf differ diff --git a/public/fonts/Open_Sans/static/OpenSans_Condensed-ExtraBold.ttf b/public/fonts/Open_Sans/static/OpenSans_Condensed-ExtraBold.ttf new file mode 100644 index 0000000..3e600b9 Binary files /dev/null and b/public/fonts/Open_Sans/static/OpenSans_Condensed-ExtraBold.ttf differ diff --git a/public/fonts/Open_Sans/static/OpenSans_Condensed-ExtraBoldItalic.ttf b/public/fonts/Open_Sans/static/OpenSans_Condensed-ExtraBoldItalic.ttf new file mode 100644 index 0000000..0393650 Binary files /dev/null and b/public/fonts/Open_Sans/static/OpenSans_Condensed-ExtraBoldItalic.ttf differ diff --git a/public/fonts/Open_Sans/static/OpenSans_Condensed-Italic.ttf b/public/fonts/Open_Sans/static/OpenSans_Condensed-Italic.ttf new file mode 100644 index 0000000..fdf0a52 Binary files /dev/null and b/public/fonts/Open_Sans/static/OpenSans_Condensed-Italic.ttf differ diff --git a/public/fonts/Open_Sans/static/OpenSans_Condensed-Light.ttf b/public/fonts/Open_Sans/static/OpenSans_Condensed-Light.ttf new file mode 100644 index 0000000..459be7b Binary files /dev/null and b/public/fonts/Open_Sans/static/OpenSans_Condensed-Light.ttf differ diff --git a/public/fonts/Open_Sans/static/OpenSans_Condensed-LightItalic.ttf b/public/fonts/Open_Sans/static/OpenSans_Condensed-LightItalic.ttf new file mode 100644 index 0000000..5f05d08 Binary files /dev/null and b/public/fonts/Open_Sans/static/OpenSans_Condensed-LightItalic.ttf differ diff --git a/public/fonts/Open_Sans/static/OpenSans_Condensed-Medium.ttf b/public/fonts/Open_Sans/static/OpenSans_Condensed-Medium.ttf new file mode 100644 index 0000000..802200d Binary files /dev/null and b/public/fonts/Open_Sans/static/OpenSans_Condensed-Medium.ttf differ diff --git a/public/fonts/Open_Sans/static/OpenSans_Condensed-MediumItalic.ttf b/public/fonts/Open_Sans/static/OpenSans_Condensed-MediumItalic.ttf new file mode 100644 index 0000000..b43786b Binary files /dev/null and b/public/fonts/Open_Sans/static/OpenSans_Condensed-MediumItalic.ttf differ diff --git a/public/fonts/Open_Sans/static/OpenSans_Condensed-Regular.ttf b/public/fonts/Open_Sans/static/OpenSans_Condensed-Regular.ttf new file mode 100644 index 0000000..a2a83ac Binary files /dev/null and b/public/fonts/Open_Sans/static/OpenSans_Condensed-Regular.ttf differ diff --git a/public/fonts/Open_Sans/static/OpenSans_Condensed-SemiBold.ttf b/public/fonts/Open_Sans/static/OpenSans_Condensed-SemiBold.ttf new file mode 100644 index 0000000..75bcd43 Binary files /dev/null and b/public/fonts/Open_Sans/static/OpenSans_Condensed-SemiBold.ttf differ diff --git a/public/fonts/Open_Sans/static/OpenSans_Condensed-SemiBoldItalic.ttf b/public/fonts/Open_Sans/static/OpenSans_Condensed-SemiBoldItalic.ttf new file mode 100644 index 0000000..9fcaa52 Binary files /dev/null and b/public/fonts/Open_Sans/static/OpenSans_Condensed-SemiBoldItalic.ttf differ diff --git a/public/fonts/Open_Sans/static/OpenSans_SemiCondensed-Bold.ttf b/public/fonts/Open_Sans/static/OpenSans_SemiCondensed-Bold.ttf new file mode 100644 index 0000000..dc927fc Binary files /dev/null and b/public/fonts/Open_Sans/static/OpenSans_SemiCondensed-Bold.ttf differ diff --git a/public/fonts/Open_Sans/static/OpenSans_SemiCondensed-BoldItalic.ttf b/public/fonts/Open_Sans/static/OpenSans_SemiCondensed-BoldItalic.ttf new file mode 100644 index 0000000..7601048 Binary files /dev/null and b/public/fonts/Open_Sans/static/OpenSans_SemiCondensed-BoldItalic.ttf differ diff --git a/public/fonts/Open_Sans/static/OpenSans_SemiCondensed-ExtraBold.ttf b/public/fonts/Open_Sans/static/OpenSans_SemiCondensed-ExtraBold.ttf new file mode 100644 index 0000000..d6864b1 Binary files /dev/null and b/public/fonts/Open_Sans/static/OpenSans_SemiCondensed-ExtraBold.ttf differ diff --git a/public/fonts/Open_Sans/static/OpenSans_SemiCondensed-ExtraBoldItalic.ttf b/public/fonts/Open_Sans/static/OpenSans_SemiCondensed-ExtraBoldItalic.ttf new file mode 100644 index 0000000..ec7ade5 Binary files /dev/null and b/public/fonts/Open_Sans/static/OpenSans_SemiCondensed-ExtraBoldItalic.ttf differ diff --git a/public/fonts/Open_Sans/static/OpenSans_SemiCondensed-Italic.ttf b/public/fonts/Open_Sans/static/OpenSans_SemiCondensed-Italic.ttf new file mode 100644 index 0000000..7fc00c8 Binary files /dev/null and b/public/fonts/Open_Sans/static/OpenSans_SemiCondensed-Italic.ttf differ diff --git a/public/fonts/Open_Sans/static/OpenSans_SemiCondensed-Light.ttf b/public/fonts/Open_Sans/static/OpenSans_SemiCondensed-Light.ttf new file mode 100644 index 0000000..5936496 Binary files /dev/null and b/public/fonts/Open_Sans/static/OpenSans_SemiCondensed-Light.ttf differ diff --git a/public/fonts/Open_Sans/static/OpenSans_SemiCondensed-LightItalic.ttf b/public/fonts/Open_Sans/static/OpenSans_SemiCondensed-LightItalic.ttf new file mode 100644 index 0000000..7ced21a Binary files /dev/null and b/public/fonts/Open_Sans/static/OpenSans_SemiCondensed-LightItalic.ttf differ diff --git a/public/fonts/Open_Sans/static/OpenSans_SemiCondensed-Medium.ttf b/public/fonts/Open_Sans/static/OpenSans_SemiCondensed-Medium.ttf new file mode 100644 index 0000000..25b1aad Binary files /dev/null and b/public/fonts/Open_Sans/static/OpenSans_SemiCondensed-Medium.ttf differ diff --git a/public/fonts/Open_Sans/static/OpenSans_SemiCondensed-MediumItalic.ttf b/public/fonts/Open_Sans/static/OpenSans_SemiCondensed-MediumItalic.ttf new file mode 100644 index 0000000..fd87f78 Binary files /dev/null and b/public/fonts/Open_Sans/static/OpenSans_SemiCondensed-MediumItalic.ttf differ diff --git a/public/fonts/Open_Sans/static/OpenSans_SemiCondensed-Regular.ttf b/public/fonts/Open_Sans/static/OpenSans_SemiCondensed-Regular.ttf new file mode 100644 index 0000000..5b09b35 Binary files /dev/null and b/public/fonts/Open_Sans/static/OpenSans_SemiCondensed-Regular.ttf differ diff --git a/public/fonts/Open_Sans/static/OpenSans_SemiCondensed-SemiBold.ttf b/public/fonts/Open_Sans/static/OpenSans_SemiCondensed-SemiBold.ttf new file mode 100644 index 0000000..fff3a37 Binary files /dev/null and b/public/fonts/Open_Sans/static/OpenSans_SemiCondensed-SemiBold.ttf differ diff --git a/public/fonts/Open_Sans/static/OpenSans_SemiCondensed-SemiBoldItalic.ttf b/public/fonts/Open_Sans/static/OpenSans_SemiCondensed-SemiBoldItalic.ttf new file mode 100644 index 0000000..3874205 Binary files /dev/null and b/public/fonts/Open_Sans/static/OpenSans_SemiCondensed-SemiBoldItalic.ttf differ diff --git a/public/fonts/Raleway/OFL.txt b/public/fonts/Raleway/OFL.txt new file mode 100644 index 0000000..ae50f94 --- /dev/null +++ b/public/fonts/Raleway/OFL.txt @@ -0,0 +1,94 @@ +Copyright (c) 2010, Matt McInerney (matt@pixelspread.com), +Copyright (c) 2011, Pablo Impallari (www.impallari.com|impallari@gmail.com), +Copyright (c) 2011, Rodrigo Fuenzalida (www.rfuenzalida.com|hello@rfuenzalida.com), with Reserved Font Name Raleway +This Font Software is licensed under the SIL Open Font License, Version 1.1. +This license is copied below, and is also available with a FAQ at: +http://scripts.sil.org/OFL + + +----------------------------------------------------------- +SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007 +----------------------------------------------------------- + +PREAMBLE +The goals of the Open Font License (OFL) are to stimulate worldwide +development of collaborative font projects, to support the font creation +efforts of academic and linguistic communities, and to provide a free and +open framework in which fonts may be shared and improved in partnership +with others. + +The OFL allows the licensed fonts to be used, studied, modified and +redistributed freely as long as they are not sold by themselves. The +fonts, including any derivative works, can be bundled, embedded, +redistributed and/or sold with any software provided that any reserved +names are not used by derivative works. The fonts and derivatives, +however, cannot be released under any other type of license. The +requirement for fonts to remain under this license does not apply +to any document created using the fonts or their derivatives. + +DEFINITIONS +"Font Software" refers to the set of files released by the Copyright +Holder(s) under this license and clearly marked as such. This may +include source files, build scripts and documentation. + +"Reserved Font Name" refers to any names specified as such after the +copyright statement(s). + +"Original Version" refers to the collection of Font Software components as +distributed by the Copyright Holder(s). + +"Modified Version" refers to any derivative made by adding to, deleting, +or substituting -- in part or in whole -- any of the components of the +Original Version, by changing formats or by porting the Font Software to a +new environment. + +"Author" refers to any designer, engineer, programmer, technical +writer or other person who contributed to the Font Software. + +PERMISSION & CONDITIONS +Permission is hereby granted, free of charge, to any person obtaining +a copy of the Font Software, to use, study, copy, merge, embed, modify, +redistribute, and sell modified and unmodified copies of the Font +Software, subject to the following conditions: + +1) Neither the Font Software nor any of its individual components, +in Original or Modified Versions, may be sold by itself. + +2) Original or Modified Versions of the Font Software may be bundled, +redistributed and/or sold with any software, provided that each copy +contains the above copyright notice and this license. These can be +included either as stand-alone text files, human-readable headers or +in the appropriate machine-readable metadata fields within text or +binary files as long as those fields can be easily viewed by the user. + +3) No Modified Version of the Font Software may use the Reserved Font +Name(s) unless explicit written permission is granted by the corresponding +Copyright Holder. This restriction only applies to the primary font name as +presented to the users. + +4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font +Software shall not be used to promote, endorse or advertise any +Modified Version, except to acknowledge the contribution(s) of the +Copyright Holder(s) and the Author(s) or with their explicit written +permission. + +5) The Font Software, modified or unmodified, in part or in whole, +must be distributed entirely under this license, and must not be +distributed under any other license. The requirement for fonts to +remain under this license does not apply to any document created +using the Font Software. + +TERMINATION +This license becomes null and void if any of the above conditions are +not met. + +DISCLAIMER +THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT +OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE +COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL +DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM +OTHER DEALINGS IN THE FONT SOFTWARE. diff --git a/public/fonts/Raleway/Raleway-Bold.ttf b/public/fonts/Raleway/Raleway-Bold.ttf new file mode 100644 index 0000000..2ceaf63 Binary files /dev/null and b/public/fonts/Raleway/Raleway-Bold.ttf differ diff --git a/public/fonts/Raleway/Raleway-ExtraBold.ttf b/public/fonts/Raleway/Raleway-ExtraBold.ttf new file mode 100644 index 0000000..308e5c1 Binary files /dev/null and b/public/fonts/Raleway/Raleway-ExtraBold.ttf differ diff --git a/public/fonts/Raleway/Raleway-ExtraLight.ttf b/public/fonts/Raleway/Raleway-ExtraLight.ttf new file mode 100644 index 0000000..281a001 Binary files /dev/null and b/public/fonts/Raleway/Raleway-ExtraLight.ttf differ diff --git a/public/fonts/Raleway/Raleway-Heavy.ttf b/public/fonts/Raleway/Raleway-Heavy.ttf new file mode 100644 index 0000000..8474318 Binary files /dev/null and b/public/fonts/Raleway/Raleway-Heavy.ttf differ diff --git a/public/fonts/Raleway/Raleway-Light.ttf b/public/fonts/Raleway/Raleway-Light.ttf new file mode 100644 index 0000000..8b1d260 Binary files /dev/null and b/public/fonts/Raleway/Raleway-Light.ttf differ diff --git a/public/fonts/Raleway/Raleway-Medium.ttf b/public/fonts/Raleway/Raleway-Medium.ttf new file mode 100644 index 0000000..127cdaa Binary files /dev/null and b/public/fonts/Raleway/Raleway-Medium.ttf differ diff --git a/public/fonts/Raleway/Raleway-Regular.ttf b/public/fonts/Raleway/Raleway-Regular.ttf new file mode 100644 index 0000000..252cad1 Binary files /dev/null and b/public/fonts/Raleway/Raleway-Regular.ttf differ diff --git a/public/fonts/Raleway/Raleway-SemiBold.ttf b/public/fonts/Raleway/Raleway-SemiBold.ttf new file mode 100644 index 0000000..64b54a7 Binary files /dev/null and b/public/fonts/Raleway/Raleway-SemiBold.ttf differ diff --git a/public/fonts/Raleway/Raleway-Thin.ttf b/public/fonts/Raleway/Raleway-Thin.ttf new file mode 100644 index 0000000..26d16e4 Binary files /dev/null and b/public/fonts/Raleway/Raleway-Thin.ttf differ diff --git a/public/robots.txt b/public/robots.txt new file mode 100644 index 0000000..77470cb --- /dev/null +++ b/public/robots.txt @@ -0,0 +1,2 @@ +User-agent: * +Disallow: / \ No newline at end of file diff --git a/src/components/Heading.astro b/src/components/Heading.astro new file mode 100644 index 0000000..a322e82 --- /dev/null +++ b/src/components/Heading.astro @@ -0,0 +1,32 @@ +--- +const { Title, Description } = Astro.props; +--- + +
+ + + +
+

{Title}

+

{Description}

+
+
+ + diff --git a/src/components/global/Footer.astro b/src/components/global/Footer.astro new file mode 100644 index 0000000..598eaa4 --- /dev/null +++ b/src/components/global/Footer.astro @@ -0,0 +1,48 @@ +--- +import { Copyright } from "@iconoir/vue"; +--- + + + + \ No newline at end of file diff --git a/src/components/global/SudoVanillaLogo.astro b/src/components/global/SudoVanillaLogo.astro new file mode 100644 index 0000000..ff87924 --- /dev/null +++ b/src/components/global/SudoVanillaLogo.astro @@ -0,0 +1,45 @@ +--- +const { WithLogo, OnlyLogo } = Astro.props; +--- + + + + diff --git a/src/layouts/Default.astro b/src/layouts/Default.astro new file mode 100644 index 0000000..54d1763 --- /dev/null +++ b/src/layouts/Default.astro @@ -0,0 +1,45 @@ +--- +// Properties +const { NoSubHeader, MobileTitle } = Astro.props; + +// Components +/// Global +import {Head, Header} from "@sudovanilla/pandora" +import Footer from '@components/global/Footer.astro' +import { Tooltips } from 'astro-tooltips'; +import SudoVanillaLogo from "@components/global/SudoVanillaLogo.astro"; + +// Styles +import "@styles/index.scss"; +--- + + + + + + + + + +
+ + + + + + Blog + Ark + Services + Donate + Status + +
+ +
+ +
+
\ No newline at end of file diff --git a/src/layouts/Markdown.astro b/src/layouts/Markdown.astro new file mode 100644 index 0000000..a88bb96 --- /dev/null +++ b/src/layouts/Markdown.astro @@ -0,0 +1,48 @@ +--- +// Properties +const { frontmatter } = Astro.props + +// Components +/// Global +import {Head, Header} from "@sudovanilla/pandora" +import Footer from '@components/global/Footer.astro' +import Heading from "@components/Heading.astro" +import { Tooltips } from 'astro-tooltips'; + +import SudoVanillaLogo from "@components/global/SudoVanillaLogo.astro"; + +// Styles +import "@styles/index.scss"; +--- + + + + + + + + + +
+ + + + + + Blog + Ark + Services + Donate + Status + +
+ +
+ + +
+
\ No newline at end of file diff --git a/src/library/ghost.ts b/src/library/ghost.ts new file mode 100644 index 0000000..21431b7 --- /dev/null +++ b/src/library/ghost.ts @@ -0,0 +1,7 @@ +import GhostContentAPI from '@tryghost/content-api' + +export const ghostClient = new GhostContentAPI({ + url: 'https://blog.ghost.sudovanilla.org', + key: import.meta.env.CONTENT_API_KEY, + version: 'v5.0', +}) \ No newline at end of file diff --git a/src/pages/404.astro b/src/pages/404.astro new file mode 100644 index 0000000..7ca17a2 --- /dev/null +++ b/src/pages/404.astro @@ -0,0 +1,8 @@ +--- +import { Error } from "@sudovanilla/errors"; +--- + + \ No newline at end of file diff --git a/src/pages/ark.astro b/src/pages/ark.astro new file mode 100644 index 0000000..fd3bb58 --- /dev/null +++ b/src/pages/ark.astro @@ -0,0 +1,149 @@ +--- +// Layout +import Heading from "@components/Heading.astro"; +import Default from "@layouts/Default.astro"; + +// Components +import { CallToAction, Card, Hero } from "@sudovanilla/pandora"; +--- + + + + + + + + +
+ + Homepage of SudoVanilla + + + ButterflyVu is a documentation template built on the Astro Web Framework + + + In-House Player built by MinPluto + + + An Astro component library for SudoVanilla related websites and projects + + + Devojo delivers a desktop-like experience for Penpot users with the additional of integrating tabs to conveniently traverse back and forth between projects + + + Run the Netweak Agent on Windows, macOS, Alpine Linux, and other operating systems with Docker + + View More +
+ + +
+ + Self-hosted file management system with muilt-cloud support + + + Beyond coding. We forge. + + + Self-hosted pastebin powered by Git, open-source alternative to Github Gist + + + A self-hosted file sharing platform that combines lightness and beauty, perfect for seamless and efficient file sharing + + + 4get is a proxy search engine that doesn't suck + + + A privacy respecting frontend for twitch.tv + + View More +
+
+ + \ No newline at end of file diff --git a/src/pages/blog/[...slug].astro b/src/pages/blog/[...slug].astro new file mode 100644 index 0000000..df08e7c --- /dev/null +++ b/src/pages/blog/[...slug].astro @@ -0,0 +1,113 @@ +--- +// Layout +import Default from "@layouts/Default.astro"; + +// Fetch Post (Ghost) +import { ghostClient } from "@library/ghost"; + +export async function getStaticPaths() { + const posts = await ghostClient.posts + .browse({ + limit: "all", + }) + .catch((err) => { + console.error(err); + }); + + return posts.map((post) => { + return { + params: { + slug: post.slug, + }, + props: { + post: post, + }, + }; + }); +} + +const { post } = Astro.props; +export const prerender = true; + +// Icons +import { Calendar } from "@iconoir/vue"; + +const Id = Astro.url.href.split("?postid=").pop(); +const GhostPostFetch = + "https://blog.ghost.sudovanilla.org/ghost/api/content/posts/" + + Id + + "/?key=bef2ed15d9e38f7703be9412b3"; +const GhostPostResponse = await fetch(GhostPostFetch); +const GhostPost = await GhostPostResponse.json(); +--- + + + +
+ {post.custom_excerpt ? + + : + null + } +

{post.title}

+

+ + {new Date(post.published_at).toLocaleDateString()} +

+
+ +
+
+
+
+ + diff --git a/src/pages/blog/index.astro b/src/pages/blog/index.astro new file mode 100644 index 0000000..8dae82d --- /dev/null +++ b/src/pages/blog/index.astro @@ -0,0 +1,92 @@ +--- +// Layout +import Default from "@layouts/Default.astro"; + +// Components +import Posts from "@components/blog/posts.astro"; +import Heading from "@components/Heading.astro"; +import {BlogPost} from "@sudovanilla/pandora" + +// Get Posts +import { ghostClient } from "@library/ghost"; +const posts = await ghostClient.posts + .browse({ + limit: "all", + }) + .catch(() => {null}) +--- + + + + +
+ { + posts.map((post) => ( + + )) + } +
+
+
+ + \ No newline at end of file diff --git a/src/pages/branding.md b/src/pages/branding.md new file mode 100644 index 0000000..59524dc --- /dev/null +++ b/src/pages/branding.md @@ -0,0 +1,86 @@ +--- +layout: '../layouts/Markdown.astro' +Title: 'Branding Guidelines' +--- + + + +## Name + +The name should be exactly spelt as "SudoVanilla". + +The first letter ,"S", should be capitalize along with the letter "V". + +Examples of how to **NOT** spell it: sv, SV, Sv, sudovanilla, Sudovanilla, Sudo Vanilla, sudo vanilla + +## Logo + +Make sure you're using the up-to-date version of the logo, was logo has been made more bolder back in May 2024. A much thinner version is still available to view, but is outdated. + +Absolutely NEVER set the logo to the color black, please use the purple variant instead. + +
+ +### Logo (Circle with letter V) + +| | | +|-|-| +| ![](https://md.sudovanilla.org/images/sv-logo-4.png) | ![](https://md.sudovanilla.org/images/SudoVanilla%20Logo%20-%20Purple.png) | + +Do not make the logo 1:1, as the logo is not 1:1, since the letter V sticks out a little to the left. + +
+ +### Logo (Just the letter V) + +| | | +|-|-| +|![](https://md.sudovanilla.org/images/SudoVanilla%20Logo%20-%20Letter%20V.svg) | ![](https://md.sudovanilla.org/images/SudoVanilla%20Logo%20-%20Letter%20V%20-%20Purple%20Variant.svg) | + +This version of the logo was mainly created to use as the favicon, which is the icon you usually see in the tab of your web browser. + +Fun fact: The letter "V" is not custom. It is simply the letter "V" using the Wingsong font. + +
+ +### Text (SudoVanilla) + +You must use the text as it is in it's own logo. The "Sudo" portion is regular size using Raleway font, the "Vanilla" portion is bolder using Red Hat Text font. + +| | | +|-|-| +| ![](https://md.sudovanilla.org/images/SudoVanilla-Text.png) | ![](https://md.sudovanilla.org/images/SudoVanilla-Text-Purple.png) | + +If you're using light mode on this site, like right now, toggle dark mode to view the original logo, which is in white. + +
+ +### Text with Sub-Text + +There are variants of the text logo with sub-text under it, which to be only used in SudoVanilla services and pages where it applies. The sub-text is to be placed in the bottom right corner, below the main text logo, at a smaller font. The font on newer version is Red Hat Text, older versions use Raleway on the sub-text, but are still used. + +Here are examples that are used on both the new Gateway and Status page: + +| | | +|-|-| +| ![](https://md.sudovanilla.org/images/logos/sudovanilla/gateway/sudovanilla-banner-gateway.png) | ![](https://md.sudovanilla.org/images/logos/sudovanilla/gateway/sudovanilla-banner-gateway-1.png) | +| ![](https://md.sudovanilla.org/images/logos/sudovanilla/status/sudovanilla-banner-status.png) | ![](https://md.sudovanilla.org/images/logos/sudovanilla/status/sudovanilla-banner-status-purple.png) | + +
+ +### Logo with Inserted Text + +There are variants of the logo with text included, which to be only used in SudoVanilla services where it applies. The text is to be placed in the bottom right corner of the logo that cuts out this section of the circle as well. + +An example would be the SudoVanilla Gateway: + +![SudoVanilla Gateway Login](https://md.sudovanilla.org/images/527095905.png) \ No newline at end of file diff --git a/src/pages/donate.astro b/src/pages/donate.astro new file mode 100644 index 0000000..d965976 --- /dev/null +++ b/src/pages/donate.astro @@ -0,0 +1,28 @@ +--- +// Layout +import Default from "@layouts/Default.astro"; + +// Components +import Heading from "@components/Heading.astro"; + +// List Posts +import { getCollection } from "astro:content"; +const posts = await getCollection("posts"); +--- + + + + Paypal + Liberapay + Wise + - + Stripe Login + + + + + + \ No newline at end of file diff --git a/src/pages/index.astro b/src/pages/index.astro new file mode 100644 index 0000000..0e06b6e --- /dev/null +++ b/src/pages/index.astro @@ -0,0 +1,141 @@ +--- +// Layout +import Default from "@layouts/Default.astro"; + +// Components +import { CallToAction, Hero } from "@sudovanilla/pandora"; +--- + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/pages/privacy-policy/index.md b/src/pages/privacy-policy/index.md new file mode 100644 index 0000000..e4479a2 --- /dev/null +++ b/src/pages/privacy-policy/index.md @@ -0,0 +1,134 @@ +--- +layout: '../../layouts/Markdown.astro' +Title: 'Privacy Policy' +--- + +

Last Updated: December 3rd, 2024

+ +## Contact for data protection issues + +If you have any questions regarding data protection, please contact SudoVanilla at privacy (at) sudovanilla.org. + +## Where is the personal data stored? + +SudoVanilla runs it's main server locally, as everything is selfhosted. SudoVanilla is located in the Unites States. + +## Support + +**Email** + +When you send an email to any sudovanilla.org emails, your email address and the information you sent is collected. All emails are archived. + +## Donations and Other Payments + +**Payments** + +Payment information are processed for when you donate to SudoVanilla or any other purchases. Stripe is used as the preferred payment processor for all of SudoVanilla and it's donations. + +Stripe logs the following details: + - Charge ID + - Expire Date + - Last 4 digits of the card + - Card Type + - Origin Country + - Issuer + - Owner + - Owner Email + +If you don't want your information shared with SudoVanilla, it is recommended to use https://privacy.com to create a masked card. You can join Privacy with SudoVanilla's invite link to https://app.privacy.com/join/MCHG9. + +Emails sent from Stripe should be sent via a sudovanilla.org email, as of November 15th 2024. If not, report back. + +All payments should done via sudovanilla.org with a Stripe user dashboard. If not, report back. + +~~SudoVanilla prints phyical copies of all receipts, as of November 15th 2024.~~ (Out of ink) + +**Retention Period** + +Stripe seems to keep all records so far, with no retention period. + +## Analytics + +SudoVanilla uses Umami analytics software on it's main website and it's studio webite. + +The following is recorded: + - Page visited + - Referrers + - User Agent + - OS + - Device Type + - Country + +All analytics are public to view: + - [sudovanilla.org](https://stats.sudovanilla.org/share/KfVISbb3ize2FhSJ/sudovanilla.org) + - [studio.sudovanilla.org](https://stats.sudovanilla.org/share/EeQwCMbGzkygdN04/studio.sudovanilla.org) + +**Retention Period** + +The stats are kept as long as possible, they do not get reset unless the entire Umami setup is reset. + +## Services: + +**SudoVanilla Gateway** + +When you sign up for any services on SudoVanilla, most of the time you'll be required go through SudoVanilla Gateway. + +**Logs** + +Gateway is powered by LogTo, which is selfhosted on the primary server, it has audit logs for the admin to view. + +The following is what SudoVanilla can see in these logs: + - Event Key + - User + - Application + - Time + - Log ID + - User Agent + - IPv4 Address + +Some data is also logged when you interact with the Gateway like user-agent and IP address, without an account, as LogTo also logs certain "interactions". Such as focusing on the email input as you're signing-in or creating an account. + +**SudoVanilla Ark (Forgejo)** + +When you sign up for SudoVanilla Ark, the following information is recorded: + - ID + - Email + - Username + - Created Date + - Last Sign-In Date + +**Opengist** + +When you sign up for Opengist on SudoVanilla, the following information is recorded: + - ID + - Username + - Created Date + +**SudoVanilla Cloud (Cloudreve)** + +When you sign up for SudoVanilla Cloud, the following information is recorded: + - Email + - Quota Used + +**SudoVanilla Share (Pingvin)** + +All files you share on SudoVanilla Share are deleted after 72 hours. + +When you sign up for SudoVanilla Share, the following information is recorded: + - Email + - Username + +**Zipline** + +All content you upload to Zipline on SudoVanilla do not expire. + +When you sign up for SudoVanilla Share, the following information is recorded: + - Username + +## Deletion Request + +If you're not comfortable with SudoVanilla keeping data suchs as emails you send, physical copies of your reciepts, or etc; then you can request this information to be deleted by [sending an email](mailto:privacy-deletion-PLEASE-REMOVE-THIS-FOR-SPAM-PROTECTION@sudovanilla.org?subject=Privacy%20Request&body=I%20want%20the%20following%20information%20deleted%3A%20). + +If you would like to delete your SudoVanilla Gateway account, feel free to [send an email](mailto:privacy-deletion-PLEASE-REMOVE-THIS-FOR-SPAM-PROTECTION@sudovanilla.org?subject=Privacy%20Request&body=I%20want%20the%20following%20information%20deleted%3A%20). All accounts attached to your SudoVanilla Gateway will be deleted. + +If you would like to delete your SudoVanilla Ark account, go to your [Account settings](privacy-deletion-PLEASE-REMOVE-THIS-FOR-SPAM-PROTECTION@sudovanilla.org) and follow the prompt in the "Delete your account" portion. If you're unable to access your SudoVanilla Ark account, please send a reset password request instead, then try again. \ No newline at end of file diff --git a/src/pages/privacy-policy/social.md b/src/pages/privacy-policy/social.md new file mode 100644 index 0000000..d970fd3 --- /dev/null +++ b/src/pages/privacy-policy/social.md @@ -0,0 +1,66 @@ +--- +layout: '../../layouts/Markdown.astro' +Title: 'SudoVanilla Social Privacy Policy' +--- + +

Last Updated: January 3rd, 2025

+ +This privacy policy describes how social.sudovanilla.org ("social.sudovanilla.org", "we", "us") collects, protects and uses the personally identifiable information you may provide through the social.sudovanilla.org website or its API. The policy also describes the choices available to you regarding our use of your personal information and how you can access and update this information. This policy does not apply to the practices of companies that social.sudovanilla.org does not own or control, or to individuals that social.sudovanilla.org does not employ or manage. + +# What information do we collect? + +* **Basic account information**: If you register on this server, you may be asked to enter a username, an e-mail address and a password. You may also enter additional profile information such as a display name and biography, and upload a profile picture and header image. The username, display name, biography, profile picture and header image are always listed publicly. +* **Posts, following and other public information**: The list of people you follow is listed publicly, the same is true for your followers. When you submit a message, the date and time is stored as well as the application you submitted the message from. Messages may contain media attachments, such as pictures and videos. Public and unlisted posts are available publicly. When you feature a post on your profile, that is also publicly available information. Your posts are delivered to your followers, in some cases it means they are delivered to different servers and copies are stored there. When you delete posts, this is likewise delivered to your followers. The action of reblogging or favouriting another post is always public. +* **Direct and followers-only posts**: All posts are stored and processed on the server. Followers-only posts are delivered to your followers and users who are mentioned in them, and direct posts are delivered only to users mentioned in them. In some cases it means they are delivered to different servers and copies are stored there. We make a good faith effort to limit the access to those posts only to authorized persons, but other servers may fail to do so. Therefore it's important to review servers your followers belong to. You may toggle an option to approve and reject new followers manually in the settings. **Please keep in mind that the operators of the server and any receiving server may view such messages**, and that recipients may screenshot, copy or otherwise re-share them. **Do not share any sensitive information over Mastodon.** +* **IPs and other metadata**: When you log in, we record the IP address you log in from, as well as the name of your browser application. All the logged in sessions are available for your review and revocation in the settings. The latest IP address used is stored for up to 12 months. We also may retain server logs which include the IP address of every request to our server. + +# What do we use your information for? + +Any of the information we collect from you may be used in the following ways: + +* To provide the core functionality of Mastodon. You can only interact with other people's content and post your own content when you are logged in. For example, you may follow other people to view their combined posts in your own personalized home timeline. +* To aid moderation of the community, for example comparing your IP address with other known ones to determine ban evasion or other violations. +* The email address you provide may be used to send you information, notifications about other people interacting with your content or sending you messages, and to respond to inquiries, and/or other requests or questions. + +# How do we protect your information? + +We implement a variety of security measures to maintain the safety of your personal information when you enter, submit, or access your personal information. Among other things, your browser session, as well as the traffic between your applications and the API, are secured with SSL, and your password is hashed using a strong one-way algorithm. You may enable two-factor authentication to further secure access to your account. + +# What is our data retention policy? + +We will make a good faith effort to: + +* Retain server logs containing the IP address of all requests to this server, in so far as such logs are kept, no more than 90 days. +* Retain the IP addresses associated with registered users no more than 12 months. + +You can request and download an archive of your content, including your posts, media attachments, profile picture, and header image. + +You may irreversibly delete your account at any time. + +# Do we use cookies? + +Yes. Cookies are small files that a site or its service provider transfers to your computer's hard drive through your Web browser (if you allow). These cookies enable the site to recognize your browser and, if you have a registered account, associate it with your registered account. + +We use cookies to understand and save your preferences for future visits. + +# Do we disclose any information to outside parties? + +We do not sell, trade, or otherwise transfer to outside parties your personally identifiable information. This does not include trusted third parties who assist us in operating our site, conducting our business, or servicing you, so long as those parties agree to keep this information confidential. We may also release your information when we believe release is appropriate to comply with the law, enforce our site policies, or protect ours or others rights, property, or safety. + +Your public content may be downloaded by other servers in the network. Your public and followers-only posts are delivered to the servers where your followers reside, and direct messages are delivered to the servers of the recipients, in so far as those followers or recipients reside on a different server than this. + +When you authorize an application to use your account, depending on the scope of permissions you approve, it may access your public profile information, your following list, your followers, your lists, all your posts, and your favourites. Applications can never access your e-mail address or password. + +# Site usage by children + +If this server is in the EU or the EEA: Our site, products and services are all directed to people who are at least 16 years old. If you are under the age of 16, per the requirements of the GDPR (General Data Protection Regulation) do not use this site. + +If this server is in the USA: Our site, products and services are all directed to people who are at least 13 years old. If you are under the age of 13, per the requirements of COPPA (Children's Online Privacy Protection Act) do not use this site. + +Law requirements can be different if this server is in another jurisdiction. + +- - - + +This document is CC-BY-SA. Originally adapted from the [Discourse privacy policy](https://github.com/discourse/discourse). + +Please also view the [Privacy Policy for SudoVanilla Gateway](https://sudovanilla.org/privacy-policy/#:~:text=SudoVanilla%20Gateway,creating%20an%20account.). \ No newline at end of file diff --git a/src/pages/refund-policy.md b/src/pages/refund-policy.md new file mode 100644 index 0000000..4d0ea9d --- /dev/null +++ b/src/pages/refund-policy.md @@ -0,0 +1,8 @@ +--- +layout: '../layouts/Markdown.astro' +Title: 'Refund Policy' +--- + +**Donations** + +SudoVanilla only accepts donations via Stripe or Liberapay, all donations sent to SudoVanilla are final and refunds will not be allowed. \ No newline at end of file diff --git a/src/pages/services.astro b/src/pages/services.astro new file mode 100644 index 0000000..d9d0754 --- /dev/null +++ b/src/pages/services.astro @@ -0,0 +1,253 @@ +--- +// Layout +import Default from "@layouts/Default.astro"; + +// Components +import Heading from "@components/Heading.astro"; +import {Card} from "@sudovanilla/pandora" +--- + + + + +
+ + Join the Fediverse + + + Reddit Alternative + + + Write a blog + +
+ +
+ + Cloud Storage + + + Photos and Videos Backup + + + File Share + + + ShareX + + + Password Manager + +
+ +
+ + Git + + + Gist + +
+ +
+ + 4get is a proxy search engine that doesn't suck + + + A privacy-respecting, ad-free, self-hosted Google metasearch engine with strong security + + + A self-hosted, ad-free, privacy-respecting "metasearch engine" + +
+ +
+ + Matrix Chat + + + Mastodon + +
+ +
+ + Reddit + + + Twitch + + + Imgur + + + StackOverflow + + + Quora + + + Medium + +
+
+
\ No newline at end of file diff --git a/src/pages/umbrella-policy.md b/src/pages/umbrella-policy.md new file mode 100644 index 0000000..0f3e277 --- /dev/null +++ b/src/pages/umbrella-policy.md @@ -0,0 +1,83 @@ +--- +layout: '../layouts/Markdown.astro' +Title: 'Umbrella Policy' +--- + + + +

Last Updated: December 19th, 2024

+

This policy goes into effect on January 1st, 2025

+ +## Hardware + +All physical servers must be on-premise, where the owner of SudoVanilla can access it locally by hand and over the local network. + +## Domain and URLs + +Everything that runs on SudoVanilla must be viewed via only the "sudovanilla.org" domain and it's subdomains. Any other domains such as "sudovanilla.com", "korbsstudio.com", "minpluto.org", and any other domains are not allowed. + +Any content hosted on services provided by SudoVanilla needs to pulling from the "sudovanilla.org" domain and it's subdomains and not outside sources. Services should either proxy the content or provide it locally in the source code. + +If you host any content on services such as SudoVanilla Ark, SudoVanilla's Opengist, or etc and you need to host media from an external source for API usage or to make the media dynamic, SudoVanilla has it's own image proxy that can be used. The image proxy is "https://image.proxy.sudovanilla.org/" followed by your external URL. + +Example would be: "https://image.proxy.sudovanilla.org/https://md.sudovanilla.org/images/Screenshot%20From%202024-12-03%2022-07-36.png". You can use something like "/560,fit/" between the parameters to force the image to resize. + +The image proxy does not support video or audio, you can use SudoVanilla's Zipline instance for this usage. Zipline supports video and audio formats. + +**Exceptions** + - [All Clients](https://sudovanilla.org/services#Clients) + +## Software + +Software such as NodeJS packages(NPM, Yarn, PNPM, Bun, JavaScript, TypeScript) built by SudoVanilla must be uploaded to only the SudoVanilla Registry. + +Software such as Docker or OCI images built by SudoVanilla must be uploaded to only the SudoVanilla Registry. + +Software such as source code of any kind, and anything else built by SudoVanilla must be uploaded to only SudoVanilla Ark or SudoVanilla's Opengist. + +All software built by SudoVanilla is not allowed on any other sources besides SudoVanilla Ark or SudoVanilla Registry. Re-uploading, cloning, or forking any software to any other outside sources such as GitHub is not allowed. SudoVanilla is aware that not allowing this can be controversial in the open source community, some exceptions have been made, view "Exceptions" list below this section of the Umbrella Policy. + +NOTE: The open source licenses that SudoVanilla projects use 'can't legally enforce' this restriction of the Umbrella Policy, if you proceed SudoVanilla will not hesitate 'if caught' to send a takedown request to you or eventfully the webmaster. Exceptions are still allowed, view "Exceptions" list below this section of the Umbrella Policy. SudoVanilla will never send takedown requests to said exceptions unless you violated the open source license of the project. + +SudoVanilla mirrors projects it personally likes and mirrors from other sources to it's own server, if you're the developer of the software that was mirrored and do not want it mirrored anymore, please send a request takedown via email. Doing so will be publicly added to a transparency report. + +SudoVanilla sometimes re-publish Docker images and NodeJS packages that it uses it's own projects to it's own server. + +**Exceptions** + - Codeberg - "codeberg.org" + - Pub Solar - "git.pub.solar" + +## Gateway + +When logging into a service hosted by SudoVanilla such as SudoVanilla Ark, Penpot, Opengist, Pingvin, and etc it must be setup to only allow a login via the gateway using the OpenID Connect method. SudoVanilla Gateway is a login portal where your central account is for most SudoVanilla services. + +If the software in question is not able to provide a method for this, more specifically allow for an OpenID Connect login, the software will be disabled and removed from SudoVanilla. + +**Exceptions** + - [All Clients](https://sudovanilla.org/services#Clients) + - SudoVanilla Cloud + - Jellyfin + +

SudoVanilla Gateway is selfhosted, powered by LogTo

+ +## Communication and Socials + +Any socials accounts operated by SudoVanilla and Korbs must be ran under the "sudovanilla.org" domain. This means that the platform must be at least part of the Fediverse and using ActivityPub to communicate with other servers. + + - Mastodon - [@korbs@social.sudovanilla.org](https://social.sudovanilla.org/@korbs) + - Lemmy - [@korbs@lemmy.sudovanilla.org](https://lemmy.sudovanilla.org/u/Korbs) + +## Media and Streaming + +Any video provided by SudoVanilla such as tutorials, generic captures, or updates should be published to SudoVanilla's media domain, "md.sudovanilla", or to it's ocean domain, "ocean.sudovanilla.org". + +If SudoVanilla were to stream any content such as live stream, it's .m3u8 source must be under "live.sudovanilla.org". + +## Exceptions + +SudoVanilla is not capable of keep every service it uses within it's walls, therefore some exceptions have been made: + - Email + - SMTP + - VPNs + - Domain Registrar + - Status Page \ No newline at end of file diff --git a/src/styles/index.scss b/src/styles/index.scss new file mode 100644 index 0000000..8f28565 --- /dev/null +++ b/src/styles/index.scss @@ -0,0 +1,113 @@ +@font-face { + font-family: OpenSans; + src: url(/fonts/Open_Sans/static/OpenSans-Regular.ttf); + font-weight: normal; +} + +@font-face { + font-family: OpenSans; + src: url(/fonts/Open_Sans/static/OpenSans-Bold.ttf); + font-weight: bold; +} + +@font-face { + font-family: Raleway; + src: url(/fonts/Raleway/static/Raleway_Regular.ttf); + font-weight: normal; +} + +@font-face { + font-family: Raleway; + src: url(/fonts/Raleway/static/Raleway-Bold.ttf); + font-weight: bold; +} + +:root { + --pandora-text: white; + --pandora-shadows: #121212; + --pandora-borders: white; +} + +body { + margin: auto; + max-width: 1200px; + padding: 0px 24px !important; + font-family: OpenSans; + color: white; + background: black; + cursor: default; + transition: 1s color, 1s background; + mobilebar { + display: none; + } + @media screen and (max-width: 800px) { + header, .sidebar { + display: none; + } + mobilebar { + display: flex; + } + .mobile-docs-dropdown { + display: block !important; + } + .document-layout { + flex-direction: column; + } + } +} + +table { + font-family: Arial, Helvetica, sans-serif; + border-collapse: collapse; + width: 100%; + + td, + th { + border: 1px solid transparent; + padding: 8px; + } + + tr:nth-child(odd) { + background-color: transparent; + } + + tr:nth-child(even) { + background-color: transparent; + } + + tr:hover { + background-color: transparent; + } + + th { + padding-top: 12px; + padding-bottom: 12pqx; + text-align: left; + background-color: transparent; + color: white; + } +} + + +* { + ::-webkit-scrollbar { + width: 0px; + } +} + +a { + color: white; + text-decoration: none; + cursor: pointer; +} + +.page-content { + max-width: 1200px; + width: 100%; +} + +.markdown { + a { + text-decoration: underline; + } +} \ No newline at end of file diff --git a/tsconfig.json b/tsconfig.json new file mode 100644 index 0000000..a704ae4 --- /dev/null +++ b/tsconfig.json @@ -0,0 +1,26 @@ +{ + "extends": "astro/tsconfigs/strict", + "include": [".astro/types.d.ts", "**/*"], + "exclude": ["dist"], + "compilerOptions": { + "baseUrl": ".", + "paths": { + "@components/*": [ + "src/components/*" + ], + "@library/*": [ + "src/library/*" + ], + "@layouts/*": [ + "src/layouts/*" + ], + "@assets/*": [ + "src/assets/*" + ], + "@styles/*": [ + "src/styles/*" + ] + }, + "jsx": "preserve" + } +} \ No newline at end of file