import axios from "axios"; const fetchStatus = (domain: string) => { const req = axios("https://" + domain, { timeout: 5000 }) .then((res) => res.status) .catch((error) => error.response ? error.response.status : 500); return req; }; const statusData = [ { name: "Privacy front-ends", data: [ { name: "Invidious", description: "A frontend for YouTube.", eu: "https://invidious.projectsegfau.lt/", us: "https://inv.us.projectsegfau.lt", bp: "https://inv.bp.projectsegfau.lt", tor: "http://inv.pjsfkvpxlinjamtawaksbnnaqs2fc2mtvmozrzckxh7f3kis6yea25ad.onion", torBp: "http://invbp.pjsfkvpxlinjamtawaksbnnaqs2fc2mtvmozrzckxh7f3kis6yea25ad.onion", icon: "/icons/invidious.svg", statusEu: await fetchStatus("invidious.projectsegfau.lt"), statusUs: await fetchStatus("inv.us.projectsegfau.lt"), statusBp: await fetchStatus("inv.bp.projectsegfau.lt") }, { name: "Librarian", description: "A frontend for Odysee.", eu: "https://lbry.projectsegfau.lt/", geo: "https://lbry.g.projectsegfau.lt/", tor: "http://lbry.pjsfkvpxlinjamtawaksbnnaqs2fc2mtvmozrzckxh7f3kis6yea25ad.onion", icon: "/icons/librarian.png", statusEu: await fetchStatus("lbry.projectsegfau.lt"), statusGeo: await fetchStatus("lbry.g.projectsegfau.lt") }, { name: "Libreddit", description: "A frontend for Reddit.", eu: "https://libreddit.projectsegfau.lt/", us: "https://libreddit.us.projectsegfau.lt", geo: "https://libreddit.g.projectsegfau.lt/", tor: "http://libreddit.pjsfkvpxlinjamtawaksbnnaqs2fc2mtvmozrzckxh7f3kis6yea25ad.onion", icon: "/icons/libreddit.png", statusEu: await fetchStatus("libreddit.projectsegfau.lt"), statusUs: await fetchStatus("libreddit.us.projectsegfau.lt"), statusGeo: await fetchStatus("libreddit.g.projectsegfau.lt") }, { name: "Nitter", description: "A frontend for Twitter.", eu: "https://nitter.projectsegfau.lt/", us: "https://nitter.us.projectsegfau.lt", geo: "https://nitter.g.projectsegfau.lt/", tor: "http://nitter.pjsfkvpxlinjamtawaksbnnaqs2fc2mtvmozrzckxh7f3kis6yea25ad.onion", icon: "/icons/nitter.png", statusEu: await fetchStatus("nitter.projectsegfau.lt"), statusUs: await fetchStatus("nitter.us.projectsegfau.lt"), statusGeo: await fetchStatus("nitter.g.projectsegfau.lt") }, { name: "Piped", description: "Another frontend for YouTube.", eu: "https://piped.projectsegfau.lt/", us: "https://piped.us.projectsegfau.lt", icon: "/icons/piped.svg", statusEu: await fetchStatus("piped.projectsegfau.lt"), statusUs: await fetchStatus("piped.us.projectsegfau.lt") }, { name: "Beatbump", description: "A frontend for YouTube Music.", eu: "https://bb.eu.projectsegfau.lt/", us: "https://bb.us.projectsegfau.lt/", geo: "https://bb.g.projectsegfau.lt/", tor: "http://beatbump.pjsfkvpxlinjamtawaksbnnaqs2fc2mtvmozrzckxh7f3kis6yea25ad.onion", icon: "/icons/beatbump.svg", statusEu: await fetchStatus("bb.eu.projectsegfau.lt"), statusUs: await fetchStatus("bb.us.projectsegfau.lt"), statusGeo: await fetchStatus("bb.g.projectsegfau.lt") }, { name: "BreezeWiki", description: "A frontend for Fandom.", eu: "https://bw.eu.projectsegfau.lt/", us: "https://bw.us.projectsegfau.lt/", geo: "https://bw.g.projectsegfau.lt/", tor: "http://breezewiki.pjsfkvpxlinjamtawaksbnnaqs2fc2mtvmozrzckxh7f3kis6yea25ad.onion", icon: "/icons/breezewiki.svg", statusEu: await fetchStatus("bw.eu.projectsegfau.lt"), statusUs: await fetchStatus("bw.us.projectsegfau.lt"), statusGeo: await fetchStatus("bw.g.projectsegfau.lt") }, { name: "Scribe", description: "A frontend for Medium.", eu: "https://scribe.eu.projectsegfau.lt/", us: "https://scribe.us.projectsegfau.lt/", geo: "https://scribe.g.projectsegfau.lt/", tor: "http://scribe.pjsfkvpxlinjamtawaksbnnaqs2fc2mtvmozrzckxh7f3kis6yea25ad.onion", statusEu: await fetchStatus("scribe.eu.projectsegfau.lt"), statusUs: await fetchStatus("scribe.us.projectsegfau.lt"), statusGeo: await fetchStatus("scribe.g.projectsegfau.lt") } ] }, { name: "Useful tools and services", data: [ { name: "Element", description: "A feature-rich Matrix client.", eu: "https://chat.projectsegfau.lt/", tor: "http://element.pjsfkvpxlinjamtawaksbnnaqs2fc2mtvmozrzckxh7f3kis6yea25ad.onion", icon: "/icons/element.svg", statusEu: await fetchStatus("chat.projectsegfau.lt") }, { name: "Hydrogen", description: "A lightweight Matrix client.", eu: "https://hydrogen.projectsegfau.lt/", tor: "http://hydrogen.pjsfkvpxlinjamtawaksbnnaqs2fc2mtvmozrzckxh7f3kis6yea25ad.onion", icon: "/icons/hydrogen.svg", statusEu: await fetchStatus("hydrogen.projectsegfau.lt") }, { name: "Cinny", description: "An elegant Matrix client.", eu: "https://cinny.projectsegfau.lt/", tor: "http://cinny.pjsfkvpxlinjamtawaksbnnaqs2fc2mtvmozrzckxh7f3kis6yea25ad.onion", icon: "/icons/cinny.svg", statusEu: await fetchStatus("cinny.projectsegfau.lt") }, { name: "SearXNG", description: "A private meta-search engine.", eu: "https://search.projectsegfau.lt/", us: "https://search.us.projectsegfau.lt", tor: "http://search.pjsfkvpxlinjamtawaksbnnaqs2fc2mtvmozrzckxh7f3kis6yea25ad.onion", icon: "/icons/searxng.svg", statusEu: await fetchStatus("search.projectsegfau.lt"), statusUs: await fetchStatus("search.us.projectsegfau.lt") }, { name: "Gitea", description: "A web interface for Git, alternative to GitHub.", eu: "https://git.projectsegfau.lt/", tor: "http://git.pjsfkvpxlinjamtawaksbnnaqs2fc2mtvmozrzckxh7f3kis6yea25ad.onion", icon: "/icons/gitea.png", statusEu: await fetchStatus("git.projectsegfau.lt") }, { name: "Akkoma", description: "Federated microblogging platform.", eu: "https://social.projectsegfau.lt/", tor: "http://social.pjsfkvpxlinjamtawaksbnnaqs2fc2mtvmozrzckxh7f3kis6yea25ad.onion", icon: "/icons/akkoma.png", statusEu: await fetchStatus("social.projectsegfau.lt") }, { name: "Vikunja", description: "A task management platform.", eu: "https://todo.projectsegfau.lt/", tor: "http://todo.pjsfkvpxlinjamtawaksbnnaqs2fc2mtvmozrzckxh7f3kis6yea25ad.onion", icon: "/icons/vikunja.png", statusEu: await fetchStatus("todo.projectsegfau.lt") } ] }, { name: "Internal services", data: [ { name: "Portainer", description: "Portainer instance for our servers.", eu: "https://portainer.projectsegfau.lt/", icon: "/icons/portainer.png", statusEu: await fetchStatus("portainer.projectsegfau.lt") }, { name: "Authentik", description: "Our OAuth provider.", eu: "https://sekuritee.projectsegfau.lt/", icon: "/icons/authentik.png", statusEu: await fetchStatus("sekuritee.projectsegfau.lt") }, { name: "mailcow", description: "Our mail server and webmail.", eu: "https://mail.projectsegfau.lt/", icon: "/icons/mailcow.svg", statusEu: await fetchStatus("mail.projectsegfau.lt") }, { name: "Plausible analytics", description: "Analytics for our website.", eu: "https://analytics.projectsegfau.lt/projectsegfau.lt", icon: "/icons/plausible.png", statusEu: await fetchStatus("analytics.projectsegfau.lt") } ] } ]; export default statusData;