From 5e7324bca9c2ba4ec480ae6640130416bc52ba32 Mon Sep 17 00:00:00 2001 From: dumbmoron Date: Tue, 17 Sep 2024 14:05:25 +0000 Subject: [PATCH 001/101] web/SettingsCategory: add copy link to settings header --- .../settings/SettingsCategory.svelte | 56 ++++++++++++++++++- 1 file changed, 54 insertions(+), 2 deletions(-) diff --git a/web/src/components/settings/SettingsCategory.svelte b/web/src/components/settings/SettingsCategory.svelte index 2b9503df..1e475761 100644 --- a/web/src/components/settings/SettingsCategory.svelte +++ b/web/src/components/settings/SettingsCategory.svelte @@ -1,6 +1,8 @@
-
+
showCopy = true} + on:mouseleave={() => showCopy = false} + role="link" + tabindex="0" + >

{title}

{#if beta}
{$t("general.beta")}
{/if} + {#if showCopy} + + {/if}
diff --git a/web/src/components/settings/SettingsCategory.svelte b/web/src/components/settings/SettingsCategory.svelte index 1e475761..520be2db 100644 --- a/web/src/components/settings/SettingsCategory.svelte +++ b/web/src/components/settings/SettingsCategory.svelte @@ -1,8 +1,8 @@ @@ -63,7 +58,7 @@ padding: var(--padding) 5px; color: var(--sidebar-highlight); font-size: var(--sidebar-font-size); - opacity: 0.8; + opacity: 0.75; height: fit-content; border-radius: var(--border-radius); transition: transform 0.2s; @@ -88,19 +83,15 @@ color: var(--sidebar-bg); background: var(--sidebar-highlight); opacity: 1; - transition: none; transform: none; + animation: pressButton 0.3s; } - :global(.sidebar-tab.animate) { - animation: pressButton 0.2s; - } - - .sidebar-tab:active:not(.active) { + .sidebar-tab:active { transform: scale(0.95); } - :global([data-reduce-motion="true"]) .sidebar-tab:active:not(.active) { + :global([data-reduce-motion="true"]) .sidebar-tab:active { transform: none; } @@ -112,10 +103,10 @@ @keyframes pressButton { 0% { - transform: scale(0.95); + transform: scale(0.9); } 50% { - transform: scale(1.02); + transform: scale(1.015); } 100% { transform: scale(1); @@ -127,6 +118,7 @@ opacity: 1; background-color: var(--sidebar-hover); } + .sidebar-tab:hover:not(.active) { opacity: 1; background-color: var(--sidebar-hover); @@ -136,9 +128,15 @@ @media screen and (max-width: 535px) { .sidebar-tab { padding: 5px var(--padding); + gap: 3px; min-width: calc(var(--sidebar-width) / 2); } + .sidebar-tab :global(svg) { + height: 22px; + width: 22px; + } + .sidebar-tab.active { z-index: 2; } @@ -149,10 +147,10 @@ @keyframes pressButton { 0% { - transform: scale(0.9); + transform: scale(0.8); } - 60% { - transform: scale(1.015); + 50% { + transform: scale(1.02); } 100% { transform: scale(1); From 521eb4b64376f3dfe5e6c6469c8a0b624725270c Mon Sep 17 00:00:00 2001 From: wukko Date: Wed, 18 Sep 2024 15:58:32 +0600 Subject: [PATCH 009/101] web/Sidebar: remove fixed width for tabs container --- web/src/components/sidebar/Sidebar.svelte | 2 -- 1 file changed, 2 deletions(-) diff --git a/web/src/components/sidebar/Sidebar.svelte b/web/src/components/sidebar/Sidebar.svelte index df03e6ea..ca3a963e 100644 --- a/web/src/components/sidebar/Sidebar.svelte +++ b/web/src/components/sidebar/Sidebar.svelte @@ -70,7 +70,6 @@ #sidebar-tabs { height: 100%; - width: var(--sidebar-width); justify-content: space-between; padding: var(--sidebar-inner-padding); padding-bottom: var(--border-radius); @@ -110,7 +109,6 @@ overflow-x: scroll; padding-bottom: 0; padding: var(--sidebar-inner-padding) 0; - width: unset; height: fit-content; } From 02267b4db42f752d2db45542205d88deb5e4cf7b Mon Sep 17 00:00:00 2001 From: wukko Date: Wed, 18 Sep 2024 16:17:22 +0600 Subject: [PATCH 010/101] web/i18n/about: use section heading component --- web/i18n/en/about/credits.md | 16 +++++++++----- web/i18n/en/about/general.md | 36 +++++++++++++++++++++--------- web/i18n/en/about/privacy.md | 43 ++++++++++++++++++++++++------------ web/i18n/en/about/terms.md | 32 +++++++++++++++++++-------- 4 files changed, 88 insertions(+), 39 deletions(-) diff --git a/web/i18n/en/about/credits.md b/web/i18n/en/about/credits.md index 4002806a..442499e4 100644 --- a/web/i18n/en/about/credits.md +++ b/web/i18n/en/about/credits.md @@ -1,10 +1,14 @@
+ -### meowbalt meowbalt is cobalt's speedy mascot. he is an extremely expressive cat that loves fast internet. all amazing drawings of meowbalt that you see in cobalt were made by [GlitchyPSI](https://glitchypsi.xyz/). @@ -13,11 +17,14 @@ he is also the original designer of the character. you cannot use or modify GlitchyPSI's artworks of meowbalt without his explicit permission. you cannot use or modify the meowbalt character design commercially or in any form that isn't fan art. -
-
-### cobalt licenses +
+ + cobalt processing server is open source and licensed under [AGPL-3.0]({docs.apiLicense}). cobalt frontend is [source first](https://sourcefirst.com/) and licensed under [CC-BY-NC-SA 4.0]({docs.webLicense}). @@ -25,5 +32,4 @@ we decided to use this license to stop grifters from profiting off our work & fr we rely on many open source libraries, create & distribute our own. you can see the full list of dependencies on [github]({contacts.github}). -
diff --git a/web/i18n/en/about/general.md b/web/i18n/en/about/general.md index 5bdea833..1b32e815 100644 --- a/web/i18n/en/about/general.md +++ b/web/i18n/en/about/general.md @@ -1,19 +1,25 @@
+ -### best way to save what you love cobalt lets you save anything from your favorite websites: video, audio, photos or gifs — cobalt can do it all! no ads, trackers, or paywalls, no nonsense. just a convenient web app that works everywhere. -
+ -### leading privacy all requests to backend are anonymous and all tunnels are encrypted. we have a strict zero log policy and don't track *anything* about individual people. @@ -23,12 +29,14 @@ this technology is used when your request needs additional processing, such as w for even higher level of protection, you can [ask cobalt to always tunnel everything](/settings/privacy#tunnel). when enabled, cobalt will proxy everything through itself. no one will know what you download, even your network provider/admin. all they'll see is that you're using cobalt. -
+ -### blazing speed since we don't rely on any existing downloaders and develop our own from ground up, cobalt is extremely efficient and a processing server can run on basically any hardware. @@ -37,11 +45,14 @@ to reduce latency and distribute the traffic. we constantly improve our infrastructure along with our long-standing partner, [royalehosting.net]({partners.royalehosting})! you're in good hands, and will get what you need within seconds. -
-
-### open community +
+ + cobalt is used by countless artists, educators, and content creators to do what they love. we're always on the line with our community and work together to create even more useful tools for them. feel free to [join the conversation](/about/community)! @@ -51,11 +62,14 @@ at any time, we welcome all contributions and suggestions. you can use any processing instances hosted by the community, including your own. if your friend hosts one, just ask them for a domain and [add it in instance settings](/settings/instances#community). -
-
-### on-device processing +
+ + new features, such as [remuxing](/remux), work on-device. on-device processing is efficient and never sends anything over the internet. it perfectly aligns with our future goal of moving as much processing as possible to client. diff --git a/web/i18n/en/about/privacy.md b/web/i18n/en/about/privacy.md index 4a3d8b76..c76fdd4c 100644 --- a/web/i18n/en/about/privacy.md +++ b/web/i18n/en/about/privacy.md @@ -1,40 +1,55 @@
+ -### general terms cobalt's privacy policy is simple: we don't collect or store anything about you. what you do is solely your business, not ours or anyone else's. these terms are applicable only when using the official cobalt instance. in other cases, you may need to contact the hoster for accurate info. -
+
+ -### on-device processing tools that use on-device processing work offline, locally, and never send any data anywhere. they are explicitly marked as such whenever applicable. -
-
-### saving +
+ + when using saving functionality, in some cases cobalt will encrypt & temporarily store information needed for tunneling. it's stored in processing server's RAM for 90 seconds and irreversibly purged afterwards. no one has access to it, even instance owners, as long as they don't modify the official cobalt image. processed/tunneled files are never cached anywhere. everything is tunneled live. cobalt's saving functionality is essentially a fancy proxy service. -
+
+ -### encryption temporarily stored tunnel data is encrypted using the AES-256 standard. decryption keys are only included in the access link and never logged/cached/stored anywhere. only the end user has access to the link & encryption keys. keys are generated uniquely for each requested tunnel. -
{#if env.PLAUSIBLE_ENABLED}
+ -### anonymous traffic analytics for sake of privacy, we use [plausible's anonymous traffic analytics](https://plausible.io/) to get an approximate number of active cobalt users. no identifiable information about you or your requests is ever stored. all data is anonymized and aggregated. the plausible instance we use is hosted & managed by us. plausible doesn't use cookies and is fully compliant with GDPR, CCPA, and PECR. @@ -42,18 +57,18 @@ plausible doesn't use cookies and is fully compliant with GDPR, CCPA, and PECR. [learn more about plausible's dedication to privacy.](https://plausible.io/privacy-focused-web-analytics) if you wish to opt out of anonymous analytics, you can do it in privacy settings. -
- {/if}
+ -### web privacy & security we use cloudflare services for ddos & bot protection. we also use cloudflare pages for deploying & hosting the static web app. all of these are required to provide the best experience for everyone. it's the most private & reliable provider that we know of. cloudflare is fully compliant with GDPR and HIPAA. [learn more about cloudflare's dedication to privacy.](https://www.cloudflare.com/trust-hub/privacy-and-data-protection/) -
diff --git a/web/i18n/en/about/terms.md b/web/i18n/en/about/terms.md index 1c82124c..cd0c10fd 100644 --- a/web/i18n/en/about/terms.md +++ b/web/i18n/en/about/terms.md @@ -1,32 +1,46 @@ + +
+ -### general terms these terms are applicable only when using the official cobalt instance. in other cases, you may need to contact the hoster for accurate info. -
+ -### saving saving functionality simplifies downloading content from the internet and takes zero liability for what the saved content is used for. processing servers work like advanced proxies and don't ever write any content to disk. everything is handled in RAM and permanently purged once the tunnel is done. we have no downloading logs and can't identify anyone. [you can read more about how tunnels work in our privacy policy.](/about/privacy) -
+ -### responsibilities you (end user) are responsible for what you do with our tools, how you use and distribute resulting content. please be mindful when using content of others and always credit original creators. make sure you don't violate any terms or licenses. when used in educational purposes, always cite sources and credit original creators. fair use and credits benefit everyone. -
+
+ -### reporting abuse -we have no way of detecting abusive behavior automatically, as cobalt is 100% anonymous. however, you can report such activities to us and we will do our best to comply manually: [safety@imput.net](mailto:safety@imput.net) - +we have no way of detecting abusive behavior automatically, as cobalt is 100% anonymous. +however, you can report such activities to us and we will do our best to comply manually: [safety@imput.net](mailto:safety@imput.net)
From d1686be58339d92629c3ccd7b952180fc251595e Mon Sep 17 00:00:00 2001 From: wukko Date: Wed, 18 Sep 2024 17:41:10 +0600 Subject: [PATCH 011/101] web/i18n/about: replace section titles with i18n strings --- web/i18n/en/about.json | 16 +++++++++++++++- web/i18n/en/about/credits.md | 6 ++++-- web/i18n/en/about/general.md | 12 +++++++----- web/i18n/en/about/privacy.md | 14 ++++++++------ web/i18n/en/about/terms.md | 9 +++++---- 5 files changed, 39 insertions(+), 18 deletions(-) diff --git a/web/i18n/en/about.json b/web/i18n/en/about.json index e566faaa..b441512e 100644 --- a/web/i18n/en/about.json +++ b/web/i18n/en/about.json @@ -12,5 +12,19 @@ "community.twitter": "news account on twitter", "community.github": "github repo", "community.email": "support email", - "community.telegram": "news channel on telegram" + "community.telegram": "news channel on telegram", + + "heading.general": "general terms", + "heading.licenses": "licenses", + "heading.summary": "best way to save what you love", + "heading.privacy": "leading privacy", + "heading.speed": "blazing speed", + "heading.community": "open community", + "heading.local": "on-device processing", + "heading.saving": "saving", + "heading.encryption": "encryption", + "heading.plausible": "anonymous traffic analytics", + "heading.cloudflare": "web privacy & security", + "heading.responsibility": "user responsibilities", + "heading.abuse": "reporting abuse" } diff --git a/web/i18n/en/about/credits.md b/web/i18n/en/about/credits.md index 442499e4..27266ea4 100644 --- a/web/i18n/en/about/credits.md +++ b/web/i18n/en/about/credits.md @@ -1,11 +1,13 @@
@@ -21,7 +23,7 @@ you cannot use or modify the meowbalt character design commercially or in any fo
diff --git a/web/i18n/en/about/general.md b/web/i18n/en/about/general.md index 1b32e815..333e119e 100644 --- a/web/i18n/en/about/general.md +++ b/web/i18n/en/about/general.md @@ -1,11 +1,13 @@
@@ -16,7 +18,7 @@ no ads, trackers, or paywalls, no nonsense. just a convenient web app that works
@@ -33,7 +35,7 @@ all they'll see is that you're using cobalt.
@@ -49,7 +51,7 @@ you're in good hands, and will get what you need within seconds.
@@ -66,7 +68,7 @@ if your friend hosts one, just ask them for a domain and [add it in instance set
diff --git a/web/i18n/en/about/privacy.md b/web/i18n/en/about/privacy.md index c76fdd4c..b19ca762 100644 --- a/web/i18n/en/about/privacy.md +++ b/web/i18n/en/about/privacy.md @@ -1,11 +1,13 @@
@@ -16,7 +18,7 @@ these terms are applicable only when using the official cobalt instance. in othe
@@ -25,7 +27,7 @@ tools that use on-device processing work offline, locally, and never send any da
@@ -36,7 +38,7 @@ processed/tunneled files are never cached anywhere. everything is tunneled live.
@@ -46,7 +48,7 @@ temporarily stored tunnel data is encrypted using the AES-256 standard. decrypti {#if env.PLAUSIBLE_ENABLED}
@@ -62,7 +64,7 @@ if you wish to opt out of anonymous analytics, you can do it in diff --git a/web/i18n/en/about/terms.md b/web/i18n/en/about/terms.md index cd0c10fd..453030cf 100644 --- a/web/i18n/en/about/terms.md +++ b/web/i18n/en/about/terms.md @@ -1,10 +1,11 @@
@@ -13,7 +14,7 @@ these terms are applicable only when using the official cobalt instance. in othe
@@ -24,7 +25,7 @@ saving functionality simplifies downloading content from the internet and takes
@@ -37,7 +38,7 @@ fair use and credits benefit everyone.
From 97977efabd92375f270d1818f38de3b0682c2f19 Mon Sep 17 00:00:00 2001 From: wukko Date: Wed, 18 Sep 2024 18:44:24 +0600 Subject: [PATCH 012/101] web: generate `_headers` & add `Content-Security-Policy` header --- web/src/routes/_headers/+server.ts | 28 ++++++++++++++++++++++++++++ web/static/_headers | 3 --- 2 files changed, 28 insertions(+), 3 deletions(-) create mode 100644 web/src/routes/_headers/+server.ts delete mode 100644 web/static/_headers diff --git a/web/src/routes/_headers/+server.ts b/web/src/routes/_headers/+server.ts new file mode 100644 index 00000000..2cbf4e88 --- /dev/null +++ b/web/src/routes/_headers/+server.ts @@ -0,0 +1,28 @@ +export async function GET() { + const CSP = [ + "default-src 'none'", + "script-src 'self' challenges.cloudflare.com", + "frame-src challenges.cloudflare.com", + ] + + const _headers = { + "/*": { + "Cross-Origin-Opener-Policy": "same-origin", + "Cross-Origin-Embedder-Policy": "require-corp", + "Content-Security-Policy": CSP.join("; "), + } + } + + return new Response( + Object.entries(_headers).map( + ([path, headers]) => [ + path, + Object.entries(headers).map( + ([key, value]) => ` ${key}: ${value}` + ) + ].flat().join("\n") + ).join("\n\n") + ); +} + +export const prerender = true; diff --git a/web/static/_headers b/web/static/_headers deleted file mode 100644 index cabbdca5..00000000 --- a/web/static/_headers +++ /dev/null @@ -1,3 +0,0 @@ -/* - Cross-Origin-Opener-Policy: same-origin - Cross-Origin-Embedder-Policy: require-corp From 732199332e6d5669545a4970501a2a06a3497299 Mon Sep 17 00:00:00 2001 From: wukko Date: Wed, 18 Sep 2024 19:06:46 +0600 Subject: [PATCH 013/101] web/headers: fix CSP directives & refactor --- web/src/routes/_headers/+server.ts | 29 +++++++++++++++++++++++------ 1 file changed, 23 insertions(+), 6 deletions(-) diff --git a/web/src/routes/_headers/+server.ts b/web/src/routes/_headers/+server.ts index 2cbf4e88..f8b3c81d 100644 --- a/web/src/routes/_headers/+server.ts +++ b/web/src/routes/_headers/+server.ts @@ -1,15 +1,32 @@ +import env from "$lib/env"; + export async function GET() { - const CSP = [ - "default-src 'none'", - "script-src 'self' challenges.cloudflare.com", - "frame-src challenges.cloudflare.com", - ] + const CSP = { + "connect-src": ["*"], + "default-src": ["'none'"], + + "font-src": ["'self'"], + "style-src": ["'self'"], + "img-src": ["'self'"], + "manifest-src": ["'self'"], + "worker-src": ["'self'"], + + "script-src": [ + "'self'", + "challenges.cloudflare.com", + env.PLAUSIBLE_HOST ? env.PLAUSIBLE_HOST : "" + ], + "frame-src": ["challenges.cloudflare.com"], + } const _headers = { "/*": { "Cross-Origin-Opener-Policy": "same-origin", "Cross-Origin-Embedder-Policy": "require-corp", - "Content-Security-Policy": CSP.join("; "), + "Content-Security-Policy": + Object.entries(CSP).map( + ([directive, values]) => `${directive} ${values.join(' ')}` + ).flat().join("; "), } } From 9024418aff0bab9cd07a54492ef19bd94ecef13b Mon Sep 17 00:00:00 2001 From: wukko Date: Wed, 18 Sep 2024 19:12:13 +0600 Subject: [PATCH 014/101] web/headers: add more stuff to CSP again --- web/src/routes/_headers/+server.ts | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/web/src/routes/_headers/+server.ts b/web/src/routes/_headers/+server.ts index f8b3c81d..96e00a8c 100644 --- a/web/src/routes/_headers/+server.ts +++ b/web/src/routes/_headers/+server.ts @@ -1,5 +1,11 @@ import env from "$lib/env"; +const allowedScriptOrigins = [ + "'self'", + "challenges.cloudflare.com", + env.PLAUSIBLE_HOST ? env.PLAUSIBLE_HOST : "" +] + export async function GET() { const CSP = { "connect-src": ["*"], @@ -7,15 +13,14 @@ export async function GET() { "font-src": ["'self'"], "style-src": ["'self'"], - "img-src": ["'self'"], + "style-src-attr": ["'self'"], + "style-src-elem": ["'self'"], + "img-src": ["'self'", "data:"], "manifest-src": ["'self'"], "worker-src": ["'self'"], - "script-src": [ - "'self'", - "challenges.cloudflare.com", - env.PLAUSIBLE_HOST ? env.PLAUSIBLE_HOST : "" - ], + "script-src": allowedScriptOrigins, + "script-src-attr": allowedScriptOrigins, "frame-src": ["challenges.cloudflare.com"], } From 52599dd90035863726f7a28631305303eb061889 Mon Sep 17 00:00:00 2001 From: wukko Date: Wed, 18 Sep 2024 19:16:23 +0600 Subject: [PATCH 015/101] web/headers: update csp yet again whatever dude --- web/src/routes/_headers/+server.ts | 10 +--------- 1 file changed, 1 insertion(+), 9 deletions(-) diff --git a/web/src/routes/_headers/+server.ts b/web/src/routes/_headers/+server.ts index 96e00a8c..708d69ac 100644 --- a/web/src/routes/_headers/+server.ts +++ b/web/src/routes/_headers/+server.ts @@ -9,15 +9,7 @@ const allowedScriptOrigins = [ export async function GET() { const CSP = { "connect-src": ["*"], - "default-src": ["'none'"], - - "font-src": ["'self'"], - "style-src": ["'self'"], - "style-src-attr": ["'self'"], - "style-src-elem": ["'self'"], - "img-src": ["'self'", "data:"], - "manifest-src": ["'self'"], - "worker-src": ["'self'"], + "default-src": ["'self'"], "script-src": allowedScriptOrigins, "script-src-attr": allowedScriptOrigins, From 026cb634ecf9162dbec28e04f685f123821d199f Mon Sep 17 00:00:00 2001 From: wukko Date: Wed, 18 Sep 2024 20:11:47 +0600 Subject: [PATCH 016/101] web: update & move csp to `svelte.config.js` ough --- pnpm-lock.yaml | 3 +++ web/package.json | 1 + web/src/routes/_headers/+server.ts | 21 --------------- web/svelte.config.js | 43 ++++++++++++++++++++++++++---- 4 files changed, 42 insertions(+), 26 deletions(-) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 9d316277..90995fb6 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -140,6 +140,9 @@ importers: compare-versions: specifier: ^6.1.0 version: 6.1.1 + dotenv: + specifier: ^16.0.1 + version: 16.4.5 eslint: specifier: ^8.57.0 version: 8.57.0 diff --git a/web/package.json b/web/package.json index 67c779bc..2d4a3e61 100644 --- a/web/package.json +++ b/web/package.json @@ -33,6 +33,7 @@ "@types/fluent-ffmpeg": "^2.1.25", "@types/node": "^20.14.10", "compare-versions": "^6.1.0", + "dotenv": "^16.0.1", "eslint": "^8.57.0", "glob": "^10.4.5", "mdsvex": "^0.11.2", diff --git a/web/src/routes/_headers/+server.ts b/web/src/routes/_headers/+server.ts index 708d69ac..cdeb1f9c 100644 --- a/web/src/routes/_headers/+server.ts +++ b/web/src/routes/_headers/+server.ts @@ -1,29 +1,8 @@ -import env from "$lib/env"; - -const allowedScriptOrigins = [ - "'self'", - "challenges.cloudflare.com", - env.PLAUSIBLE_HOST ? env.PLAUSIBLE_HOST : "" -] - export async function GET() { - const CSP = { - "connect-src": ["*"], - "default-src": ["'self'"], - - "script-src": allowedScriptOrigins, - "script-src-attr": allowedScriptOrigins, - "frame-src": ["challenges.cloudflare.com"], - } - const _headers = { "/*": { "Cross-Origin-Opener-Policy": "same-origin", "Cross-Origin-Embedder-Policy": "require-corp", - "Content-Security-Policy": - Object.entries(CSP).map( - ([directive, values]) => `${directive} ${values.join(' ')}` - ).flat().join("; "), } } diff --git a/web/svelte.config.js b/web/svelte.config.js index 52263871..28602c1e 100644 --- a/web/svelte.config.js +++ b/web/svelte.config.js @@ -1,8 +1,10 @@ -import adapter from '@sveltejs/adapter-static'; -import { mdsvex } from 'mdsvex'; -import { fileURLToPath } from 'node:url'; -import { dirname, join } from 'node:path'; -import { sveltePreprocess } from 'svelte-preprocess'; +import "dotenv/config"; +import adapter from "@sveltejs/adapter-static"; + +import { mdsvex } from "mdsvex"; +import { fileURLToPath } from "node:url"; +import { dirname, join } from "node:path"; +import { sveltePreprocess } from "svelte-preprocess"; /** @type {import('@sveltejs/kit').Config} */ const config = { @@ -46,6 +48,37 @@ const config = { precompress: false, strict: true }), + csp: { + mode: "hash", + directives: { + "connect-src": ["*"], + "default-src": ["none"], + + "font-src": ["self"], + "style-src": ["self", "unsafe-inline"], + "img-src": ["self", "data:"], + "manifest-src": ["self"], + "worker-src": ["self"], + + "object-src": ["none"], + "frame-src": [ + "self", + "challenges.cloudflare.com" + ], + + "script-src": [ + "self", + "wasm-unsafe-eval", + "challenges.cloudflare.com", + + // eslint-disable-next-line no-undef + process.env.WEB_PLAUSIBLE_HOST ? process.env.WEB_PLAUSIBLE_HOST : "", + + // hash of the theme preloader in app.html + "sha256-g67gIjM3G8yMbjbxyc3QUoVsKhdxgcQzCmSKXiZZo6s=", + ] + } + }, env: { publicPrefix: 'WEB_' }, From b30b6957ce52fc3a0f5122cbcfe72473b0702784 Mon Sep 17 00:00:00 2001 From: wukko Date: Wed, 18 Sep 2024 20:15:56 +0600 Subject: [PATCH 017/101] web/package: move dependencies to devDependencies --- pnpm-lock.yaml | 45 ++++++++++++++++++++++----------------------- web/package.json | 20 +++++++++----------- 2 files changed, 31 insertions(+), 34 deletions(-) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 90995fb6..220a2cf3 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -84,41 +84,25 @@ importers: packages/version-info: {} web: - dependencies: + devDependencies: + '@eslint/js': + specifier: ^9.5.0 + version: 9.8.0 '@fontsource-variable/noto-sans-mono': specifier: ^5.0.20 version: 5.0.20 '@fontsource/ibm-plex-mono': specifier: ^5.0.13 version: 5.0.13 + '@fontsource/redaction-10': + specifier: ^5.0.2 + version: 5.0.2 '@imput/libav.js-remux-cli': specifier: ^5.5.6 version: 5.5.6 '@imput/version-info': specifier: workspace:^ version: link:../packages/version-info - '@tabler/icons-svelte': - specifier: 3.6.0 - version: 3.6.0(svelte@4.2.18) - '@vitejs/plugin-basic-ssl': - specifier: ^1.1.0 - version: 1.1.0(vite@5.3.5(@types/node@20.14.14)) - mime: - specifier: ^4.0.4 - version: 4.0.4 - sveltekit-i18n: - specifier: ^2.4.2 - version: 2.4.2(svelte@4.2.18) - ts-deepmerge: - specifier: ^7.0.0 - version: 7.0.1 - devDependencies: - '@eslint/js': - specifier: ^9.5.0 - version: 9.8.0 - '@fontsource/redaction-10': - specifier: ^5.0.2 - version: 5.0.2 '@sveltejs/adapter-static': specifier: ^3.0.2 version: 3.0.2(@sveltejs/kit@2.5.19(@sveltejs/vite-plugin-svelte@3.1.1(svelte@4.2.18)(vite@5.3.5(@types/node@20.14.14)))(svelte@4.2.18)(vite@5.3.5(@types/node@20.14.14))) @@ -128,6 +112,9 @@ importers: '@sveltejs/vite-plugin-svelte': specifier: ^3.0.0 version: 3.1.1(svelte@4.2.18)(vite@5.3.5(@types/node@20.14.14)) + '@tabler/icons-svelte': + specifier: 3.6.0 + version: 3.6.0(svelte@4.2.18) '@types/eslint__js': specifier: ^8.42.3 version: 8.42.3 @@ -137,6 +124,9 @@ importers: '@types/node': specifier: ^20.14.10 version: 20.14.14 + '@vitejs/plugin-basic-ssl': + specifier: ^1.1.0 + version: 1.1.0(vite@5.3.5(@types/node@20.14.14)) compare-versions: specifier: ^6.1.0 version: 6.1.1 @@ -152,6 +142,9 @@ importers: mdsvex: specifier: ^0.11.2 version: 0.11.2(svelte@4.2.18) + mime: + specifier: ^4.0.4 + version: 4.0.4 svelte: specifier: ^4.2.7 version: 4.2.18 @@ -161,6 +154,12 @@ importers: svelte-preprocess: specifier: ^6.0.2 version: 6.0.2(postcss@8.4.40)(svelte@4.2.18)(typescript@5.5.4) + sveltekit-i18n: + specifier: ^2.4.2 + version: 2.4.2(svelte@4.2.18) + ts-deepmerge: + specifier: ^7.0.1 + version: 7.0.1 tslib: specifier: ^2.4.1 version: 2.6.3 diff --git a/web/package.json b/web/package.json index 2d4a3e61..645b077d 100644 --- a/web/package.json +++ b/web/package.json @@ -25,36 +25,34 @@ "homepage": "https://cobalt.tools/", "devDependencies": { "@eslint/js": "^9.5.0", + "@fontsource-variable/noto-sans-mono": "^5.0.20", + "@fontsource/ibm-plex-mono": "^5.0.13", "@fontsource/redaction-10": "^5.0.2", + "@imput/libav.js-remux-cli": "^5.5.6", + "@imput/version-info": "workspace:^", "@sveltejs/adapter-static": "^3.0.2", "@sveltejs/kit": "^2.0.0", "@sveltejs/vite-plugin-svelte": "^3.0.0", + "@tabler/icons-svelte": "3.6.0", "@types/eslint__js": "^8.42.3", "@types/fluent-ffmpeg": "^2.1.25", "@types/node": "^20.14.10", + "@vitejs/plugin-basic-ssl": "^1.1.0", "compare-versions": "^6.1.0", "dotenv": "^16.0.1", "eslint": "^8.57.0", "glob": "^10.4.5", "mdsvex": "^0.11.2", + "mime": "^4.0.4", "svelte": "^4.2.7", "svelte-check": "^3.6.0", "svelte-preprocess": "^6.0.2", + "sveltekit-i18n": "^2.4.2", + "ts-deepmerge": "^7.0.1", "tslib": "^2.4.1", "turnstile-types": "^1.2.2", "typescript": "^5.4.5", "typescript-eslint": "^7.13.1", "vite": "^5.0.3" - }, - "dependencies": { - "@fontsource-variable/noto-sans-mono": "^5.0.20", - "@fontsource/ibm-plex-mono": "^5.0.13", - "@imput/libav.js-remux-cli": "^5.5.6", - "@imput/version-info": "workspace:^", - "@tabler/icons-svelte": "3.6.0", - "@vitejs/plugin-basic-ssl": "^1.1.0", - "mime": "^4.0.4", - "sveltekit-i18n": "^2.4.2", - "ts-deepmerge": "^7.0.0" } } From ce054e63fc0fbb2d11e3f52b43024952a9aaf361 Mon Sep 17 00:00:00 2001 From: wukko Date: Wed, 18 Sep 2024 20:23:29 +0600 Subject: [PATCH 018/101] web/settings: improve settings section ids --- web/src/routes/settings/audio/+page.svelte | 5 ++--- web/src/routes/settings/download/+page.svelte | 2 +- web/src/routes/settings/video/+page.svelte | 4 ++-- 3 files changed, 5 insertions(+), 6 deletions(-) diff --git a/web/src/routes/settings/audio/+page.svelte b/web/src/routes/settings/audio/+page.svelte index e2cda6f6..8ea9f34a 100644 --- a/web/src/routes/settings/audio/+page.svelte +++ b/web/src/routes/settings/audio/+page.svelte @@ -9,7 +9,7 @@ import SettingsToggle from "$components/buttons/SettingsToggle.svelte"; - + {#each audioFormatOptions as value} - - + {#each audioBitrateOptions as value} @@ -34,7 +34,7 @@ Date: Wed, 18 Sep 2024 20:30:35 +0600 Subject: [PATCH 019/101] web/PageNav: add fade in animation for subtitle --- web/src/components/subnav/PageNav.svelte | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/web/src/components/subnav/PageNav.svelte b/web/src/components/subnav/PageNav.svelte index c3255c78..ccb2afa1 100644 --- a/web/src/components/subnav/PageNav.svelte +++ b/web/src/components/subnav/PageNav.svelte @@ -73,7 +73,10 @@ {:else} {#if pageSubtitle} -
@@ -22,10 +22,10 @@ no ads, trackers, paywalls, or other nonsense. just a convenient web app that wo sectionId="motivation" /> -cobalt was created for public benefit, to protect people from ads and malware pushed by alternatives. +cobalt was created for public benefit, to protect people from ads and malware pushed by its alternatives. we believe that the best software is safe, open, and accessible. -it's possible thanks to our long-standing infrastructure partner, [royalehosting.net]({partners.royalehosting})! +it's possible to keep the main instances up thanks to our long-standing infrastructure partner, [royalehosting.net]({partners.royalehosting})!
@@ -34,28 +34,17 @@ it's possible thanks to our long-standing infrastructure partner, [royalehosting sectionId="privacy" /> -all requests to backend are anonymous and all tunnels are encrypted. +all requests to the backend are anonymous and all information about tunnels is encrypted. we have a strict zero log policy and don't track *anything* about individual people. -to avoid caching or storing downloaded files, cobalt processes them on-the-fly, sending processed pieces directly to client. -this technology is used when your request needs additional processing, such as when source service stores video & audio in separate files. +when a request needs additional processing, cobalt processes files on-the-fly. +it's done by tunneling processed parts directly to the client, without ever saving anything to disk. +for example, this method is used when the source service provides video and audio channels as separate files. -for even higher level of protection, you can [ask cobalt to always tunnel everything](/settings/privacy#tunnel). -when enabled, cobalt will proxy everything through itself. no one will know what you download, even your network provider/admin. -all they'll see is that you're using cobalt. -
- -
- - -since we don't rely on any existing downloaders and develop our own from ground up, -cobalt is extremely efficient and a processing server can run on basically any hardware. - -main processing instances are hosted on several dedicated servers in several countries, -to reduce latency and distribute the traffic. +additionally, you can [enable forced tunneling](/settings/privacy#tunnel) to protect your privacy. +when enabled, cobalt will tunnel all downloaded files. +no one will know where you download something from, even your network provider. +all they'll see is that you're using a cobalt instance.
@@ -65,14 +54,16 @@ to reduce latency and distribute the traffic. /> cobalt is used by countless artists, educators, and content creators to do what they love. -we're always on the line with our community and work together to create even more useful tools for them. +we're always on the line with our community and work together to make cobalt even more useful. feel free to [join the conversation](/about/community)! -we believe that the future of the internet is open, which is why cobalt is [source first](https://sourcefirst.com/) and [easily self-hostable]({docs.instanceHosting}). you can [check the source code & contribute to cobalt]({contacts.github}) -at any time, we welcome all contributions and suggestions. +we believe that the future of the internet is open, which is why cobalt is +[source first](https://sourcefirst.com/) and [easily self-hostable]({docs.instanceHosting}). -you can use any processing instances hosted by the community, including your own. -if your friend hosts one, just ask them for a domain and [add it in instance settings](/settings/instances#community). +if your friend hosts a processing instance, just ask them for a domain and [add it in instance settings](/settings/instances#community). + +you can check the source code and contribute [on github]({contacts.github}) at any time. +we welcome all contributions and suggestions!
@@ -81,8 +72,7 @@ if your friend hosts one, just ask them for a domain and [add it in instance set sectionId="local" /> -new features, such as [remuxing](/remux), work on-device. +newest features, such as [remuxing](/remux), work locally on your device. on-device processing is efficient and never sends anything over the internet. -it perfectly aligns with our future goal of moving as much processing as possible to client. - +it perfectly aligns with our future goal of moving as much processing as possible to the client.
From 391a8950c5ce956e2d0b4c75ef362e9c8f1a2b80 Mon Sep 17 00:00:00 2001 From: wukko Date: Sat, 28 Sep 2024 18:14:10 +0600 Subject: [PATCH 063/101] web/about/terms: clarify that safety email is not for support --- web/i18n/en/about/terms.md | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/web/i18n/en/about/terms.md b/web/i18n/en/about/terms.md index 453030cf..a134ab84 100644 --- a/web/i18n/en/about/terms.md +++ b/web/i18n/en/about/terms.md @@ -9,7 +9,8 @@ sectionId="general" /> -these terms are applicable only when using the official cobalt instance. in other cases, you may need to contact the hoster for accurate info. +these terms are applicable only when using the official cobalt instance. +in other cases, you may need to contact the hoster for accurate info.
@@ -18,7 +19,10 @@ these terms are applicable only when using the official cobalt instance. in othe sectionId="saving" /> -saving functionality simplifies downloading content from the internet and takes zero liability for what the saved content is used for. processing servers work like advanced proxies and don't ever write any content to disk. everything is handled in RAM and permanently purged once the tunnel is done. we have no downloading logs and can't identify anyone. +saving functionality simplifies downloading content from the internet and takes zero liability for what the saved content is used for. +processing servers work like advanced proxies and don't ever write any content to disk. +everything is handled in RAM and permanently purged once the tunnel is done. +we have no downloading logs and can't identify anyone. [you can read more about how tunnels work in our privacy policy.](/about/privacy)
@@ -29,7 +33,9 @@ saving functionality simplifies downloading content from the internet and takes sectionId="responsibility" /> -you (end user) are responsible for what you do with our tools, how you use and distribute resulting content. please be mindful when using content of others and always credit original creators. make sure you don't violate any terms or licenses. +you (end user) are responsible for what you do with our tools, how you use and distribute resulting content. +please be mindful when using content of others and always credit original creators. +make sure you don't violate any terms or licenses. when used in educational purposes, always cite sources and credit original creators. @@ -44,4 +50,7 @@ fair use and credits benefit everyone. we have no way of detecting abusive behavior automatically, as cobalt is 100% anonymous. however, you can report such activities to us and we will do our best to comply manually: [safety@imput.net](mailto:safety@imput.net) + +please note that this email is not intended for user support. +if you're experiencing issues, contact us via any preferred method on [the support page](/about/community).
From b4dd506f6103134c9d65565a11a0d90abd1d7990 Mon Sep 17 00:00:00 2001 From: dumbmoron Date: Mon, 30 Sep 2024 14:31:44 +0000 Subject: [PATCH 064/101] svelte/csp: add forgotten frame-ancestors directive to config --- web/svelte.config.js | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/web/svelte.config.js b/web/svelte.config.js index b3216fe4..2e4bc523 100644 --- a/web/svelte.config.js +++ b/web/svelte.config.js @@ -76,7 +76,9 @@ const config = { // hash of the theme preloader in app.html "sha256-g67gIjM3G8yMbjbxyc3QUoVsKhdxgcQzCmSKXiZZo6s=", - ] + ], + + "frame-ancestors": ["none"] } }, env: { From 31be60484de8eaf63bba8a4f508e16438aa7ba6e Mon Sep 17 00:00:00 2001 From: wukko Date: Mon, 30 Sep 2024 18:16:52 +0600 Subject: [PATCH 065/101] web/DonateOptionsCard: add 5px of tolerance for max position fixes right stepper not hiding itself in chrome when manually scrolled to the end --- web/src/components/donate/DonateOptionsCard.svelte | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/web/src/components/donate/DonateOptionsCard.svelte b/web/src/components/donate/DonateOptionsCard.svelte index 2cb29a1c..dcd1d03c 100644 --- a/web/src/components/donate/DonateOptionsCard.svelte +++ b/web/src/components/donate/DonateOptionsCard.svelte @@ -84,8 +84,8 @@ const scroll = (direction: "left" | "right") => { const currentPos = donateList.scrollLeft; - const newPos = direction === "left" ? currentPos - 150 : currentPos + 150; const maxPos = donateList.scrollWidth - donateList.getBoundingClientRect().width; + const newPos = direction === "left" ? currentPos - 150 : currentPos + 150; donateList.scroll({ left: newPos, @@ -171,7 +171,7 @@ bind:this={donateList} on:wheel={() => { const currentPos = donateList.scrollLeft; - const maxPos = donateList.scrollWidth - donateList.getBoundingClientRect().width; + const maxPos = donateList.scrollWidth - donateList.getBoundingClientRect().width - 5; showLeftScroll = currentPos > 0; showRightScroll = currentPos < maxPos && currentPos !== maxPos; }} From 84aa9fe67a126c138575579fc76c7d221f577355 Mon Sep 17 00:00:00 2001 From: wukko Date: Mon, 30 Sep 2024 22:39:52 +0600 Subject: [PATCH 066/101] web/about/credits: add a section for thanking beta testers --- web/i18n/en/about.json | 3 ++- web/i18n/en/about/credits.md | 26 +++++++++++++++++++++++++- 2 files changed, 27 insertions(+), 2 deletions(-) diff --git a/web/i18n/en/about.json b/web/i18n/en/about.json index 59d68a7d..cfe9129f 100644 --- a/web/i18n/en/about.json +++ b/web/i18n/en/about.json @@ -26,5 +26,6 @@ "heading.cloudflare": "web privacy & security", "heading.responsibility": "user responsibilities", "heading.abuse": "reporting abuse", - "heading.motivation": "motivation" + "heading.motivation": "motivation", + "heading.testers": "beta testers" } diff --git a/web/i18n/en/about/credits.md b/web/i18n/en/about/credits.md index 27266ea4..88608418 100644 --- a/web/i18n/en/about/credits.md +++ b/web/i18n/en/about/credits.md @@ -21,6 +21,29 @@ you cannot use or modify GlitchyPSI's artworks of meowbalt without his explicit you cannot use or modify the meowbalt character design commercially or in any form that isn't fan art.
+
+ + +huge shoutout to our thing breakers for testing updates early and making sure they're stable. +they also helped us ship cobalt 10! +- codfish246 +- [damir](https://otomir23.me/) +- Hunter +- [hyperdefined](https://hyper.lol/) +- [KwiatekMiki](https://kwiatekmiki.com/) +- [Lao](https://lao.ooo/) +- lostdusty +- [noblereign](https://fursona.directory/@frost) +- [Spax](https://spax.zone/) +- [synzr](https://synzr.space/) +- [vimae](https://mae.wtf/) + +all links are external and lead to their personal websites or social media. +
+
Date: Mon, 30 Sep 2024 22:41:40 +0600 Subject: [PATCH 067/101] web/about/credits: swap meowbalt and testers sections --- web/i18n/en/about/credits.md | 32 ++++++++++++++++---------------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/web/i18n/en/about/credits.md b/web/i18n/en/about/credits.md index 88608418..ddfa1fc6 100644 --- a/web/i18n/en/about/credits.md +++ b/web/i18n/en/about/credits.md @@ -5,22 +5,6 @@ import SectionHeading from "$components/misc/SectionHeading.svelte"; -
- - -meowbalt is cobalt's speedy mascot. he is an extremely expressive cat that loves fast internet. - -all amazing drawings of meowbalt that you see in cobalt were made by [GlitchyPSI](https://glitchypsi.xyz/). -he is also the original designer of the character. - -you cannot use or modify GlitchyPSI's artworks of meowbalt without his explicit permission. - -you cannot use or modify the meowbalt character design commercially or in any form that isn't fan art. -
-
+
+ + +meowbalt is cobalt's speedy mascot. he is an extremely expressive cat that loves fast internet. + +all amazing drawings of meowbalt that you see in cobalt were made by [GlitchyPSI](https://glitchypsi.xyz/). +he is also the original designer of the character. + +you cannot use or modify GlitchyPSI's artworks of meowbalt without his explicit permission. + +you cannot use or modify the meowbalt character design commercially or in any form that isn't fan art. +
+
Date: Tue, 1 Oct 2024 01:10:23 +0600 Subject: [PATCH 068/101] web/changelogs: update cobalt 10 banner --- web/changelogs/10.0.md | 4 ++-- web/static/update-banners/cobalt10.png | Bin 136748 -> 0 bytes web/static/update-banners/cobalt10.webp | Bin 0 -> 45194 bytes 3 files changed, 2 insertions(+), 2 deletions(-) delete mode 100644 web/static/update-banners/cobalt10.png create mode 100644 web/static/update-banners/cobalt10.webp diff --git a/web/changelogs/10.0.md b/web/changelogs/10.0.md index 86da6d3b..5c627605 100644 --- a/web/changelogs/10.0.md +++ b/web/changelogs/10.0.md @@ -2,8 +2,8 @@ title: "cobalt, reborn" date: "9 Sept, 2024" banner: - file: "cobalt10.png" - alt: "image of meowbalt smiling and loafing in front of a wall of text." + file: "cobalt10.webp" + alt: "image of a meowth plush staring into a screen with cobalt 10 ui shown." --- everything is new! this update marks the start of the latest chapter for cobalt. we spent the entire summer working hard to deliver the best experience ever, and we really hope you enjoy the rebirth of cobalt. diff --git a/web/static/update-banners/cobalt10.png b/web/static/update-banners/cobalt10.png deleted file mode 100644 index d95672e01e924a8faf82f2af3919f0f97a25689f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 136748 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

tF4|J(3 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%0AW%Eh(T4f7I=^@rF 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 mc9yMZx>ozW0dWQ-+dlw!Y%2MNAKG640000BE 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 Date: Tue, 1 Oct 2024 01:15:56 +0600 Subject: [PATCH 069/101] web/changelogs/10: update banner alt text --- web/changelogs/10.0.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/web/changelogs/10.0.md b/web/changelogs/10.0.md index 5c627605..0e5add71 100644 --- a/web/changelogs/10.0.md +++ b/web/changelogs/10.0.md @@ -3,7 +3,7 @@ title: "cobalt, reborn" date: "9 Sept, 2024" banner: file: "cobalt10.webp" - alt: "image of a meowth plush staring into a screen with cobalt 10 ui shown." + alt: "meowth plush staring into a screen with cobalt 10 ui shown." --- everything is new! this update marks the start of the latest chapter for cobalt. we spent the entire summer working hard to deliver the best experience ever, and we really hope you enjoy the rebirth of cobalt. From eaf87dc9a2faf3a6cf0f4042f7ff3ccad81d260d Mon Sep 17 00:00:00 2001 From: dumbmoron Date: Mon, 30 Sep 2024 19:39:10 +0000 Subject: [PATCH 070/101] web/changelogs/10: update banner --- web/static/update-banners/cobalt10.webp | Bin 45194 -> 26666 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/web/static/update-banners/cobalt10.webp b/web/static/update-banners/cobalt10.webp index 135c87d6d89ccc7a148e5516f441a32bd14721bd..d5dee0616206b0a9d55678b5f4964f241599d694 100644 GIT binary patch literal 26666 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 literal 45194 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 Date: Tue, 1 Oct 2024 21:15:57 +0600 Subject: [PATCH 071/101] web/ChangelogEntry: allow saving banners on right click --- web/src/components/changelog/ChangelogEntry.svelte | 1 + 1 file changed, 1 insertion(+) diff --git a/web/src/components/changelog/ChangelogEntry.svelte b/web/src/components/changelog/ChangelogEntry.svelte index acb7256c..18f474ef 100644 --- a/web/src/components/changelog/ChangelogEntry.svelte +++ b/web/src/components/changelog/ChangelogEntry.svelte @@ -146,6 +146,7 @@ width: 100%; aspect-ratio: 16/9; border-radius: var(--padding); + pointer-events: all; } .changelog-banner.loading { From 485353add171bf422c0769c7c80cb76bf6e1ba65 Mon Sep 17 00:00:00 2001 From: wukko Date: Tue, 1 Oct 2024 22:51:42 +0600 Subject: [PATCH 072/101] web/layout: reduce ul margin in long text noto components --- web/src/routes/+layout.svelte | 1 + 1 file changed, 1 insertion(+) diff --git a/web/src/routes/+layout.svelte b/web/src/routes/+layout.svelte index ed02b345..edc364c1 100644 --- a/web/src/routes/+layout.svelte +++ b/web/src/routes/+layout.svelte @@ -478,6 +478,7 @@ :global(.long-text-noto ul) { padding-inline-start: 30px; + margin-block-start: 9px; } :global(.long-text-noto li) { From e0a65a5bc445f921620ab7bca0eda6557e602892 Mon Sep 17 00:00:00 2001 From: dumbmoron Date: Tue, 1 Oct 2024 17:02:44 +0000 Subject: [PATCH 073/101] NotchSticker: fix sticker support for newer iphone models --- web/src/components/misc/NotchSticker.svelte | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/web/src/components/misc/NotchSticker.svelte b/web/src/components/misc/NotchSticker.svelte index 386bb04f..e43567f1 100644 --- a/web/src/components/misc/NotchSticker.svelte +++ b/web/src/components/misc/NotchSticker.svelte @@ -11,9 +11,12 @@ $: state = "hidden"; // "notch", "island", "notch x" const islandValues = [ + 53, // 16 pro max: larger text 59, // regular & plus: default 48, // regular: larger text + 49, // 16: larger text 51, // plus only: larger text + 62, // 16: regular ]; const xNotch = [44]; @@ -49,6 +52,11 @@ if (safeAreaTop === 48 && safeAreaBottom === 34) { state = "notch"; } + + // exception for iPhone 16 Pro Max + if (safeAreaTop === 53 && safeAreaBottom === 29) { + state = "notch sixteen-pro-max"; + } } @@ -77,6 +85,10 @@ padding-top: 2px; } + #cobalt-notch-sticker.sixteen-pro-max { + padding-top: 12px; + } + #cobalt-notch-sticker.notch.x :global(svg) { height: 28px; } From 1f7dc6f54f67c0bef8f8cba2899fc8ecccc0f072 Mon Sep 17 00:00:00 2001 From: wukko Date: Tue, 1 Oct 2024 23:09:11 +0600 Subject: [PATCH 074/101] web/changelogs: add 10.1 changelog --- web/changelogs/10.1.md | 54 ++++++++++++++++++ .../update-banners/meowth101hammer.webp | Bin 0 -> 49248 bytes 2 files changed, 54 insertions(+) create mode 100644 web/changelogs/10.1.md create mode 100644 web/static/update-banners/meowth101hammer.webp diff --git a/web/changelogs/10.1.md b/web/changelogs/10.1.md new file mode 100644 index 00000000..543d9f9d --- /dev/null +++ b/web/changelogs/10.1.md @@ -0,0 +1,54 @@ +--- +title: "squashing bugs, improving security and ux" +date: "1 Oct, 2024" +banner: + file: "meowth101hammer.webp" + alt: "meowth plush getting squished with a hammer." +--- + +this update enhances the cobalt experience all around, here's everything that we added or changed since 10.0: + +### saving improvements: +- youtube videos encoded in av1 are now downloaded in the webm container. they also include opus audio for the best quality all around. +- fixed various bugs related to the download process on older devices/browsers. cobalt should work everywhere *within sane limits*. +- fixed downloading of twitch clips. +- fixed a bug where cobalt wouldn't download bluesky videos that are in a post with a quote. +- fixed a bug that caused some youtube music videos to fail to download due to differently formatted metadata. +- cobalt will no longer unexpectedly open video files on iOS. instead, a dialog with other options will be shown. this had to be done due to missing "download" button in safari's video player. you can override this by enabling [forced tunneling](/settings/privacy#tunnel). +- fixed a bug in filename generation where certain information was added to the filename even if cobalt didn't have it (such as youtube video format). + +### general ui/ux improvements: +- added a button to quickly copy a link to the section in settings or about page. +- added `(remux)` to filenames of remuxed videos to distinguish them from the original file. +- improved the look & behavior of the sidebar. +- fixed cursor appearance to update correctly when using the sidebar or subpage navigation. +- added a stepped scroller to the donation options card [on the donate page](/donate). +- tweaked the [donate page](/donate) layout to be cleaner and more flexible. +- fixed tab navigation for donation option buttons. +- updated the [10.0 changelog banner](/updates#10.0) to be less boring. +- fixed a bug that caused some changelog dates to be displayed a day later than intended. +- changelog banner can now be saved with a right click. +- cobalt version now gently fades in on the [settings page](/settings). +- fixed the position of the notch easter egg on iPhone XR, 11, 16 Pro, and 16 Pro Max. +- cobalt will let you paste the link even if the anti-bot check isn't completed yet. if anything goes wrong regarding anti-bot checks, cobalt will let you know. +- fixed a bunch of typos and minor grammatical errors. + +### about page improvements: +- added motivation section to the [general about page](/about/general). +- added a list of beta testers to the [credits page](/about/credits). +- rephrased some about sections to improve clarity and readibility. +- made about page body narrower to be easier to read. +- added extra padding between sections on about page to increase readibility. + +### internal improvements: +- cobalt now preloads server info for quicker access to supported services & loading turnstile on demand. +- converted all elements and the about page to be translatable in preparations for community-sourced translations *(coming soon!)*. +- added `content-security-policy` header to restrict and better prevent XSS attacks. +- moved the turnstile bot check key to the server, making it load the script on the client only if necessary. +- fixed a bug in the api that allowed for making requests without a valid `Accept` header if authentication wasn't enabled on an instance. + +if you wish, you can check [all commits since the 10.0 release on github](https://github.com/imputnet/cobalt/compare/08bc5022...main). + +we hope you enjoy this stable update and have a wonderful day! + +\~ your friends at imput ❤️ diff --git a/web/static/update-banners/meowth101hammer.webp b/web/static/update-banners/meowth101hammer.webp new file mode 100644 index 0000000000000000000000000000000000000000..36302815a4b1c5bcb72a6323599677e7f7a125e2 GIT binary patch literal 49248 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

P2c&uav6vZjjC%@7~LXqhZ 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 Date: Tue, 1 Oct 2024 23:14:43 +0600 Subject: [PATCH 075/101] web/changelogs/10.1: update the github compare link --- web/changelogs/10.1.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/web/changelogs/10.1.md b/web/changelogs/10.1.md index 543d9f9d..61950150 100644 --- a/web/changelogs/10.1.md +++ b/web/changelogs/10.1.md @@ -10,7 +10,7 @@ this update enhances the cobalt experience all around, here's everything that we ### saving improvements: - youtube videos encoded in av1 are now downloaded in the webm container. they also include opus audio for the best quality all around. -- fixed various bugs related to the download process on older devices/browsers. cobalt should work everywhere *within sane limits*. +- fixed various bugs related to the download process on older devices/browsers. cobalt should work everywhere within sane limits. - fixed downloading of twitch clips. - fixed a bug where cobalt wouldn't download bluesky videos that are in a post with a quote. - fixed a bug that caused some youtube music videos to fail to download due to differently formatted metadata. @@ -32,6 +32,7 @@ this update enhances the cobalt experience all around, here's everything that we - fixed the position of the notch easter egg on iPhone XR, 11, 16 Pro, and 16 Pro Max. - cobalt will let you paste the link even if the anti-bot check isn't completed yet. if anything goes wrong regarding anti-bot checks, cobalt will let you know. - fixed a bunch of typos and minor grammatical errors. +- other minor changes. ### about page improvements: - added motivation section to the [general about page](/about/general). @@ -47,7 +48,7 @@ this update enhances the cobalt experience all around, here's everything that we - moved the turnstile bot check key to the server, making it load the script on the client only if necessary. - fixed a bug in the api that allowed for making requests without a valid `Accept` header if authentication wasn't enabled on an instance. -if you wish, you can check [all commits since the 10.0 release on github](https://github.com/imputnet/cobalt/compare/08bc5022...main). +you can also check [all commits since the 10.0 release on github](https://github.com/imputnet/cobalt/compare/08bc5022...1f7dc6f5). we hope you enjoy this stable update and have a wonderful day! From 9f9ab36e7ee77d976b9f8a4963df49601dd51694 Mon Sep 17 00:00:00 2001 From: wukko Date: Tue, 1 Oct 2024 23:17:26 +0600 Subject: [PATCH 076/101] web/changelog/10.1: update the hash in the compare link --- web/changelogs/10.1.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/web/changelogs/10.1.md b/web/changelogs/10.1.md index 61950150..66d312db 100644 --- a/web/changelogs/10.1.md +++ b/web/changelogs/10.1.md @@ -48,7 +48,7 @@ this update enhances the cobalt experience all around, here's everything that we - moved the turnstile bot check key to the server, making it load the script on the client only if necessary. - fixed a bug in the api that allowed for making requests without a valid `Accept` header if authentication wasn't enabled on an instance. -you can also check [all commits since the 10.0 release on github](https://github.com/imputnet/cobalt/compare/08bc5022...1f7dc6f5). +you can also check [all commits since the 10.0 release on github](https://github.com/imputnet/cobalt/compare/08bc5022...f461b02f). we hope you enjoy this stable update and have a wonderful day! From d7c2415f38a6e54a092ec747aefc669cdb67cd1f Mon Sep 17 00:00:00 2001 From: wukko Date: Tue, 1 Oct 2024 23:26:47 +0600 Subject: [PATCH 077/101] web/changelogs/10.1: fix a typo in "readability" --- web/changelogs/10.1.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/web/changelogs/10.1.md b/web/changelogs/10.1.md index 66d312db..885018d2 100644 --- a/web/changelogs/10.1.md +++ b/web/changelogs/10.1.md @@ -37,9 +37,9 @@ this update enhances the cobalt experience all around, here's everything that we ### about page improvements: - added motivation section to the [general about page](/about/general). - added a list of beta testers to the [credits page](/about/credits). -- rephrased some about sections to improve clarity and readibility. +- rephrased some about sections to improve clarity and readability. - made about page body narrower to be easier to read. -- added extra padding between sections on about page to increase readibility. +- added extra padding between sections on about page to increase readability. ### internal improvements: - cobalt now preloads server info for quicker access to supported services & loading turnstile on demand. From 16997f1e38e4a5bbf73d66745de3a7a89e18433d Mon Sep 17 00:00:00 2001 From: wukko Date: Wed, 2 Oct 2024 18:47:30 +0600 Subject: [PATCH 078/101] web/about/credits: add the website link for one of testers --- web/i18n/en/about/credits.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/web/i18n/en/about/credits.md b/web/i18n/en/about/credits.md index ddfa1fc6..e164ca6a 100644 --- a/web/i18n/en/about/credits.md +++ b/web/i18n/en/about/credits.md @@ -19,7 +19,7 @@ they also helped us ship cobalt 10! - [hyperdefined](https://hyper.lol/) - [KwiatekMiki](https://kwiatekmiki.com/) - [Lao](https://lao.ooo/) -- lostdusty +- [lostdusty](https://lostdusty.dev.br/) - [noblereign](https://fursona.directory/@frost) - [Spax](https://spax.zone/) - [synzr](https://synzr.space/) From e419de07a43270db2a43c89f9215088e5d489d8b Mon Sep 17 00:00:00 2001 From: wukko Date: Thu, 3 Oct 2024 11:57:18 +0600 Subject: [PATCH 079/101] web/layout: fix text selection color --- web/src/routes/+layout.svelte | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/web/src/routes/+layout.svelte b/web/src/routes/+layout.svelte index edc364c1..ce5e0c02 100644 --- a/web/src/routes/+layout.svelte +++ b/web/src/routes/+layout.svelte @@ -501,6 +501,11 @@ padding-top: 0; } + :global(::selection) { + color: var(--primary); + background: var(--secondary); + } + @media screen and (max-width: 535px) { :global(.long-text-noto), :global(.long-text-noto *:not(h1, h2, h3, h4, h5, h6)) { From b3137ad9acee737a889e3854056c5e08cb7ff506 Mon Sep 17 00:00:00 2001 From: KwiatekMiki Date: Thu, 3 Oct 2024 08:26:38 +0200 Subject: [PATCH 080/101] feat/api: add support for twitter bookmark links (#706) * feat: add support for twitter bookmark links * feat: add tests for bookmark twitter links --- api/src/processing/service-config.js | 3 ++- api/src/processing/url.js | 5 +++++ api/src/util/tests.json | 18 ++++++++++++++++++ 3 files changed, 25 insertions(+), 1 deletion(-) diff --git a/api/src/processing/service-config.js b/api/src/processing/service-config.js index f091d448..8d8bf4ac 100644 --- a/api/src/processing/service-config.js +++ b/api/src/processing/service-config.js @@ -137,7 +137,8 @@ export const services = { ":user/status/:id/video/:index", ":user/status/:id/photo/:index", ":user/status/:id/mediaviewer", - ":user/status/:id/mediaViewer" + ":user/status/:id/mediaViewer", + "i/bookmarks?post_id=:id" ], subdomains: ["mobile"], altDomains: ["x.com", "vxtwitter.com", "fixvx.com"], diff --git a/api/src/processing/url.js b/api/src/processing/url.js index a8e69937..034a5d73 100644 --- a/api/src/processing/url.js +++ b/api/src/processing/url.js @@ -120,6 +120,11 @@ function cleanURL(url) { limitQuery('p') } break; + case "twitter": + if (url.searchParams.get('post_id')) { + limitQuery('post_id') + } + break; } if (stripQuery) { diff --git a/api/src/util/tests.json b/api/src/util/tests.json index 17952595..94005c0a 100644 --- a/api/src/util/tests.json +++ b/api/src/util/tests.json @@ -192,6 +192,24 @@ "code": 400, "status": "error" } + }, + { + "name": "bookmarked video", + "url": "https://twitter.com/i/bookmarks?post_id=1828099210220294314", + "params": {}, + "expected": { + "code": 200, + "status": "redirect" + } + }, + { + "name": "bookmarked photo", + "url": "https://twitter.com/i/bookmarks?post_id=1837430141179289876", + "params": {}, + "expected": { + "code": 200, + "status": "redirect" + } } ], "soundcloud": [ From c2d7e1df125be7967430688db8c62c1746283cdc Mon Sep 17 00:00:00 2001 From: lath <38570701+halozat@users.noreply.github.com> Date: Thu, 3 Oct 2024 08:27:28 +0200 Subject: [PATCH 081/101] api/config: add configuration for streamLifespan (#792) --- api/src/config.js | 2 +- docs/run-an-instance.md | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/api/src/config.js b/api/src/config.js index 5f3e52cc..1f00231e 100644 --- a/api/src/config.js +++ b/api/src/config.js @@ -26,7 +26,7 @@ const env = { rateLimitMax: (process.env.RATELIMIT_MAX && parseInt(process.env.RATELIMIT_MAX)) || 20, durationLimit: (process.env.DURATION_LIMIT && parseInt(process.env.DURATION_LIMIT)) || 10800, - streamLifespan: 90, + streamLifespan: (process.env.TUNNEL_LIFESPAN && parseInt(process.env.TUNNEL_LIFESPAN)) || 90, processingPriority: process.platform !== 'win32' && process.env.PROCESSING_PRIORITY diff --git a/docs/run-an-instance.md b/docs/run-an-instance.md index 8144c037..4e41c73b 100644 --- a/docs/run-an-instance.md +++ b/docs/run-an-instance.md @@ -71,6 +71,7 @@ sudo service nscd start | `RATELIMIT_WINDOW` | `60` | `120` | rate limit time window in **seconds**. | | `RATELIMIT_MAX` | `20` | `30` | max requests per time window. requests above this amount will be blocked for the rate limit window duration. | | `DURATION_LIMIT` | `10800` | `18000` | max allowed video duration in **seconds**. | +| `TUNNEL_LIFESPAN` | `90` | `120` | the duration for which tunnel info is stored in ram, **in seconds**. | \* the higher the nice value, the lower the priority. [read more here](https://en.wikipedia.org/wiki/Nice_(Unix)). From 1a9494b60a73b674c2f375a78d036c2b5c6b3480 Mon Sep 17 00:00:00 2001 From: Alec Armbruster <35377827+alectrocute@users.noreply.github.com> Date: Fri, 4 Oct 2024 04:43:31 -0700 Subject: [PATCH 082/101] web/layout: increase toggle contrast in dark mode (#754) --- web/src/routes/+layout.svelte | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/web/src/routes/+layout.svelte b/web/src/routes/+layout.svelte index ce5e0c02..9ff435a9 100644 --- a/web/src/routes/+layout.svelte +++ b/web/src/routes/+layout.svelte @@ -203,7 +203,7 @@ --input-border: #383838; --toggle-bg: var(--input-border); - --toggle-bg-enabled: #777777; + --toggle-bg-enabled: #8a8a8a; --sidebar-mobile-gradient: linear-gradient( 90deg, From 4317b128a8c70bf2c04fd83091e8f8a1603ac077 Mon Sep 17 00:00:00 2001 From: dumbmoron Date: Fri, 4 Oct 2024 12:23:48 +0000 Subject: [PATCH 083/101] about/credits: move beta tester listing to component this is to prevent it from showing up in i18n --- web/i18n/en/about/credits.md | 13 ++------- web/src/components/misc/BetaTesters.svelte | 32 ++++++++++++++++++++++ 2 files changed, 34 insertions(+), 11 deletions(-) create mode 100644 web/src/components/misc/BetaTesters.svelte diff --git a/web/i18n/en/about/credits.md b/web/i18n/en/about/credits.md index e164ca6a..6c001f58 100644 --- a/web/i18n/en/about/credits.md +++ b/web/i18n/en/about/credits.md @@ -3,6 +3,7 @@ import { t } from "$lib/i18n/translations"; import SectionHeading from "$components/misc/SectionHeading.svelte"; + import BetaTesters from "$components/misc/BetaTesters.svelte";

@@ -13,17 +14,7 @@ huge shoutout to our thing breakers for testing updates early and making sure they're stable. they also helped us ship cobalt 10! -- codfish246 -- [damir](https://otomir23.me/) -- Hunter -- [hyperdefined](https://hyper.lol/) -- [KwiatekMiki](https://kwiatekmiki.com/) -- [Lao](https://lao.ooo/) -- [lostdusty](https://lostdusty.dev.br/) -- [noblereign](https://fursona.directory/@frost) -- [Spax](https://spax.zone/) -- [synzr](https://synzr.space/) -- [vimae](https://mae.wtf/) + all links are external and lead to their personal websites or social media.
diff --git a/web/src/components/misc/BetaTesters.svelte b/web/src/components/misc/BetaTesters.svelte new file mode 100644 index 00000000..df429dfd --- /dev/null +++ b/web/src/components/misc/BetaTesters.svelte @@ -0,0 +1,32 @@ + + +
    + {#each credits as { name, url }} +
  • + {#if url} + + {name} + + {:else} + {name} + {/if} +
  • + {/each} +
From 741dfd40f5d6a076c3598ffcdd52e7071faac3d5 Mon Sep 17 00:00:00 2001 From: dumbmoron Date: Fri, 4 Oct 2024 14:58:56 +0000 Subject: [PATCH 084/101] api/security: implement api keys as method of authentication --- .gitignore | 1 + api/package.json | 2 +- api/src/config.js | 5 + api/src/misc/console-text.js | 7 ++ api/src/security/api-keys.js | 201 +++++++++++++++++++++++++++++++++++ docs/run-an-instance.md | 48 +++++++++ pnpm-lock.yaml | 13 ++- 7 files changed, 273 insertions(+), 4 deletions(-) create mode 100644 api/src/security/api-keys.js diff --git a/.gitignore b/.gitignore index b408b65c..ae56830a 100644 --- a/.gitignore +++ b/.gitignore @@ -13,6 +13,7 @@ build .env.* !.env.example cookies.json +keys.json # docker docker-compose.yml diff --git a/api/package.json b/api/package.json index e37c839d..89fab0be 100644 --- a/api/package.json +++ b/api/package.json @@ -33,7 +33,7 @@ "express-rate-limit": "^6.3.0", "ffmpeg-static": "^5.1.0", "hls-parser": "^0.10.7", - "ipaddr.js": "2.1.0", + "ipaddr.js": "2.2.0", "nanoid": "^4.0.2", "node-cache": "^5.1.2", "psl": "1.9.0", diff --git a/api/src/config.js b/api/src/config.js index 1f00231e..3a28d7ce 100644 --- a/api/src/config.js +++ b/api/src/config.js @@ -43,6 +43,11 @@ const env = { && process.env.TURNSTILE_SECRET && process.env.JWT_SECRET, + apiKeyURL: process.env.API_KEY_URL && new URL(process.env.API_KEY_URL), + authRequired: process.env.API_AUTH_REQUIRED === '1', + + keyReloadInterval: 900, + enabledServices, } diff --git a/api/src/misc/console-text.js b/api/src/misc/console-text.js index 014584ae..6ce747d7 100644 --- a/api/src/misc/console-text.js +++ b/api/src/misc/console-text.js @@ -5,12 +5,19 @@ function t(color, tt) { export function Bright(tt) { return t("\x1b[1m", tt) } + export function Red(tt) { return t("\x1b[31m", tt) } + export function Green(tt) { return t("\x1b[32m", tt) } + export function Cyan(tt) { return t("\x1b[36m", tt) } + +export function Yellow(tt) { + return t("\x1b[93m", tt) +} diff --git a/api/src/security/api-keys.js b/api/src/security/api-keys.js new file mode 100644 index 00000000..6ab11e78 --- /dev/null +++ b/api/src/security/api-keys.js @@ -0,0 +1,201 @@ +import { env } from "../config.js"; +import { readFile } from "node:fs/promises"; +import { Yellow } from "../misc/console-text.js"; +import ip from "ipaddr.js"; + +// this function is a modified variation of code +// from https://stackoverflow.com/a/32402438/14855621 +const generateWildcardRegex = rule => { + var escapeRegex = (str) => str.replace(/([.*+?^=!:${}()|\[\]\/\\])/g, "\\$1"); + return new RegExp("^" + rule.split("*").map(escapeRegex).join(".*") + "$"); +} + +const UUID_REGEX = /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/; + +let keys = {}; + +const ALLOWED_KEYS = new Set(['name', 'ips', 'userAgents', 'limit']); + +/* Expected format pseudotype: +** type KeyFileContents = Record< +** UUIDv4String, +** { +** name?: string, +** limit?: number | "unlimited", +** ips?: CIDRString[], +** userAgents?: string[] +** } +** >; +*/ + +const validateKeys = (input) => { + if (typeof input !== 'object' || input === null) { + throw "input is not an object"; + } + + if (Object.keys(input).some(x => !UUID_REGEX.test(x))) { + throw "key file contains invalid key(s)"; + } + + Object.values(input).forEach(details => { + if (typeof details !== 'object' || details === null) { + throw "some key(s) are incorrectly configured"; + } + + const unexpected_key = Object.keys(details).find(k => !ALLOWED_KEYS.has(k)); + if (unexpected_key) { + throw "detail object contains unexpected key: " + unexpected_key; + } + + if (details.limit && details.limit !== 'unlimited') { + if (typeof details.limit !== 'number') + throw "detail object contains invalid limit (not a number)"; + else if (details.limit < 1) + throw "detail object contains invalid limit (not a number)"; + } + + if (details.ips) { + if (!Array.isArray(details.ips)) + throw "details object contains value for `ips` which is not an array"; + + const invalid_ip = details.ips.find( + addr => typeof addr !== 'string' || (!ip.isValidCIDR(addr) && !ip.isValid(addr)) + ); + + if (invalid_ip) { + throw "`ips` in details contains an invalid IP or CIDR range: " + invalid_ip; + } + } + + if (details.userAgents) { + if (!Array.isArray(details.userAgents)) + throw "details object contains value for `userAgents` which is not an array"; + + const invalid_ua = details.userAgents.find(ua => typeof ua !== 'string'); + if (invalid_ua) { + throw "`userAgents` in details contains an invalid user agent: " + invalid_ua; + } + } + }); +} + +const formatKeys = (keyData) => { + const formatted = {}; + + for (let key in keyData) { + const data = keyData[key]; + key = key.toLowerCase(); + + formatted[key] = {}; + + if (data.limit) { + formatted[key].limit = data.limit; + } + + if (data.ips) { + formatted[key].ips = data.ips.map(addr => { + if (ip.isValid(addr)) { + return [ ip.parse(addr), 32 ]; + } + + return ip.parseCIDR(addr); + }); + } + + if (data.userAgents) { + formatted[key].userAgents = data.userAgents.map(generateWildcardRegex); + } + } + + return formatted; +} + +const loadKeys = async (source) => { + let updated; + if (source.protocol === 'file:') { + const pathname = source.pathname === '/' ? '' : source.pathname; + updated = JSON.parse( + await readFile( + decodeURIComponent(source.host + pathname), + 'utf8' + ) + ); + } else { + updated = await fetch(source).then(a => a.json()); + } + + validateKeys(updated); + keys = formatKeys(updated); +} + +const wrapLoad = (url) => { + loadKeys(url) + .then(() => {}) + .catch((e) => { + console.error(`${Yellow('[!]')} Failed loading API keys at ${new Date().toISOString()}.`); + console.error('Error:', e); + }) +} + +const err = (reason) => ({ success: false, error: reason }); + +export const validateAuthorization = (req) => { + const authHeader = req.get('Authorization'); + + if (typeof authHeader !== 'string') { + return err("missing"); + } + + const [ authType, keyString ] = authHeader.split(' ', 2); + if (authType.toLowerCase() !== 'api-key') { + return err("not_api_key"); + } + + if (!UUID_REGEX.test(keyString) || `${authType} ${keyString}` !== authHeader) { + return err("invalid"); + } + + const matchingKey = keys[keyString.toLowerCase()]; + if (!matchingKey) { + return err("not_found"); + } + + if (matchingKey.ips) { + let addr; + try { + addr = ip.parse(req.ip); + } catch { + return err("invalid_ip"); + } + + const ip_allowed = matchingKey.ips.some( + ([ allowed, size ]) => { + return addr.kind() === allowed.kind() + && addr.match(allowed, size); + } + ); + + if (!ip_allowed) { + return err("ip_not_allowed"); + } + } + + if (matchingKey.userAgents) { + const userAgent = req.get('User-Agent'); + if (!matchingKey.userAgents.some(regex => regex.test(userAgent))) { + return err("ua_not_allowed"); + } + } + + req.rateLimitKey = keyString.toLowerCase(); + req.rateLimitMax = matchingKey.limit; + + return { success: true }; +} + +export const setup = (url) => { + wrapLoad(url); + if (env.keyReloadInterval > 0) { + setInterval(() => wrapLoad(url), env.keyReloadInterval * 1000); + } +} diff --git a/docs/run-an-instance.md b/docs/run-an-instance.md index 4e41c73b..32a928a6 100644 --- a/docs/run-an-instance.md +++ b/docs/run-an-instance.md @@ -72,6 +72,8 @@ sudo service nscd start | `RATELIMIT_MAX` | `20` | `30` | max requests per time window. requests above this amount will be blocked for the rate limit window duration. | | `DURATION_LIMIT` | `10800` | `18000` | max allowed video duration in **seconds**. | | `TUNNEL_LIFESPAN` | `90` | `120` | the duration for which tunnel info is stored in ram, **in seconds**. | +| `API_KEY_URL` | ➖ | `file://keys.json` | the location of the api key database. for loading API keys, cobalt supports HTTP(S) urls, or local files by specifying a local path using the `file://` protocol. see the "api key file format" below for more details. | +| `API_AUTH_REQUIRED` | ➖ | `1` | when set to `1`, the user always needs to be authenticated in some way before they can access the API (either via an api key or via turnstile, if enabled). | \* the higher the nice value, the lower the priority. [read more here](https://en.wikipedia.org/wiki/Nice_(Unix)). @@ -80,3 +82,49 @@ setting a `FREEBIND_CIDR` allows cobalt to pick a random IP for every download a requests it makes for that particular download. to use freebind in cobalt, you need to follow its [setup instructions](https://github.com/imputnet/freebind.js?tab=readme-ov-file#setup) first. if you configure this option while running cobalt in a docker container, you also need to set the `API_LISTEN_ADDRESS` env to `127.0.0.1`, and set `network_mode` for the container to `host`. + +#### api key file format +the file is a JSON-serialized object with the following structure: +```typescript + +type KeyFileContents = Record< + UUIDv4String, + { + name?: string, + limit?: number | "unlimited", + ips?: (CIDRString | IPString)[], + userAgents?: string[] + } +>; +``` + +where *`UUIDv4String`* is a stringified version of a UUIDv4 identifier. +- **name** is a field for your own reference, it is not used by cobalt anywhere. + +- **`limit`** specifies how many requests the API key can make during the window specified in the `RATELIMIT_WINDOW` env. + - when omitted, the limit specified in `RATELIMIT_MAX` will be used. + +- **`ips`** contains an array of allowlisted IP ranges, which can be specified both as individual ips or CIDR ranges (e.g. *`["192.168.42.69", "2001:db8::48", "10.0.0.0/8", "fe80::/10"]`*). + - when specified, only requests from these ip ranges can use the specified api key. + - when omitted, any IP can be used to make requests with that API key. + +- **`userAgents`** contains an array of allowed user agents, with support for wildcards (e.g. *`["cobaltbot/1.0", "Mozilla/5.0 * Chrome/*"]`*). + - when specified, requests with a `user-agent` that does not appear in this array will be rejected. + - when omitted, any user agent can be specified to make requests with that API key. + +- if both `ips` and `userAgents` are set, the tokens will be limited by both parameters. +- if cobalt detects any problem with your key file, it will be ignored and a warning will be printed to the console. + +an example key file could look like this: +```json +{ + "b5c7160a-b655-4c7a-b500-de839f094550": { + "limit": 10, + "ips": ["10.0.0.0/8", "192.168.42.42"], + "userAgents": ["*Chrome*"] + } +} +``` + +if you are configuring a key file, **do not use the UUID from the example** but instead generate your own. you can do this by running the following command if you have node.js installed: +`node -e "console.log(crypto.randomUUID())"` diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 220a2cf3..7ce32e54 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -38,8 +38,8 @@ importers: specifier: ^0.10.7 version: 0.10.9 ipaddr.js: - specifier: 2.1.0 - version: 2.1.0 + specifier: 2.2.0 + version: 2.2.0 nanoid: specifier: ^4.0.2 version: 4.0.2 @@ -1448,6 +1448,10 @@ packages: resolution: {integrity: sha512-LlbxQ7xKzfBusov6UMi4MFpEg0m+mAm9xyNGEduwXMEDuf4WfzB/RZwMVYEd7IKGvh4IUkEXYxtAVu9T3OelJQ==} engines: {node: '>= 10'} + ipaddr.js@2.2.0: + resolution: {integrity: sha512-Ag3wB2o37wslZS19hZqorUnrnzSkpOVy+IiiDEiTqNubEYpYuHWIf6K4psgN2ZWKExS4xhVCrRVfb/wfW8fWJA==} + engines: {node: '>= 10'} + is-binary-path@2.1.0: resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} engines: {node: '>=8'} @@ -3471,7 +3475,10 @@ snapshots: ipaddr.js@1.9.1: {} - ipaddr.js@2.1.0: {} + ipaddr.js@2.1.0: + optional: true + + ipaddr.js@2.2.0: {} is-binary-path@2.1.0: dependencies: From 44f7e4f76ce587558b15b674c5666d6f6d8ca6be Mon Sep 17 00:00:00 2001 From: dumbmoron Date: Fri, 4 Oct 2024 15:19:19 +0000 Subject: [PATCH 085/101] web: remove `TURNSTILE_KEY` env from readme --- web/README.md | 1 - 1 file changed, 1 deletion(-) diff --git a/web/README.md b/web/README.md index b4122d39..c528f6e5 100644 --- a/web/README.md +++ b/web/README.md @@ -15,7 +15,6 @@ them, you must specify them when building the frontend (or running a vite server | `WEB_HOST` | `cobalt.tools` | domain on which the frontend will be running. used for meta tags and configuring plausible. | | `WEB_PLAUSIBLE_HOST` | `plausible.io`* | enables plausible analytics with provided hostname as receiver backend. | | `WEB_DEFAULT_API` | `https://api.cobalt.tools/` | changes url which is used for api requests by frontend clients. | -| `WEB_TURNSTILE_KEY` | `1x00000000000000000000AA` | [cloudflare turnstile](https://www.cloudflare.com/products/turnstile/) public key for antibot protection | \* don't use plausible.io as receiver backend unless you paid for their cloud service. use your own domain when hosting community edition of plausible. refer to their [docs](https://plausible.io/docs) when needed. From 034f7ebe4a23c63d2d44eec90fe7d674c8c0eeb7 Mon Sep 17 00:00:00 2001 From: dumbmoron Date: Fri, 4 Oct 2024 16:58:15 +0000 Subject: [PATCH 086/101] api/core: extract rate limit response to function --- api/src/core/api.js | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/api/src/core/api.js b/api/src/core/api.js index 78d4359e..4ed1524d 100644 --- a/api/src/core/api.js +++ b/api/src/core/api.js @@ -57,6 +57,16 @@ export const runAPI = (express, app, __dirname) => { git, }) + const handleRateExceeded = (_, res) => { + const { status, body } = createResponse("error", { + code: "error.api.rate_exceeded", + context: { + limit: env.rateLimitWindow + } + }); + return res.status(status).json(body); + }; + const apiLimiter = rateLimit({ windowMs: env.rateLimitWindow * 1000, max: env.rateLimitMax, @@ -68,15 +78,7 @@ export const runAPI = (express, app, __dirname) => { } return generateHmac(getIP(req), ipSalt); }, - handler: (req, res) => { - const { status, body } = createResponse("error", { - code: "error.api.rate_exceeded", - context: { - limit: env.rateLimitWindow - } - }); - return res.status(status).json(body); - } + handler: handleRateExceeded }) const apiLimiterStream = rateLimit({ From f2248d4e9a84d429c4741f0243fd97ab6a7c215d Mon Sep 17 00:00:00 2001 From: dumbmoron Date: Fri, 4 Oct 2024 16:59:53 +0000 Subject: [PATCH 087/101] api/core: move api limiter after authentication --- api/src/core/api.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/api/src/core/api.js b/api/src/core/api.js index 4ed1524d..050825e2 100644 --- a/api/src/core/api.js +++ b/api/src/core/api.js @@ -105,7 +105,6 @@ export const runAPI = (express, app, __dirname) => { ...corsConfig, })); - app.post('/', apiLimiter); app.use('/tunnel', apiLimiterStream); app.post('/', (req, res, next) => { @@ -148,7 +147,9 @@ export const runAPI = (express, app, __dirname) => { next(); }); + app.post('/', apiLimiter); app.use('/', express.json({ limit: 1024 })); + app.use('/', (err, _, res, next) => { if (err) { const { status, body } = createResponse("error", { From 38fcee4a506ac548ced88b1d652a396637994d39 Mon Sep 17 00:00:00 2001 From: dumbmoron Date: Fri, 4 Oct 2024 17:00:58 +0000 Subject: [PATCH 088/101] api/core: rename tunnel limiter, move to endpoint --- api/src/core/api.js | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/api/src/core/api.js b/api/src/core/api.js index 050825e2..80da5bcc 100644 --- a/api/src/core/api.js +++ b/api/src/core/api.js @@ -81,7 +81,7 @@ export const runAPI = (express, app, __dirname) => { handler: handleRateExceeded }) - const apiLimiterStream = rateLimit({ + const apiTunnelLimiter = rateLimit({ windowMs: env.rateLimitWindow * 1000, max: env.rateLimitMax, standardHeaders: true, @@ -105,8 +105,6 @@ export const runAPI = (express, app, __dirname) => { ...corsConfig, })); - app.use('/tunnel', apiLimiterStream); - app.post('/', (req, res, next) => { if (!acceptRegex.test(req.header('Accept'))) { return fail(res, "error.api.header.accept"); @@ -231,7 +229,7 @@ export const runAPI = (express, app, __dirname) => { } }) - app.get('/tunnel', (req, res) => { + app.get('/tunnel', apiTunnelLimiter, (req, res) => { const id = String(req.query.id); const exp = String(req.query.exp); const sig = String(req.query.sig); From 418602ca87d9a9e42b63162a9a5b1d14fa41d8d0 Mon Sep 17 00:00:00 2001 From: dumbmoron Date: Fri, 4 Oct 2024 17:02:00 +0000 Subject: [PATCH 089/101] api/core: add rate limiter for session --- api/src/core/api.js | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/api/src/core/api.js b/api/src/core/api.js index 80da5bcc..72a9502f 100644 --- a/api/src/core/api.js +++ b/api/src/core/api.js @@ -67,6 +67,15 @@ export const runAPI = (express, app, __dirname) => { return res.status(status).json(body); }; + const sessionLimiter = rateLimit({ + windowMs: 60000, + max: 10, + standardHeaders: true, + legacyHeaders: false, + keyGenerator: req => generateHmac(getIP(req), ipSalt), + handler: handleRateExceeded + }); + const apiLimiter = rateLimit({ windowMs: env.rateLimitWindow * 1000, max: env.rateLimitMax, @@ -159,7 +168,7 @@ export const runAPI = (express, app, __dirname) => { next(); }); - app.post("/session", async (req, res) => { + app.post("/session", sessionLimiter, async (req, res) => { if (!env.sessionEnabled) { return fail(res, "error.api.auth.not_configured") } From dcd33803c185045b8a743a3b1125457e5cfe955c Mon Sep 17 00:00:00 2001 From: dumbmoron Date: Fri, 4 Oct 2024 17:03:57 +0000 Subject: [PATCH 090/101] api/core: generate JWT rate limiting key in auth handler --- api/src/core/api.js | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) diff --git a/api/src/core/api.js b/api/src/core/api.js index 72a9502f..71c182f0 100644 --- a/api/src/core/api.js +++ b/api/src/core/api.js @@ -81,12 +81,7 @@ export const runAPI = (express, app, __dirname) => { max: env.rateLimitMax, standardHeaders: true, legacyHeaders: false, - keyGenerator: req => { - if (req.authorized) { - return generateHmac(req.header("Authorization"), ipSalt); - } - return generateHmac(getIP(req), ipSalt); - }, + keyGenerator: req => req.rateLimitKey || generateHmac(getIP(req), ipSalt), handler: handleRateExceeded }) @@ -147,7 +142,7 @@ export const runAPI = (express, app, __dirname) => { return fail(res, "error.api.auth.jwt.invalid"); } - req.authorized = true; + req.rateLimitKey = generateHmac(req.header("Authorization"), ipSalt); } catch { return fail(res, "error.api.generic"); } From 81818f874148dc922dd583a1ba0ae295f4801201 Mon Sep 17 00:00:00 2001 From: dumbmoron Date: Fri, 4 Oct 2024 16:50:55 +0000 Subject: [PATCH 091/101] api/core: implement authentication with api keys --- api/src/core/api.js | 38 +++++++++++++++++++++++++++++++++++--- 1 file changed, 35 insertions(+), 3 deletions(-) diff --git a/api/src/core/api.js b/api/src/core/api.js index 71c182f0..4ee64508 100644 --- a/api/src/core/api.js +++ b/api/src/core/api.js @@ -17,6 +17,7 @@ import { verifyTurnstileToken } from "../security/turnstile.js"; import { friendlyServiceName } from "../processing/service-alias.js"; import { verifyStream, getInternalStream } from "../stream/manage.js"; import { createResponse, normalizeRequest, getIP } from "../processing/request.js"; +import * as APIKeys from "../security/api-keys.js"; const git = { branch: await getBranch(), @@ -78,7 +79,7 @@ export const runAPI = (express, app, __dirname) => { const apiLimiter = rateLimit({ windowMs: env.rateLimitWindow * 1000, - max: env.rateLimitMax, + max: (req) => req.rateLimitMax || env.rateLimitMax, standardHeaders: true, legacyHeaders: false, keyGenerator: req => req.rateLimitKey || generateHmac(getIP(req), ipSalt), @@ -87,10 +88,10 @@ export const runAPI = (express, app, __dirname) => { const apiTunnelLimiter = rateLimit({ windowMs: env.rateLimitWindow * 1000, - max: env.rateLimitMax, + max: (req) => req.rateLimitMax || env.rateLimitMax, standardHeaders: true, legacyHeaders: false, - keyGenerator: req => generateHmac(getIP(req), ipSalt), + keyGenerator: req => req.rateLimitKey || generateHmac(getIP(req), ipSalt), handler: (req, res) => { return res.sendStatus(429) } @@ -119,6 +120,33 @@ export const runAPI = (express, app, __dirname) => { next(); }); + app.post('/', (req, res, next) => { + if (!env.apiKeyURL) { + return next(); + } + + const { success, error } = APIKeys.validateAuthorization(req); + if (!success) { + // We call next() here if either if: + // a) we have user sessions enabled, meaning the request + // will still need a Bearer token to not be rejected, or + // b) we do not require the user to be authenticated, and + // so they can just make the request with the regular + // rate limit configuration; + // otherwise, we reject the request. + if ( + (env.sessionEnabled || !env.authRequired) + && ['missing', 'not_api_key'].includes(error) + ) { + return next(); + } + + return fail(res, `error.api.auth.key.${error}`); + } + + return next(); + }); + app.post('/', (req, res, next) => { if (!env.sessionEnabled) { return next(); @@ -315,6 +343,10 @@ export const runAPI = (express, app, __dirname) => { setGlobalDispatcher(new ProxyAgent(env.externalProxy)) } + if (env.apiKeyURL) { + APIKeys.setup(env.apiKeyURL); + } + app.listen(env.apiPort, env.listenAddress, () => { console.log(`\n` + Bright(Cyan("cobalt ")) + Bright("API ^ω⁠^") + "\n" + From 3d7713a9426140e9f0f0ab55d6247975d18ef7c4 Mon Sep 17 00:00:00 2001 From: dumbmoron Date: Fri, 4 Oct 2024 17:34:15 +0000 Subject: [PATCH 092/101] security/api-keys: clarify error when number is not positive --- api/src/security/api-keys.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/api/src/security/api-keys.js b/api/src/security/api-keys.js index 6ab11e78..754da2af 100644 --- a/api/src/security/api-keys.js +++ b/api/src/security/api-keys.js @@ -51,7 +51,7 @@ const validateKeys = (input) => { if (typeof details.limit !== 'number') throw "detail object contains invalid limit (not a number)"; else if (details.limit < 1) - throw "detail object contains invalid limit (not a number)"; + throw "detail object contains invalid limit (not a positive number)"; } if (details.ips) { From 9cc6fd13fa05eb9eacc0901087e3561100a87496 Mon Sep 17 00:00:00 2001 From: dumbmoron Date: Fri, 4 Oct 2024 17:37:57 +0000 Subject: [PATCH 093/101] api/core: skip turnstile verification if user authed with api key --- api/src/core/api.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/api/src/core/api.js b/api/src/core/api.js index 4ee64508..b11d689a 100644 --- a/api/src/core/api.js +++ b/api/src/core/api.js @@ -148,7 +148,7 @@ export const runAPI = (express, app, __dirname) => { }); app.post('/', (req, res, next) => { - if (!env.sessionEnabled) { + if (!env.sessionEnabled || req.rateLimitKey) { return next(); } From cfd54e91d54a3ab2903c05f06d5401b84ec045a7 Mon Sep 17 00:00:00 2001 From: dumbmoron Date: Fri, 4 Oct 2024 17:41:05 +0000 Subject: [PATCH 094/101] security/api-keys: add support for `unlimited` limit --- api/src/security/api-keys.js | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/api/src/security/api-keys.js b/api/src/security/api-keys.js index 754da2af..eee48da3 100644 --- a/api/src/security/api-keys.js +++ b/api/src/security/api-keys.js @@ -89,6 +89,10 @@ const formatKeys = (keyData) => { formatted[key] = {}; if (data.limit) { + if (data.limit === "unlimited") { + data.limit = Infinity; + } + formatted[key].limit = data.limit; } From 3691e2e4f199028e73c137c2151d503357250ee2 Mon Sep 17 00:00:00 2001 From: dumbmoron Date: Fri, 4 Oct 2024 17:43:35 +0000 Subject: [PATCH 095/101] docs/run-an-instance: mention unlimited api keys --- docs/run-an-instance.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/docs/run-an-instance.md b/docs/run-an-instance.md index 32a928a6..08654d9f 100644 --- a/docs/run-an-instance.md +++ b/docs/run-an-instance.md @@ -103,6 +103,7 @@ where *`UUIDv4String`* is a stringified version of a UUIDv4 identifier. - **`limit`** specifies how many requests the API key can make during the window specified in the `RATELIMIT_WINDOW` env. - when omitted, the limit specified in `RATELIMIT_MAX` will be used. + - it can be also set to `"unlimited"`, in which case the API key bypasses all rate limits. - **`ips`** contains an array of allowlisted IP ranges, which can be specified both as individual ips or CIDR ranges (e.g. *`["192.168.42.69", "2001:db8::48", "10.0.0.0/8", "fe80::/10"]`*). - when specified, only requests from these ip ranges can use the specified api key. @@ -122,6 +123,11 @@ an example key file could look like this: "limit": 10, "ips": ["10.0.0.0/8", "192.168.42.42"], "userAgents": ["*Chrome*"] + }, + "b00b1234-a3e5-99b1-c6d1-dba4512ae190": { + "limit": "unlimited", + "ips": ["192.168.1.2"], + "userAgents": ["cobaltbot/1.0"] } } ``` From 4156206f358ddf5ded2fecf7aba673a4c689cb96 Mon Sep 17 00:00:00 2001 From: lath <38570701+halozat@users.noreply.github.com> Date: Sat, 5 Oct 2024 17:40:56 +0200 Subject: [PATCH 096/101] web/settings/audio: disable bitrate section when not applicable (#802) --- web/i18n/en/settings.json | 2 +- web/src/routes/settings/audio/+page.svelte | 7 ++++++- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/web/i18n/en/settings.json b/web/i18n/en/settings.json index fba788e2..0537982f 100644 --- a/web/i18n/en/settings.json +++ b/web/i18n/en/settings.json @@ -50,7 +50,7 @@ "audio.bitrate": "audio bitrate", "audio.bitrate.kbps": "kb/s", - "audio.bitrate.description": "bitrate applies only to audio conversion. cobalt can't improve the source audio quality, so choosing a bitrate over 128kbps may inflate the file size with no audible difference. perceived quality may vary by format.", + "audio.bitrate.description": "bitrate is applied only when converting audio to a lossy format. cobalt can't improve the source audio quality, so choosing a bitrate over 128kbps may inflate the file size with no audible difference. perceived quality may vary by format.", "audio.youtube.dub": "youtube", "audio.youtube.dub.title": "use browser language for dubbed videos", diff --git a/web/src/routes/settings/audio/+page.svelte b/web/src/routes/settings/audio/+page.svelte index 8ea9f34a..eb0ac679 100644 --- a/web/src/routes/settings/audio/+page.svelte +++ b/web/src/routes/settings/audio/+page.svelte @@ -1,4 +1,5 @@