From 35e76e34efb64ec459bfde6c770c82ef5001829b Mon Sep 17 00:00:00 2001 From: Neshura <neshura@neshweb.net> Date: Fri, 4 Apr 2025 22:08:59 +0200 Subject: [PATCH] Remove Uptime Kuma WS Functionality, Update Site List --- src/lib/components/ServerCard.svelte | 52 +-------- src/lib/components/ServiceCard.svelte | 45 +------- src/routes/servers/+page.server.ts | 62 ----------- src/routes/servers/+page.svelte | 48 +------- src/routes/services/+page.server.ts | 62 ----------- src/routes/services/+page.svelte | 48 +------- static/assets/icons/calibre-logo-36.avif | Bin 1973 -> 0 bytes static/assets/icons/calibre-logo.avif | Bin 3303 -> 0 bytes static/assets/icons/calibre-logo.ico | Bin 61662 -> 0 bytes static/assets/icons/chevereto-logo.png | Bin 0 -> 6812 bytes static/assets/icons/element-logo.svg | 7 -- static/assets/icons/forgejo-logo.svg | 40 +++++++ static/assets/icons/gitlab-logo.svg | 58 ---------- static/assets/icons/grafana-logo.svg | 57 ---------- static/assets/icons/kavita-logo.svg | 124 +++++++++++++++++++++ static/assets/icons/npm-logo-36.avif | Bin 2275 -> 0 bytes static/assets/icons/npm-logo.avif | Bin 9516 -> 0 bytes static/assets/icons/npm-logo.png | Bin 31064 -> 0 bytes static/assets/icons/portainer-logo-36.avif | Bin 1583 -> 0 bytes static/assets/icons/portainer-logo.avif | Bin 5622 -> 0 bytes static/assets/icons/portainer-logo.png | Bin 4253 -> 0 bytes static/assets/icons/roundcube-logo.svg | 15 +++ static/assets/icons/vaultwarden-logo.svg | 74 ++++++++++++ static/data/services.json | 64 +++-------- 24 files changed, 271 insertions(+), 485 deletions(-) delete mode 100644 src/routes/servers/+page.server.ts delete mode 100644 src/routes/services/+page.server.ts delete mode 100644 static/assets/icons/calibre-logo-36.avif delete mode 100644 static/assets/icons/calibre-logo.avif delete mode 100644 static/assets/icons/calibre-logo.ico create mode 100644 static/assets/icons/chevereto-logo.png delete mode 100644 static/assets/icons/element-logo.svg create mode 100644 static/assets/icons/forgejo-logo.svg delete mode 100644 static/assets/icons/gitlab-logo.svg delete mode 100644 static/assets/icons/grafana-logo.svg create mode 100644 static/assets/icons/kavita-logo.svg delete mode 100644 static/assets/icons/npm-logo-36.avif delete mode 100644 static/assets/icons/npm-logo.avif delete mode 100644 static/assets/icons/npm-logo.png delete mode 100644 static/assets/icons/portainer-logo-36.avif delete mode 100644 static/assets/icons/portainer-logo.avif delete mode 100644 static/assets/icons/portainer-logo.png create mode 100644 static/assets/icons/roundcube-logo.svg create mode 100644 static/assets/icons/vaultwarden-logo.svg diff --git a/src/lib/components/ServerCard.svelte b/src/lib/components/ServerCard.svelte index 76cb242..f8b34e1 100644 --- a/src/lib/components/ServerCard.svelte +++ b/src/lib/components/ServerCard.svelte @@ -12,11 +12,8 @@ let { server, icons, monitor } = $props<{ server: Server; icons: Array<string>; - monitor?: Heartbeat; }>(); - let status = $state(4); - let hover = $state({ title: false, link: false, @@ -65,19 +62,7 @@ </script> <div - class="flex h-48 w-[28rem] flex-col gap-y-3 rounded-xl border-t-4 - {status == 99 - ? 'border-primary' - : status == 0 - ? 'border-offline' - : status == 1 - ? 'border-online' - : status == 2 - ? 'border-pending' - : status == 3 - ? 'border-maintenance' - : 'border-maintenance'} - z-0 bg-black/55 p-4 backdrop-blur-sm" + class="flex h-48 w-[28rem] flex-col gap-y-3 rounded-xl border-t-4 border-secondary z-0 bg-black/55 p-4 backdrop-blur-sm" > <div class="flex flex-row justify-between"> <div @@ -114,41 +99,6 @@ <h2 class="font-bold">{server.name}</h2> {/if} </div> - - {#if typeof server.id !== 'undefined'} - <h1 - class="w-16 rounded-md border-b-2 - {status == 0 - ? 'border-offline' - : status == 1 - ? 'border-online' - : status == 2 - ? 'border-pending' - : status == 3 - ? 'border-maintenance' - : 'border-maintenance'} - text-center text-sm - {status == 0 - ? 'text-offline' - : status == 1 - ? 'text-online' - : status == 2 - ? 'text-pending' - : status == 3 - ? 'text-maintenance' - : 'text-maintenance'}" - > - {status == 0 - ? 'Offline' - : status == 1 - ? 'Online' - : status == 2 - ? 'Pending' - : status == 3 - ? 'Maint.' - : 'Loading'} - </h1> - {/if} </div> <p class="text-wrap text-center text-sm">{server.desc}</p> {#if typeof server.connection !== 'undefined'} diff --git a/src/lib/components/ServiceCard.svelte b/src/lib/components/ServiceCard.svelte index 86bceb8..8edb54c 100644 --- a/src/lib/components/ServiceCard.svelte +++ b/src/lib/components/ServiceCard.svelte @@ -57,17 +57,7 @@ </script> <div - class="flex h-48 w-[28rem] flex-col gap-y-3 rounded-xl border-t-4 - {status == 0 - ? 'border-offline' - : status == 1 - ? 'border-online' - : status == 2 - ? 'border-pending' - : status == 3 - ? 'border-maintenance' - : 'border-maintenance'} - z-0 bg-black/55 p-4 backdrop-blur-sm" + class="flex h-48 w-[28rem] flex-col gap-y-3 rounded-xl border-t-4 border-secondary z-0 bg-black/55 p-4 backdrop-blur-sm" > <div class="flex flex-row justify-between"> <div @@ -100,39 +90,6 @@ </div> {/if} </div> - - <h1 - class="w-16 rounded-md border-b-2 - {status == 0 - ? 'border-offline' - : status == 1 - ? 'border-online' - : status == 2 - ? 'border-pending' - : status == 3 - ? 'border-maintenance' - : 'border-maintenance'} - text-center text-sm - {status == 0 - ? 'text-offline' - : status == 1 - ? 'text-online' - : status == 2 - ? 'text-pending' - : status == 3 - ? 'text-maintenance' - : 'text-maintenance'}" - > - {status == 0 - ? 'Offline' - : status == 1 - ? 'Online' - : status == 2 - ? 'Pending' - : status == 3 - ? 'Maint.' - : 'Loading'} - </h1> </div> <p class="text-wrap text-center text-sm">{service.desc}</p> <p class="text-center text-sm font-bold text-destructive">{service.warn}</p> diff --git a/src/routes/servers/+page.server.ts b/src/routes/servers/+page.server.ts deleted file mode 100644 index f9ba6b5..0000000 --- a/src/routes/servers/+page.server.ts +++ /dev/null @@ -1,62 +0,0 @@ -import { io, Socket } from 'socket.io-client'; -import * as fs from 'fs'; - -export async function load() { - const promise = getJwt(); - - return { - promise - }; -} - -async function getJwt(): Promise<string> { - const socket = io('https://status.neshweb.net/'); - const credFile = './credentials.json'; - let token = ''; - let valid = false; - - if (fs.existsSync(credFile)) { - const content = fs.readFileSync(credFile); - token = content.toString(); - } - - socket.on('connect', async () => { - if (token == '') { - token = await login(socket); - valid = true; - } else { - socket.emit('loginByToken', token, async (res) => { - if (!res.ok) { - token = await login(socket); - } - valid = true; - }); - } - }); - - while (!valid) { - await new Promise((resolve) => setTimeout(resolve, 10)); - } - - fs.writeFileSync(credFile, token); - - return token; -} - -async function login(socket: Socket): Promise<string> { - let token = ''; - socket.emit( - 'login', - { username: process.env.KUMA_USERNAME, password: process.env.KUMA_PASSWORD, token: '' }, - (res: { token: string }) => { - token = res.token; - socket.close(); - } - ); - - while (token == '') { - await new Promise((resolve) => setTimeout(resolve, 10)); - } - - return token; -} diff --git a/src/routes/servers/+page.svelte b/src/routes/servers/+page.svelte index b1a6ab6..5479ef8 100644 --- a/src/routes/servers/+page.svelte +++ b/src/routes/servers/+page.svelte @@ -8,56 +8,10 @@ import { socketStore } from '$lib/stores/socketStore'; import { uptimeStore } from '$lib/stores/uptimeStore'; - let { data }: { data: { promise: Promise<string> } } = $props(); - - let token = $state(); - - data.promise.then((jwt) => { - token = jwt; - }); - let servers: readonly Server[] = $state.frozen([]); let icons: readonly string[] = $state.frozen([]); - let monitorList = $state($uptimeStore); - - let socket = $socketStore; - - $effect(() => { - if (token) { - if (!socket.connected) { - socket.connect(); - } - - socket.on('connect', () => { - socket.emit('loginByToken', token, () => {}); - }); - - socket.on('heartbeatList', (_, data) => { - let recent = data[data.length - 1]; - let monitor: Heartbeat = { - monitorID: recent.monitor_id, - status: recent.status, - time: recent.time, - msg: recent.msg, - ping: recent.ping, - important: recent.important, - duration: recent.duration - }; - monitorList.set(monitor.monitorID, monitor); - monitorList = new Map(monitorList.entries()); - $uptimeStore = monitorList; - }); - - socket.on('heartbeat', (data) => { - monitorList.set(data.monitorID, data); - monitorList = new Map(monitorList.entries()); - $uptimeStore = monitorList; - }); - } - }); - async function get(url: string): Promise<any> { let res = await fetch(url); if (res.ok) { @@ -91,7 +45,7 @@ {#if typeof server.id === 'undefined'} <ServerCard {server} {icons} /> {:else} - <ServerCard {server} {icons} monitor={monitorList.get(server.id)} /> + <ServerCard {server} {icons} /> {/if} {/each} </div> diff --git a/src/routes/services/+page.server.ts b/src/routes/services/+page.server.ts deleted file mode 100644 index f9ba6b5..0000000 --- a/src/routes/services/+page.server.ts +++ /dev/null @@ -1,62 +0,0 @@ -import { io, Socket } from 'socket.io-client'; -import * as fs from 'fs'; - -export async function load() { - const promise = getJwt(); - - return { - promise - }; -} - -async function getJwt(): Promise<string> { - const socket = io('https://status.neshweb.net/'); - const credFile = './credentials.json'; - let token = ''; - let valid = false; - - if (fs.existsSync(credFile)) { - const content = fs.readFileSync(credFile); - token = content.toString(); - } - - socket.on('connect', async () => { - if (token == '') { - token = await login(socket); - valid = true; - } else { - socket.emit('loginByToken', token, async (res) => { - if (!res.ok) { - token = await login(socket); - } - valid = true; - }); - } - }); - - while (!valid) { - await new Promise((resolve) => setTimeout(resolve, 10)); - } - - fs.writeFileSync(credFile, token); - - return token; -} - -async function login(socket: Socket): Promise<string> { - let token = ''; - socket.emit( - 'login', - { username: process.env.KUMA_USERNAME, password: process.env.KUMA_PASSWORD, token: '' }, - (res: { token: string }) => { - token = res.token; - socket.close(); - } - ); - - while (token == '') { - await new Promise((resolve) => setTimeout(resolve, 10)); - } - - return token; -} diff --git a/src/routes/services/+page.svelte b/src/routes/services/+page.svelte index 36afcdf..2f36d21 100644 --- a/src/routes/services/+page.svelte +++ b/src/routes/services/+page.svelte @@ -9,56 +9,10 @@ import { onDestroy } from 'svelte'; import { uptimeStore } from '$lib/stores/uptimeStore'; - let { data }: { data: { promise: Promise<string> } } = $props(); - - let token = $state(); - - data.promise.then((jwt) => { - token = jwt; - }); - let services: readonly Service[] = $state.frozen([]); let icons: readonly string[] = $state.frozen([]); - let monitorList = $state($uptimeStore); - - let socket = $socketStore; - - $effect(() => { - if (token) { - if (!socket.connected) { - socket.connect(); - } - - socket.on('connect', () => { - socket.emit('loginByToken', token, () => {}); - }); - - socket.on('heartbeatList', (_, data) => { - let recent = data[data.length - 1]; - let monitor: Heartbeat = { - monitorID: recent.monitor_id, - status: recent.status, - time: recent.time, - msg: recent.msg, - ping: recent.ping, - important: recent.important, - duration: recent.duration - }; - monitorList.set(monitor.monitorID, monitor); - monitorList = new Map(monitorList.entries()); - $uptimeStore = monitorList; - }); - - socket.on('heartbeat', (data) => { - monitorList.set(data.monitorID, data); - monitorList = new Map(monitorList.entries()); - $uptimeStore = monitorList; - }); - } - }); - async function get(url: string): Promise<any> { let res = await fetch(url); if (res.ok) { @@ -89,6 +43,6 @@ <div class="flex max-h-full flex-row flex-wrap justify-center gap-10 overflow-auto p-8"> {#each services as service} - <ServiceCard {service} {icons} monitor={monitorList.get(service.id)} /> + <ServiceCard {service} {icons} /> {/each} </div> diff --git a/static/assets/icons/calibre-logo-36.avif b/static/assets/icons/calibre-logo-36.avif deleted file mode 100644 index 701b81a3f6824295e5c27ea5a8c5a2ff00744f11..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1973 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 diff --git a/static/assets/icons/calibre-logo.avif b/static/assets/icons/calibre-logo.avif deleted file mode 100644 index 060df19973e793a2b425b07d5f2052797dbe33be..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3303 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 I*wEeo0_QFHGXMYp diff --git a/static/assets/icons/calibre-logo.ico b/static/assets/icons/calibre-logo.ico deleted file mode 100644 index 0774d0f94d01704f2df3ad0218ff178601d7c9d9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 61662 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 M$76zV&X{4`|4w_(IsgCw diff --git a/static/assets/icons/chevereto-logo.png b/static/assets/icons/chevereto-logo.png new file mode 100644 index 0000000000000000000000000000000000000000..92dc1e04bbd81297bb0293c628686168d70e616d GIT binary patch literal 6812 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 literal 0 HcmV?d00001 diff --git a/static/assets/icons/element-logo.svg b/static/assets/icons/element-logo.svg deleted file mode 100644 index 54a91b7..0000000 --- a/static/assets/icons/element-logo.svg +++ /dev/null @@ -1,7 +0,0 @@ -<svg width="200" height="200" viewBox="0 0 200 200" fill="none" xmlns="http://www.w3.org/2000/svg"> -<path fill-rule="evenodd" clip-rule="evenodd" d="M100 200C155.228 200 200 155.228 200 100C200 44.7715 155.228 0 100 0C44.7715 0 0 44.7715 0 100C0 155.228 44.7715 200 100 200Z" fill="#0DBD8B"/> -<path fill-rule="evenodd" clip-rule="evenodd" d="M81.7169 46.5946C81.7169 42.5581 84.9959 39.2859 89.0408 39.2859C116.456 39.2859 138.681 61.4642 138.681 88.8225C138.681 92.859 135.401 96.1312 131.357 96.1312C127.312 96.1312 124.033 92.859 124.033 88.8225C124.033 69.5372 108.366 53.9033 89.0408 53.9033C84.9959 53.9033 81.7169 50.6311 81.7169 46.5946Z" fill="white"/> -<path fill-rule="evenodd" clip-rule="evenodd" d="M153.39 81.5137C157.435 81.5137 160.714 84.7859 160.714 88.8224C160.714 116.181 138.49 138.359 111.075 138.359C107.03 138.359 103.751 135.087 103.751 131.05C103.751 127.014 107.03 123.742 111.075 123.742C130.4 123.742 146.066 108.108 146.066 88.8224C146.066 84.7859 149.345 81.5137 153.39 81.5137Z" fill="white"/> -<path fill-rule="evenodd" clip-rule="evenodd" d="M118.398 153.405C118.398 157.442 115.119 160.714 111.074 160.714C83.6592 160.714 61.4347 138.536 61.4347 111.177C61.4347 107.141 64.7138 103.869 68.7587 103.869C72.8035 103.869 76.0826 107.141 76.0826 111.177C76.0826 130.463 91.7489 146.097 111.074 146.097C115.119 146.097 118.398 149.369 118.398 153.405Z" fill="white"/> -<path fill-rule="evenodd" clip-rule="evenodd" d="M46.6097 118.486C42.5648 118.486 39.2858 115.214 39.2858 111.178C39.2858 83.8193 61.5102 61.6409 88.9255 61.6409C92.9704 61.6409 96.2494 64.9132 96.2494 68.9497C96.2494 72.9862 92.9704 76.2584 88.9255 76.2584C69.6 76.2584 53.9337 91.8922 53.9337 111.178C53.9337 115.214 50.6546 118.486 46.6097 118.486Z" fill="white"/> -</svg> diff --git a/static/assets/icons/forgejo-logo.svg b/static/assets/icons/forgejo-logo.svg new file mode 100644 index 0000000..9c390e9 --- /dev/null +++ b/static/assets/icons/forgejo-logo.svg @@ -0,0 +1,40 @@ +<svg viewBox="0 0 256 256" xmlns="http://www.w3.org/2000/svg"> + <metadata + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/" + > + <rdf:RDF> + <cc:Work rdf:about="https://codeberg.org/forgejo/governance/src/branch/main/branding#logo"> + <dc:title>Forgejo logo</dc:title> + <cc:creator rdf:resource="https://caesarschinas.com/"><cc:attributionName>Caesar Schinas</cc:attributionName></cc:creator> + <cc:license rdf:resource="http://creativecommons.org/licenses/by-sa/4.0/" /> + </cc:Work> + </rdf:RDF> + </metadata> + <style type="text/css"> + circle { + fill: none; + stroke: #000; + stroke-width: 15; + } + path { + fill: none; + stroke: #000; + stroke-width: 25; + } + .orange { + stroke:#ff6600; + } + .red { + stroke:#d40000; + } + </style> + <g transform="translate(28,28)"> + <path d="M58 168 v-98 a50 50 0 0 1 50-50 h20" class="orange" /> + <path d="M58 168 v-30 a50 50 0 0 1 50-50 h20" class="red" /> + <circle cx="142" cy="20" r="18" class="orange" /> + <circle cx="142" cy="88" r="18" class="red" /> + <circle cx="58" cy="180" r="18" class="red" /> + </g> +</svg> diff --git a/static/assets/icons/gitlab-logo.svg b/static/assets/icons/gitlab-logo.svg deleted file mode 100644 index 5fabd74..0000000 --- a/static/assets/icons/gitlab-logo.svg +++ /dev/null @@ -1,58 +0,0 @@ -<?xml version="1.0" encoding="UTF-8" standalone="no"?> -<svg - viewBox="-4 -8 200 200.00003" - version="1.1" - id="svg15" - sodipodi:docname="gitlab-logo.svg" - width="200" - height="200" - inkscape:version="1.2.1 (9c6d41e410, 2022-07-14, custom)" - xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" - xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" - xmlns="http://www.w3.org/2000/svg" - xmlns:svg="http://www.w3.org/2000/svg"> - <sodipodi:namedview - id="namedview17" - pagecolor="#505050" - bordercolor="#eeeeee" - borderopacity="1" - inkscape:showpageshadow="0" - inkscape:pageopacity="0" - inkscape:pagecheckerboard="0" - inkscape:deskcolor="#505050" - showgrid="false" - inkscape:zoom="2.7026316" - inkscape:cx="95.832522" - inkscape:cy="92.132425" - inkscape:window-width="2560" - inkscape:window-height="1391" - inkscape:window-x="0" - inkscape:window-y="0" - inkscape:window-maximized="1" - inkscape:current-layer="svg15" /> - <defs - id="defs4"> - <style - id="style2">.cls-1{fill:#e24329;}.cls-2{fill:#fc6d26;}.cls-3{fill:#fca326;}</style> - </defs> - <g - id="LOGO" - transform="translate(-93.973245,-97.517263)"> - <path - class="cls-1" - d="m 282.83,170.73 -0.27,-0.69 -26.14,-68.22 a 6.81,6.81 0 0 0 -2.69,-3.24 7,7 0 0 0 -8,0.43 7,7 0 0 0 -2.32,3.52 l -17.65,54 h -71.47 l -17.65,-54 a 6.86,6.86 0 0 0 -2.32,-3.53 7,7 0 0 0 -8,-0.43 6.87,6.87 0 0 0 -2.69,3.24 L 97.44,170 l -0.26,0.69 a 48.54,48.54 0 0 0 16.1,56.1 l 0.09,0.07 0.24,0.17 39.82,29.82 19.7,14.91 12,9.06 a 8.07,8.07 0 0 0 9.76,0 l 12,-9.06 19.7,-14.91 40.06,-30 0.1,-0.08 a 48.56,48.56 0 0 0 16.08,-56.04 z" - id="path6" /> - <path - class="cls-2" - d="m 282.83,170.73 -0.27,-0.69 a 88.3,88.3 0 0 0 -35.15,15.8 L 190,229.25 c 19.55,14.79 36.57,27.64 36.57,27.64 l 40.06,-30 0.1,-0.08 a 48.56,48.56 0 0 0 16.1,-56.08 z" - id="path8" /> - <path - class="cls-3" - d="m 153.43,256.89 19.7,14.91 12,9.06 a 8.07,8.07 0 0 0 9.76,0 l 12,-9.06 19.7,-14.91 c 0,0 -17.04,-12.89 -36.59,-27.64 -19.55,14.75 -36.57,27.64 -36.57,27.64 z" - id="path10" /> - <path - class="cls-2" - d="M 132.58,185.84 A 88.19,88.19 0 0 0 97.44,170 l -0.26,0.69 a 48.54,48.54 0 0 0 16.1,56.1 l 0.09,0.07 0.24,0.17 39.82,29.82 c 0,0 17,-12.85 36.57,-27.64 z" - id="path12" /> - </g> -</svg> diff --git a/static/assets/icons/grafana-logo.svg b/static/assets/icons/grafana-logo.svg deleted file mode 100644 index e91f3ab..0000000 --- a/static/assets/icons/grafana-logo.svg +++ /dev/null @@ -1,57 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 20.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="351px" height="365px" viewBox="0 0 351 365" style="enable-background:new 0 0 351 365;" xml:space="preserve"> -<style type="text/css"> - .st0{fill:url(#SVGID_1_);} -</style> -<g id="Layer_1_1_"> -</g> -<linearGradient id="SVGID_1_" gradientUnits="userSpaceOnUse" x1="175.5" y1="30%" x2="175.5" y2="99%"> - <stop offset="0" style="stop-color:#F05A28"/> - <stop offset="1" style="stop-color:#FBCA0A"/> -</linearGradient> -<path class="st0" d="M342,161.2c-0.6-6.1-1.6-13.1-3.6-20.9c-2-7.7-5-16.2-9.4-25c-4.4-8.8-10.1-17.9-17.5-26.8 - c-2.9-3.5-6.1-6.9-9.5-10.2c5.1-20.3-6.2-37.9-6.2-37.9c-19.5-1.2-31.9,6.1-36.5,9.4c-0.8-0.3-1.5-0.7-2.3-1 - c-3.3-1.3-6.7-2.6-10.3-3.7c-3.5-1.1-7.1-2.1-10.8-3c-3.7-0.9-7.4-1.6-11.2-2.2c-0.7-0.1-1.3-0.2-2-0.3 - c-8.5-27.2-32.9-38.6-32.9-38.6c-27.3,17.3-32.4,41.5-32.4,41.5s-0.1,0.5-0.3,1.4c-1.5,0.4-3,0.9-4.5,1.3c-2.1,0.6-4.2,1.4-6.2,2.2 - c-2.1,0.8-4.1,1.6-6.2,2.5c-4.1,1.8-8.2,3.8-12.2,6c-3.9,2.2-7.7,4.6-11.4,7.1c-0.5-0.2-1-0.4-1-0.4c-37.8-14.4-71.3,2.9-71.3,2.9 - c-3.1,40.2,15.1,65.5,18.7,70.1c-0.9,2.5-1.7,5-2.5,7.5c-2.8,9.1-4.9,18.4-6.2,28.1c-0.2,1.4-0.4,2.8-0.5,4.2 - C18.8,192.7,8.5,228,8.5,228c29.1,33.5,63.1,35.6,63.1,35.6c0,0,0.1-0.1,0.1-0.1c4.3,7.7,9.3,15,14.9,21.9c2.4,2.9,4.8,5.6,7.4,8.3 - c-10.6,30.4,1.5,55.6,1.5,55.6c32.4,1.2,53.7-14.2,58.2-17.7c3.2,1.1,6.5,2.1,9.8,2.9c10,2.6,20.2,4.1,30.4,4.5 - c2.5,0.1,5.1,0.2,7.6,0.1l1.2,0l0.8,0l1.6,0l1.6-0.1l0,0.1c15.3,21.8,42.1,24.9,42.1,24.9c19.1-20.1,20.2-40.1,20.2-44.4l0,0 - c0,0,0-0.1,0-0.3c0-0.4,0-0.6,0-0.6l0,0c0-0.3,0-0.6,0-0.9c4-2.8,7.8-5.8,11.4-9.1c7.6-6.9,14.3-14.8,19.9-23.3 - c0.5-0.8,1-1.6,1.5-2.4c21.6,1.2,36.9-13.4,36.9-13.4c-3.6-22.5-16.4-33.5-19.1-35.6l0,0c0,0-0.1-0.1-0.3-0.2 - c-0.2-0.1-0.2-0.2-0.2-0.2c0,0,0,0,0,0c-0.1-0.1-0.3-0.2-0.5-0.3c0.1-1.4,0.2-2.7,0.3-4.1c0.2-2.4,0.2-4.9,0.2-7.3l0-1.8l0-0.9 - l0-0.5c0-0.6,0-0.4,0-0.6l-0.1-1.5l-0.1-2c0-0.7-0.1-1.3-0.2-1.9c-0.1-0.6-0.1-1.3-0.2-1.9l-0.2-1.9l-0.3-1.9 - c-0.4-2.5-0.8-4.9-1.4-7.4c-2.3-9.7-6.1-18.9-11-27.2c-5-8.3-11.2-15.6-18.3-21.8c-7-6.2-14.9-11.2-23.1-14.9 - c-8.3-3.7-16.9-6.1-25.5-7.2c-4.3-0.6-8.6-0.8-12.9-0.7l-1.6,0l-0.4,0c-0.1,0-0.6,0-0.5,0l-0.7,0l-1.6,0.1c-0.6,0-1.2,0.1-1.7,0.1 - c-2.2,0.2-4.4,0.5-6.5,0.9c-8.6,1.6-16.7,4.7-23.8,9c-7.1,4.3-13.3,9.6-18.3,15.6c-5,6-8.9,12.7-11.6,19.6c-2.7,6.9-4.2,14.1-4.6,21 - c-0.1,1.7-0.1,3.5-0.1,5.2c0,0.4,0,0.9,0,1.3l0.1,1.4c0.1,0.8,0.1,1.7,0.2,2.5c0.3,3.5,1,6.9,1.9,10.1c1.9,6.5,4.9,12.4,8.6,17.4 - c3.7,5,8.2,9.1,12.9,12.4c4.7,3.2,9.8,5.5,14.8,7c5,1.5,10,2.1,14.7,2.1c0.6,0,1.2,0,1.7,0c0.3,0,0.6,0,0.9,0c0.3,0,0.6,0,0.9-0.1 - c0.5,0,1-0.1,1.5-0.1c0.1,0,0.3,0,0.4-0.1l0.5-0.1c0.3,0,0.6-0.1,0.9-0.1c0.6-0.1,1.1-0.2,1.7-0.3c0.6-0.1,1.1-0.2,1.6-0.4 - c1.1-0.2,2.1-0.6,3.1-0.9c2-0.7,4-1.5,5.7-2.4c1.8-0.9,3.4-2,5-3c0.4-0.3,0.9-0.6,1.3-1c1.6-1.3,1.9-3.7,0.6-5.3 - c-1.1-1.4-3.1-1.8-4.7-0.9c-0.4,0.2-0.8,0.4-1.2,0.6c-1.4,0.7-2.8,1.3-4.3,1.8c-1.5,0.5-3.1,0.9-4.7,1.2c-0.8,0.1-1.6,0.2-2.5,0.3 - c-0.4,0-0.8,0.1-1.3,0.1c-0.4,0-0.9,0-1.2,0c-0.4,0-0.8,0-1.2,0c-0.5,0-1,0-1.5-0.1c0,0-0.3,0-0.1,0l-0.2,0l-0.3,0 - c-0.2,0-0.5,0-0.7-0.1c-0.5-0.1-0.9-0.1-1.4-0.2c-3.7-0.5-7.4-1.6-10.9-3.2c-3.6-1.6-7-3.8-10.1-6.6c-3.1-2.8-5.8-6.1-7.9-9.9 - c-2.1-3.8-3.6-8-4.3-12.4c-0.3-2.2-0.5-4.5-0.4-6.7c0-0.6,0.1-1.2,0.1-1.8c0,0.2,0-0.1,0-0.1l0-0.2l0-0.5c0-0.3,0.1-0.6,0.1-0.9 - c0.1-1.2,0.3-2.4,0.5-3.6c1.7-9.6,6.5-19,13.9-26.1c1.9-1.8,3.9-3.4,6-4.9c2.1-1.5,4.4-2.8,6.8-3.9c2.4-1.1,4.8-2,7.4-2.7 - c2.5-0.7,5.1-1.1,7.8-1.4c1.3-0.1,2.6-0.2,4-0.2c0.4,0,0.6,0,0.9,0l1.1,0l0.7,0c0.3,0,0,0,0.1,0l0.3,0l1.1,0.1 - c2.9,0.2,5.7,0.6,8.5,1.3c5.6,1.2,11.1,3.3,16.2,6.1c10.2,5.7,18.9,14.5,24.2,25.1c2.7,5.3,4.6,11,5.5,16.9c0.2,1.5,0.4,3,0.5,4.5 - l0.1,1.1l0.1,1.1c0,0.4,0,0.8,0,1.1c0,0.4,0,0.8,0,1.1l0,1l0,1.1c0,0.7-0.1,1.9-0.1,2.6c-0.1,1.6-0.3,3.3-0.5,4.9 - c-0.2,1.6-0.5,3.2-0.8,4.8c-0.3,1.6-0.7,3.2-1.1,4.7c-0.8,3.1-1.8,6.2-3,9.3c-2.4,6-5.6,11.8-9.4,17.1 - c-7.7,10.6-18.2,19.2-30.2,24.7c-6,2.7-12.3,4.7-18.8,5.7c-3.2,0.6-6.5,0.9-9.8,1l-0.6,0l-0.5,0l-1.1,0l-1.6,0l-0.8,0 - c0.4,0-0.1,0-0.1,0l-0.3,0c-1.8,0-3.5-0.1-5.3-0.3c-7-0.5-13.9-1.8-20.7-3.7c-6.7-1.9-13.2-4.6-19.4-7.8 - c-12.3-6.6-23.4-15.6-32-26.5c-4.3-5.4-8.1-11.3-11.2-17.4c-3.1-6.1-5.6-12.6-7.4-19.1c-1.8-6.6-2.9-13.3-3.4-20.1l-0.1-1.3l0-0.3 - l0-0.3l0-0.6l0-1.1l0-0.3l0-0.4l0-0.8l0-1.6l0-0.3c0,0,0,0.1,0-0.1l0-0.6c0-0.8,0-1.7,0-2.5c0.1-3.3,0.4-6.8,0.8-10.2 - c0.4-3.4,1-6.9,1.7-10.3c0.7-3.4,1.5-6.8,2.5-10.2c1.9-6.7,4.3-13.2,7.1-19.3c5.7-12.2,13.1-23.1,22-31.8c2.2-2.2,4.5-4.2,6.9-6.2 - c2.4-1.9,4.9-3.7,7.5-5.4c2.5-1.7,5.2-3.2,7.9-4.6c1.3-0.7,2.7-1.4,4.1-2c0.7-0.3,1.4-0.6,2.1-0.9c0.7-0.3,1.4-0.6,2.1-0.9 - c2.8-1.2,5.7-2.2,8.7-3.1c0.7-0.2,1.5-0.4,2.2-0.7c0.7-0.2,1.5-0.4,2.2-0.6c1.5-0.4,3-0.8,4.5-1.1c0.7-0.2,1.5-0.3,2.3-0.5 - c0.8-0.2,1.5-0.3,2.3-0.5c0.8-0.1,1.5-0.3,2.3-0.4l1.1-0.2l1.2-0.2c0.8-0.1,1.5-0.2,2.3-0.3c0.9-0.1,1.7-0.2,2.6-0.3 - c0.7-0.1,1.9-0.2,2.6-0.3c0.5-0.1,1.1-0.1,1.6-0.2l1.1-0.1l0.5-0.1l0.6,0c0.9-0.1,1.7-0.1,2.6-0.2l1.3-0.1c0,0,0.5,0,0.1,0l0.3,0 - l0.6,0c0.7,0,1.5-0.1,2.2-0.1c2.9-0.1,5.9-0.1,8.8,0c5.8,0.2,11.5,0.9,17,1.9c11.1,2.1,21.5,5.6,31,10.3 - c9.5,4.6,17.9,10.3,25.3,16.5c0.5,0.4,0.9,0.8,1.4,1.2c0.4,0.4,0.9,0.8,1.3,1.2c0.9,0.8,1.7,1.6,2.6,2.4c0.9,0.8,1.7,1.6,2.5,2.4 - c0.8,0.8,1.6,1.6,2.4,2.5c3.1,3.3,6,6.6,8.6,10c5.2,6.7,9.4,13.5,12.7,19.9c0.2,0.4,0.4,0.8,0.6,1.2c0.2,0.4,0.4,0.8,0.6,1.2 - c0.4,0.8,0.8,1.6,1.1,2.4c0.4,0.8,0.7,1.5,1.1,2.3c0.3,0.8,0.7,1.5,1,2.3c1.2,3,2.4,5.9,3.3,8.6c1.5,4.4,2.6,8.3,3.5,11.7 - c0.3,1.4,1.6,2.3,3,2.1c1.5-0.1,2.6-1.3,2.6-2.8C342.6,170.4,342.5,166.1,342,161.2z"/> -</svg> diff --git a/static/assets/icons/kavita-logo.svg b/static/assets/icons/kavita-logo.svg new file mode 100644 index 0000000..f56f8a7 --- /dev/null +++ b/static/assets/icons/kavita-logo.svg @@ -0,0 +1,124 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- Generator: Adobe Illustrator 18.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> +<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" + viewBox="0 0 64 64" enable-background="new 0 0 64 64" xml:space="preserve"> +<g> + <g> + <g> + <path fill="#4AC694" d="M32,0c17.7,0,32,14.3,32,32S49.7,64,32,64S0,49.7,0,32S14.3,0,32,0z"/> + </g> + </g> + <g> + <g> + <path fill="#424C72" d="M52,17H12c-0.6,0-1,0.4-1,1v30c0,0.6,0.4,1,1,1h14.3c1,0,1.9,0.4,2.4,1.2c0.7,1.1,1.9,1.8,3.3,1.8 + s2.6-0.7,3.3-1.8c0.5-0.8,1.5-1.2,2.4-1.2H52c0.6,0,1-0.4,1-1V18C53,17.4,52.6,17,52,17z"/> + </g> + </g> + <g> + <g> + <path fill="#E4E7EF" d="M14,28v18h16c1.1,0,2,0.9,2,2c0-1.1,0.9-2,2-2h16V28H14z"/> + </g> + </g> + <g> + <g> + <path fill="#FFFFFF" d="M35,13c-1.7,0-3,1.3-3,3c0-1.7-1.3-3-3-3H14v31h16c1.1,0,2,0.9,2,2c0-1.1,0.9-2,2-2h16V13H35z"/> + </g> + </g> + <g> + <g> + <rect x="18" y="16" fill="#57D1F7" width="4" height="7"/> + </g> + </g> + <g> + <g> + <path fill="#E4E7EF" d="M29,26.5H18c-0.3,0-0.5-0.2-0.5-0.5s0.2-0.5,0.5-0.5h11c0.3,0,0.5,0.2,0.5,0.5S29.3,26.5,29,26.5z"/> + </g> + </g> + <g> + <g> + <path fill="#E4E7EF" d="M29,23.5h-4.4c-0.3,0-0.5-0.2-0.5-0.5s0.2-0.5,0.5-0.5H29c0.3,0,0.5,0.2,0.5,0.5S29.3,23.5,29,23.5z"/> + </g> + </g> + <g> + <g> + <path fill="#E4E7EF" d="M29,20.5h-4.4c-0.3,0-0.5-0.2-0.5-0.5s0.2-0.5,0.5-0.5H29c0.3,0,0.5,0.2,0.5,0.5S29.3,20.5,29,20.5z"/> + </g> + </g> + <g> + <g> + <path fill="#E4E7EF" d="M29,17.5h-4.4c-0.3,0-0.5-0.2-0.5-0.5s0.2-0.5,0.5-0.5H29c0.3,0,0.5,0.2,0.5,0.5S29.3,17.5,29,17.5z"/> + </g> + </g> + <g> + <g> + <path fill="#E4E7EF" d="M29,29.5H18c-0.3,0-0.5-0.2-0.5-0.5s0.2-0.5,0.5-0.5h11c0.3,0,0.5,0.2,0.5,0.5S29.3,29.5,29,29.5z"/> + </g> + </g> + <g> + <g> + <path fill="#E4E7EF" d="M29,32.5H18c-0.3,0-0.5-0.2-0.5-0.5s0.2-0.5,0.5-0.5h11c0.3,0,0.5,0.2,0.5,0.5S29.3,32.5,29,32.5z"/> + </g> + </g> + <g> + <g> + <path fill="#E4E7EF" d="M29,35.5H18c-0.3,0-0.5-0.2-0.5-0.5s0.2-0.5,0.5-0.5h11c0.3,0,0.5,0.2,0.5,0.5S29.3,35.5,29,35.5z"/> + </g> + </g> + <g> + <g> + <path fill="#E4E7EF" d="M29,38.5H18c-0.3,0-0.5-0.2-0.5-0.5s0.2-0.5,0.5-0.5h11c0.3,0,0.5,0.2,0.5,0.5S29.3,38.5,29,38.5z"/> + </g> + </g> + <g> + <g> + <path fill="#E4E7EF" d="M29,41.5H18c-0.3,0-0.5-0.2-0.5-0.5s0.2-0.5,0.5-0.5h11c0.3,0,0.5,0.2,0.5,0.5S29.3,41.5,29,41.5z"/> + </g> + </g> + <g> + <g> + <path fill="#E4E7EF" d="M46,26.5H35c-0.3,0-0.5-0.2-0.5-0.5s0.2-0.5,0.5-0.5h11c0.3,0,0.5,0.2,0.5,0.5S46.3,26.5,46,26.5z"/> + </g> + </g> + <g> + <g> + <path fill="#E4E7EF" d="M46,29.5H35c-0.3,0-0.5-0.2-0.5-0.5s0.2-0.5,0.5-0.5h11c0.3,0,0.5,0.2,0.5,0.5S46.3,29.5,46,29.5z"/> + </g> + </g> + <g> + <g> + <path fill="#E4E7EF" d="M46,20.5H35c-0.3,0-0.5-0.2-0.5-0.5s0.2-0.5,0.5-0.5h11c0.3,0,0.5,0.2,0.5,0.5S46.3,20.5,46,20.5z"/> + </g> + </g> + <g> + <g> + <path fill="#E4E7EF" d="M46,17.5H35c-0.3,0-0.5-0.2-0.5-0.5s0.2-0.5,0.5-0.5h11c0.3,0,0.5,0.2,0.5,0.5S46.3,17.5,46,17.5z"/> + </g> + </g> + <g> + <g> + <path fill="#E4E7EF" d="M46,23.5H35c-0.3,0-0.5-0.2-0.5-0.5s0.2-0.5,0.5-0.5h11c0.3,0,0.5,0.2,0.5,0.5S46.3,23.5,46,23.5z"/> + </g> + </g> + <g> + <g> + <path fill="#E4E7EF" d="M46,32.5H35c-0.3,0-0.5-0.2-0.5-0.5s0.2-0.5,0.5-0.5h11c0.3,0,0.5,0.2,0.5,0.5S46.3,32.5,46,32.5z"/> + </g> + </g> + <g> + <g> + <path fill="#E4E7EF" d="M46,35.5H35c-0.3,0-0.5-0.2-0.5-0.5s0.2-0.5,0.5-0.5h11c0.3,0,0.5,0.2,0.5,0.5S46.3,35.5,46,35.5z"/> + </g> + </g> + <g> + <g> + <path fill="#E4E7EF" d="M46,38.5H35c-0.3,0-0.5-0.2-0.5-0.5s0.2-0.5,0.5-0.5h11c0.3,0,0.5,0.2,0.5,0.5S46.3,38.5,46,38.5z"/> + </g> + </g> + <g> + <g> + <path fill="#E4E7EF" d="M46,41.5H35c-0.3,0-0.5-0.2-0.5-0.5s0.2-0.5,0.5-0.5h11c0.3,0,0.5,0.2,0.5,0.5S46.3,41.5,46,41.5z"/> + </g> + </g> +</g> +</svg> diff --git a/static/assets/icons/npm-logo-36.avif b/static/assets/icons/npm-logo-36.avif deleted file mode 100644 index ea9642eceb8cb45118813ecd974cf0a385e746de..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2275 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 A=Kufz diff --git a/static/assets/icons/npm-logo.avif b/static/assets/icons/npm-logo.avif deleted file mode 100644 index 69fe17e150419957f08ee1ab3a77d947980aa213..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9516 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 Tmf!Lz?9%t837~#4zNh*>3?C0Y diff --git a/static/assets/icons/npm-logo.png b/static/assets/icons/npm-logo.png deleted file mode 100644 index 2bfb661dc875a8a6ec14f8e157ba568f2bdb4763..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 31064 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�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 diff --git a/static/assets/icons/portainer-logo-36.avif b/static/assets/icons/portainer-logo-36.avif deleted file mode 100644 index ac045d4b5ede0cd5395da54fecaba9c7109094a4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1583 zcmaJ=eNYr-7=La#;G_dCKr{vm4GBboL&uz(5f7vhh=jqzRLa=fyMv|MyPdrQWK;?! zKKjs3ND0A!&|n(KX+UyJnm}ZRaV#<8Bf=RiCMF=2k0Kelo_7zzKcHu4cYp8ieSYur z?(caQ0Q?QsJf6;B4S+%39BWW=ERAESlG9sh!egw@)ENZ_1mIc5x`-Fw9z1L1#DN5# zTUn!-A){C|P<UZTQ-RE2NDeuWbIT$FN0HvnvL<mGV*Y9z=tUu_=$r^8Q7(}<vp_oW zEHCf?P6;f}m;tCJ#%vUL!HjEBwMK@sNYwzG$ttAmjtSU*;9!93DAtw08t{O1G-KhT zlamw4>dVJpeU4rJ7)I7wK4(SNU8lF850U`PP&2%Mwn@?vZ_Bmv1b>3qhsmUMh?@{^ z7I1@z2MDiq;BkU8L@fH@BWO}~;kWr9ACU0`);@umOaZ$=ZN;2G9cRMzsr?SDBbfLd z$QiT69w8>3k?T#VdkK%XKkSBhcomW%0JM+|EEvHGVfZ#7V}TT$k6A(QC+d??r9~AB z3@T#53>?s+9!L)`2V==wi(yNoNJ-=|0M2*p_Nk2kuH^uaZFc)yo!$QUGwks%0N<IG z^yXSTHZ#cEmbkzg0MB;;+PaoFZ3V#BB>-y&d0L>wI!^ec40uK+8vxu70C?X7a7%Oe zhI3>d>iYpS=vCqkfXXufK^eIA>nnV>3<dxB_P;p`{$akH&Qb0vKpBP)YvJ_-V2~b= z8~>`qEFmOh_3d=_VeC9WwqR0mygoyG#HbjS;Z>GAi&f8ARG7mWSz5?b(MCQ~{Mdym zaw1)>iej;flT1eHJj?Q&!zJ_xBvMJSs|+Y<p_8--XZ=_~@Ayw~e^|{(a>xmi+~ah# z)eGEQ)~;rb7pWtADQ~rGy?QwOXN_j)NKgDLlG7y}F7~D~fo)^ikCOc5FBqTS9C*9M z(^}cNrg8Yagvc8+m#=l{^%_@Bdcytm<*DR^=Vq(r4^L&-!zapT_H2uL*g80)jVkco z)S<Z_eAUgR;7Ejag6+FlrkYZWtEb2RjGi70&JNO5l+8ESR1aSmtLmw|I27XBruXw} zpY1+BayBvC`I6~}KSm!+P3O%QoN5};w$`<ll%EZJXW}<!zVwTq4#^vRm7{y4f6u)% zTKbPi)wLHr&#elOwOi)$_u0OsJwvBL57yt+Z*rZBIpKXJq*8Iqs_nCVP(lTTq&Bwa zziHT*t8w{Q@_YS2)^&GNbxZ$M>W!JV<YhrZYG0DgD?Mi4?dZnBEc5&K@^Uv^y3;>< z>**Hi<gwyrpQ08`#L48A;J&b^vB=)xy3Y2I9p!w{uiqR^Xq%+s^1o`HMt4^ccMB;$ zcUdGCdlL%L;i2mdURtW5bY1t`^SylDg-P!jW#~s6?suBw=Fb(Yk9T`qsp@E`{64c+ zWm9;Yp4sV6o%i~(=YcFOKB~56OTVIP@BGW3-t}#pYaW;$*zr_hdfBlyxjjv>^U-Sw O<yqRU4?j<;u>A`dx1{U< diff --git a/static/assets/icons/portainer-logo.avif b/static/assets/icons/portainer-logo.avif deleted file mode 100644 index 256bf2cac68b667fb7b96370ad45d4beab01543f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5622 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 N;!w2WwZZGK{{fkyV&MP) diff --git a/static/assets/icons/portainer-logo.png b/static/assets/icons/portainer-logo.png deleted file mode 100644 index b4bfd2924fd4ebd5f2834a4fdcf2d6719b15f0d0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4253 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 diff --git a/static/assets/icons/roundcube-logo.svg b/static/assets/icons/roundcube-logo.svg new file mode 100644 index 0000000..04238a0 --- /dev/null +++ b/static/assets/icons/roundcube-logo.svg @@ -0,0 +1,15 @@ +<?xml version="1.0" encoding="UTF-8"?> +<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="9.14 141.8 573.65 573.65"> +<style type="text/css"> +.st0{fill-rule:evenodd;clip-rule:evenodd;fill:#404F54;} +.st1{fill-rule:evenodd;clip-rule:evenodd;fill:#E5E5E5;} +.st2{fill-rule:evenodd;clip-rule:evenodd;fill:#CCCCCC;} +.st3{fill-rule:evenodd;clip-rule:evenodd;fill:#37BEFF;} +</style> +<polygon class="st3" points="582.79,549.77 295.96,384.1 295.96,207.27 582.79,372.95 "/> +<polygon class="st0" points="9.14,549.77 295.96,384.1 295.96,207.27 9.14,372.95 "/> +<path class="st2" d="M295.96,141.8c109.56,0,198.41,88.85,198.41,198.41c0,109.56-88.85,198.41-198.41,198.41 c-109.56,0-198.41-88.85-198.41-198.41C97.55,230.65,186.4,141.8,295.96,141.8"/> +<path class="st1" d="M295.96,141.8c109.6,0,198.48,88.85,198.48,198.41c0,109.56-88.88,198.41-198.48,198.41 c-62.91-42.34-88.94-127.64-88.94-198.3S233.05,184.22,295.96,141.8"/> +<polygon class="st3" points="582.79,372.95 295.96,538.62 295.96,715.45 582.79,549.77 "/> +<polygon class="st0" points="9.14,372.95 295.96,538.62 295.96,715.45 9.14,549.77 "/> +</svg> \ No newline at end of file diff --git a/static/assets/icons/vaultwarden-logo.svg b/static/assets/icons/vaultwarden-logo.svg new file mode 100644 index 0000000..91abbd6 --- /dev/null +++ b/static/assets/icons/vaultwarden-logo.svg @@ -0,0 +1,74 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<svg version="1.1" viewBox="0 0 256 256" id="svg383" sodipodi:docname="vaultwarden-icon.svg" inkscape:version="1.2.1 (9c6d41e410, 2022-07-14, custom)" width="256" height="256" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2000/svg" xmlns:svg="http://www.w3.org/2000/svg" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:cc="http://creativecommons.org/ns#" xmlns:dc="http://purl.org/dc/elements/1.1/"> + <defs id="defs387" /> + <sodipodi:namedview id="namedview385" pagecolor="#ffffff" bordercolor="#666666" borderopacity="1.0" inkscape:showpageshadow="2" inkscape:pageopacity="0.0" inkscape:pagecheckerboard="0" inkscape:deskcolor="#d1d1d1" showgrid="false" inkscape:zoom="3.3359375" inkscape:cx="128" inkscape:cy="128" inkscape:window-width="1874" inkscape:window-height="1056" inkscape:window-x="46" inkscape:window-y="24" inkscape:window-maximized="1" inkscape:current-layer="svg383" /> + <title id="title287">Vaultwarden Icon</title> + <g id="logo" transform="matrix(2.4381018,0,0,2.4381018,128,128)"> + <g id="gear" mask="url(#holes)"> + <path d="m-31.1718-33.813208 26.496029 74.188883h9.3515399l26.49603-74.188883h-9.767164l-16.728866 47.588948q-1.662496 4.571864-2.805462 8.624198-1.142966 3.948427-1.870308 7.585137-.72734199-3.63671-1.8703079-7.689043-1.142966-4.052334-2.805462-8.728104l-16.624959-47.381136z" stroke="#000" stroke-width="4.51171" id="path289" /> + <circle transform="scale(-1,1)" r="43" fill="none" stroke="#000" stroke-width="9" id="circle291" /> + <g id="cogs" transform="scale(-1,1)"> + <polygon id="cog" points="51 0 46 -3 46 3" stroke="#000" stroke-linejoin="round" stroke-width="3" /> + <use transform="rotate(11.25)" xlink:href="#cog" id="use294" /> + <use transform="rotate(22.5)" xlink:href="#cog" id="use296" /> + <use transform="rotate(33.75)" xlink:href="#cog" id="use298" /> + <use transform="rotate(45)" xlink:href="#cog" id="use300" /> + <use transform="rotate(56.25)" xlink:href="#cog" id="use302" /> + <use transform="rotate(67.5)" xlink:href="#cog" id="use304" /> + <use transform="rotate(78.75)" xlink:href="#cog" id="use306" /> + <use transform="rotate(90)" xlink:href="#cog" id="use308" /> + <use transform="rotate(101.25)" xlink:href="#cog" id="use310" /> + <use transform="rotate(112.5)" xlink:href="#cog" id="use312" /> + <use transform="rotate(123.75)" xlink:href="#cog" id="use314" /> + <use transform="rotate(135)" xlink:href="#cog" id="use316" /> + <use transform="rotate(146.25)" xlink:href="#cog" id="use318" /> + <use transform="rotate(157.5)" xlink:href="#cog" id="use320" /> + <use transform="rotate(168.75)" xlink:href="#cog" id="use322" /> + <use transform="scale(-1)" xlink:href="#cog" id="use324" /> + <use transform="rotate(191.25)" xlink:href="#cog" id="use326" /> + <use transform="rotate(202.5)" xlink:href="#cog" id="use328" /> + <use transform="rotate(213.75)" xlink:href="#cog" id="use330" /> + <use transform="rotate(225)" xlink:href="#cog" id="use332" /> + <use transform="rotate(236.25)" xlink:href="#cog" id="use334" /> + <use transform="rotate(247.5)" xlink:href="#cog" id="use336" /> + <use transform="rotate(258.75)" xlink:href="#cog" id="use338" /> + <use transform="rotate(-90)" xlink:href="#cog" id="use340" /> + <use transform="rotate(-78.75)" xlink:href="#cog" id="use342" /> + <use transform="rotate(-67.5)" xlink:href="#cog" id="use344" /> + <use transform="rotate(-56.25)" xlink:href="#cog" id="use346" /> + <use transform="rotate(-45)" xlink:href="#cog" id="use348" /> + <use transform="rotate(-33.75)" xlink:href="#cog" id="use350" /> + <use transform="rotate(-22.5)" xlink:href="#cog" id="use352" /> + <use transform="rotate(-11.25)" xlink:href="#cog" id="use354" /> + </g> + <g id="mounts" transform="scale(-1,1)"> + <polygon id="mount" points="0 -35 7 -42 -7 -42" stroke="#000" stroke-linejoin="round" stroke-width="6" /> + <use transform="rotate(72)" xlink:href="#mount" id="use358" /> + <use transform="rotate(144)" xlink:href="#mount" id="use360" /> + <use transform="rotate(216)" xlink:href="#mount" id="use362" /> + <use transform="rotate(-72)" xlink:href="#mount" id="use364" /> + </g> + </g> + <mask id="holes"> + <rect x="-60" y="-60" width="120" height="120" fill="#fff" id="rect368" /> + <circle id="hole" cy="-40" r="3" /> + <use transform="rotate(72)" xlink:href="#hole" id="use371" /> + <use transform="rotate(144)" xlink:href="#hole" id="use373" /> + <use transform="rotate(216)" xlink:href="#hole" id="use375" /> + <use transform="rotate(-72)" xlink:href="#hole" id="use377" /> + </mask> + </g> + <metadata id="metadata381"> + <rdf:RDF> + <cc:Work rdf:about=""> + <dc:title>Vaultwarden Icon</dc:title> + <dc:creator> + <cc:Agent> + <dc:title>Mathijs van Veluw</dc:title> + </cc:Agent> + </dc:creator> + <dc:relation>Rust Logo</dc:relation> + </cc:Work> + </rdf:RDF> + </metadata> +</svg> diff --git a/static/data/services.json b/static/data/services.json index 5cd849e..a9aeea1 100644 --- a/static/data/services.json +++ b/static/data/services.json @@ -3,7 +3,7 @@ "name": "Nextcloud", "icon": "/assets/icons/nextcloud-logo", "iconType": "svg", - "href": "https://nextcloud.neshweb.net/", + "href": "https://cloud.neshweb.net/", "desc": "Self-hosted Cloud Storage Service", "warn": "Note: Registration requires approval", "extLink": "https://nextcloud.com/", @@ -19,24 +19,24 @@ "id": 5 }, { - "name": "Images", - "icon": "/assets/icons/images-logo", + "name": "Roundcube Mail", + "icon": "/assets/icons/roundcube-logo", "iconType": "svg", - "href": "https://imgs.neshweb.net/", + "href": "https://mail.neshweb.net/rc", + "desc": "Self-hosted Mail Server", + "warn": "Registration via Admin invite", + "id": 5 + }, + { + "name": "Dun Scaith", + "icon": "/assets/icons/chevereto-logo", + "iconType": "png", + "href": "https://dun-scaith.com/", "desc": "Self-hosted Chevereto Image Service", "warn": "", "extLink": "https://chevereto.com/", "id": 4 }, - { - "name": "Calibre Web", - "icon": "/assets/icons/calibre-logo", - "iconType": "avif", - "href": "https://calibre.neshweb.net/", - "desc": "Self-hosted Ebook Library Service", - "warn": "Note: Registration only via Admin", - "id": 6 - }, { "name": "PeerTube", "icon": "/assets/icons/peertube-logo", @@ -77,7 +77,7 @@ "name": "Navidrome", "icon": "/assets/icons/navidrome-logo", "iconType": "avif", - "href": "https://navidrome.neshweb.net/", + "href": "https://music.neshweb.net/", "desc": "Open-Source, Self-Hosted Music Streaming Platform", "warn": "Note: Registration only via Admin", "id": 10 @@ -91,42 +91,6 @@ "warn": "Note: Registration only via Admin", "id": 36 }, - { - "name": "Portainer", - "icon": "/assets/icons/portainer-logo", - "iconType": "avif", - "href": "https://portainer.neshweb.net/", - "desc": "Docker Container Manager", - "warn": "Note: Admin Only", - "id": 34 - }, - { - "name": "Nginx", - "icon": "/assets/icons/npm-logo", - "iconType": "avif", - "href": "https://nginx.neshweb.net/", - "desc": "Web-based Nginx Proxy Manager", - "warn": "Note: Admin Only", - "id": 31 - }, - { - "name": "Proxmox", - "icon": "/assets/icons/proxmox-logo", - "iconType": "avif", - "href": "https://proxmox.neshweb.net/", - "desc": "Hypervisor Webinterface", - "warn": "Note: Admin Only", - "id": 33 - }, - { - "name": "Dockge", - "icon": "/assets/icons/dockge-logo", - "iconType": "avif", - "href": "https://dockge.neshweb.net/", - "desc": "Docker Compose WebUI", - "warn": "Note: Admin Only", - "id": 35 - }, { "name": "bookwormstory.social", "icon": "/assets/icons/bookworm-logo",