Workstations Service

This commit is contained in:
Henrik Brüsecke 2026-08-29 18:18:56 +03:00
parent 9a2bd2bffd
commit aa342e43a6
72 changed files with 833 additions and 1 deletions

3
.gitignore vendored
View file

@ -1,3 +1,6 @@
# Backend
node_modules/
# MkDocs
/.cache/
/site/

View file

@ -0,0 +1,11 @@
added: "2024-01-27"
architectures:
- bitness: 64
cpu: x86
endianness: LE
family: BSD
name: ""
origin: 🇺🇸
os: DragonFly BSD
version: "6.4.0"
year: 2022

View file

@ -0,0 +1,11 @@
added: "2023-12-06"
architectures:
- bitness: 64
cpu: x86
endianness: LE
family: BSD
name: ""
origin: 🇺🇸
os: FreeBSD
version: "14.0"
year: 2023

View file

@ -0,0 +1,11 @@
added: "2024-06-29"
architectures:
- bitness: 64
cpu: x86
endianness: LE
family: BSD
name: ""
origin: 🇺🇸
os: FreeBSD
version: "14.1"
year: 2024

View file

@ -0,0 +1,11 @@
added: "2024-01-11"
architectures:
- bitness: 64
cpu: x86
endianness: LE
family: BSD
name: ""
origin: 🇨🇦
os: GhostBSD
version: "23.10.01"
year: 2023

View file

@ -0,0 +1,11 @@
added: "2024-01-31"
architectures:
- bitness: 64
cpu: x86
endianness: LE
family: BSD
name: ""
origin: 🇺🇸
os: HardenedBSD
version: "14"
year: 2024

View file

@ -0,0 +1,11 @@
added: "2024-01-29"
architectures:
- bitness: 64
cpu: x86
endianness: LE
family: BSD
name: ""
origin: 🇺🇸
os: NetBSD
version: "9.3"
year: 2022

View file

@ -0,0 +1,11 @@
added: "2024-01-28"
architectures:
- bitness: 64
cpu: x86
endianness: LE
family: BSD
name: ""
origin: 🇨🇦
os: OpenBSD
version: "7.4"
year: 2023

View file

@ -0,0 +1,11 @@
added: "2023-12-29"
architectures:
- bitness: 64
cpu: x86
endianness: LE
family: Linux
name: Pistachio Ice Cream
origin: 🇺🇸
os: Android™
version: "9.0"
year: 2018

View file

@ -0,0 +1,11 @@
added: "2024-06-28"
architectures:
- bitness: 64
cpu: x86
endianness: LE
family: Linux
name: Arditi del Popolo
origin: 🇬🇷
os: AntiX
version: "23.1"
year: 2024

View file

@ -0,0 +1,11 @@
added: "2023-11-28"
architectures:
- bitness: 64
cpu: x86
endianness: LE
family: Linux
name: ""
origin: 🇨🇦
os: Arch Linux
version: "2023.11.01"
year: 2023

View file

@ -0,0 +1,11 @@
added: "2024-09-10"
architectures:
- bitness: 64
cpu: x86
endianness: LE
family: Linux
name: ""
origin: 🇨🇦
os: Arch Linux
version: "2024.09.01"
year: 2024

View file

@ -0,0 +1,11 @@
added: "2023-12-28"
architectures:
- bitness: 64
cpu: x86
endianness: LE
family: Linux
name: ""
origin: 🇺🇸
os: Bodhi Linux
version: "7.0.0"
year: 2023

View file

@ -0,0 +1,11 @@
added: "2024-06-28"
architectures:
- bitness: 64
cpu: x86
endianness: LE
family: Linux
name: ""
origin: 🇩🇪
os: CachyOS
version: "240609"
year: 2024

View file

@ -0,0 +1,11 @@
added: "2023-12-06"
architectures:
- bitness: 64
cpu: x86
endianness: LE
family: Linux
name: Buster
origin: 🇺🇸
os: Debian
version: "10.0"
year: 2019

View file

@ -0,0 +1,11 @@
added: "2023-11-28"
architectures:
- bitness: 64
cpu: x86
endianness: LE
family: Linux
name: Bullseye
origin: 🇺🇸
os: Debian
version: "11.0"
year: 2021

View file

@ -0,0 +1,11 @@
added: "2023-11-28"
architectures:
- bitness: 64
cpu: x86
endianness: LE
family: Linux
name: Bookworm
origin: 🇺🇸
os: Debian
version: "12.2"
year: 2023

View file

@ -0,0 +1,11 @@
added: "2024-04-29"
architectures:
- bitness: 64
cpu: ARM
endianness: LE
family: Linux
name: Bookworm
origin: 🇺🇸
os: Debian
version: "12.5"
year: 2024

View file

@ -0,0 +1,11 @@
added: "2024-09-28"
architectures:
- bitness: 64
cpu: x86
endianness: LE
family: Linux
name: Bookworm
origin: 🇺🇸
os: Debian
version: "12.7"
year: 2024

View file

@ -0,0 +1,11 @@
added: "2024-06-28"
architectures:
- bitness: 64
cpu: x86
endianness: LE
family: Linux
name: ""
origin: 🇺🇸
os: Elementary OS
version: "7.1"
year: 2023

View file

@ -0,0 +1,11 @@
added: "2024-01-16"
architectures:
- bitness: 64
cpu: x86
endianness: LE
family: Linux
name: Galileo
origin: 🇳🇱
os: EndeavourOS
version: "2023-11"
year: 2023

View file

@ -0,0 +1,11 @@
added: "2024-01-06"
architectures:
- bitness: 64
cpu: x86
endianness: LE
family: Linux
name: ""
origin: 🇺🇸
os: Fedora
version: "36"
year: 2022

View file

@ -0,0 +1,11 @@
added: "2023-12-25"
architectures:
- bitness: 64
cpu: x86
endianness: LE
family: Linux
name: ""
origin: 🇺🇸
os: Fedora
version: "37"
year: 2022

View file

@ -0,0 +1,11 @@
added: "2023-12-06"
architectures:
- bitness: 64
cpu: x86
endianness: LE
family: Linux
name: ""
origin: 🇺🇸
os: Fedora
version: "38"
year: 2023

View file

@ -0,0 +1,11 @@
added: "2023-11-28"
architectures:
- bitness: 64
cpu: x86
endianness: LE
family: Linux
name: ""
origin: 🇺🇸
os: Fedora
version: "39"
year: 2023

View file

@ -0,0 +1,14 @@
added: "2024-05-01"
architectures:
- bitness: 64
cpu: ARM
endianness: LE
- bitness: 64
cpu: x86
endianness: LE
family: Linux
name: ""
origin: 🇺🇸
os: Fedora
version: "40"
year: 2024

View file

@ -0,0 +1,11 @@
added: "2025-07-19"
architectures:
- bitness: 64
cpu: x86
endianness: LE
family: Linux
name: ""
origin: 🇺🇸
os: Fedora
version: "42"
year: 2025

View file

@ -0,0 +1,11 @@
added: "2024-06-28"
architectures:
- bitness: 64
cpu: x86
endianness: LE
family: Linux
name: ""
origin: 🇮🇳
os: Garuda Linux
version: "2024.06.28"
year: 2024

View file

@ -0,0 +1,11 @@
added: "2024-06-09"
architectures:
- bitness: 64
cpu: x86
endianness: LE
family: Linux
name: ""
origin: 🇬🇧
os: KDE neon
version: "20240606"
year: 2024

View file

@ -0,0 +1,11 @@
added: "2024-06-28"
architectures:
- bitness: 64
cpu: x86
endianness: LE
family: Linux
name: ""
origin: 🇳🇿
os: Linux Lite
version: "7.0"
year: 2024

View file

@ -0,0 +1,11 @@
added: "2024-03-07"
architectures:
- bitness: 64
cpu: x86
endianness: LE
family: Linux
name: Virginia
origin: 🇮🇪
os: Linux Mint
version: "21.3"
year: 2024

View file

@ -0,0 +1,11 @@
added: "2024-08-03"
architectures:
- bitness: 64
cpu: x86
endianness: LE
family: Linux
name: ""
origin: 🇫🇷
os: Mageia
version: "9"
year: 2023

View file

@ -0,0 +1,11 @@
added: "2024-03-08"
architectures:
- bitness: 64
cpu: x86
endianness: LE
family: Linux
name: Vulcan
origin: 🇩🇪
os: Manjaro
version: "23.1"
year: 2023

View file

@ -0,0 +1,11 @@
added: "2024-03-05"
architectures:
- bitness: 64
cpu: x86
endianness: LE
family: Linux
name: ""
origin: 🇬🇷
os: MX Linux
version: "23.2"
year: 2024

View file

@ -0,0 +1,11 @@
added: "2024-01-06"
architectures:
- bitness: 64
cpu: x86
endianness: LE
family: Linux
name: Vaporwave
origin: 🇩🇪
os: Netrunner
version: "23"
year: 2023

View file

@ -0,0 +1,11 @@
added: "2024-07-07"
architectures:
- bitness: 64
cpu: x86
endianness: LE
family: Linux
name: Uakari
origin: 🇳🇱
os: NixOS
version: "24.05"
year: 2024

View file

@ -0,0 +1,11 @@
added: "2024-05-19"
architectures:
- bitness: 64
cpu: x86
endianness: LE
family: Linux
name: ""
origin: 🇺🇸
os: Nobara Linux
version: "39"
year: 2024

View file

@ -0,0 +1,11 @@
added: "2025-10-12"
architectures:
- bitness: 64
cpu: x86
endianness: LE
family: Linux
name: ""
origin: 🇺🇸
os: Omarchy
version: "3.0.2"
year: 2025

View file

@ -0,0 +1,11 @@
added: "2024-03-10"
architectures:
- bitness: 64
cpu: x86
endianness: LE
family: Linux
name: ""
origin: 🇩🇪
os: OpenSUSE
version: "2024.03.08"
year: 2024

View file

@ -0,0 +1,11 @@
added: "2024-03-09"
architectures:
- bitness: 64
cpu: x86
endianness: LE
family: Linux
name: ""
origin: 🇺🇸
os: Pop_OS
version: "22.04"
year: 2022

View file

@ -0,0 +1,11 @@
added: "2024-08-03"
architectures:
- bitness: 64
cpu: x86
endianness: LE
family: Linux
name: ""
origin: 🇵🇱
os: SparkyLinux
version: "7.4"
year: 2024

View file

@ -0,0 +1,11 @@
added: "2025-06-05"
architectures:
- bitness: 64
cpu: x86
endianness: LE
family: Linux
name: Disco Dingo
origin: 🇬🇧
os: Ubuntu
version: "19.04"
year: 2019

View file

@ -0,0 +1,11 @@
added: "2024-12-12"
architectures:
- bitness: 64
cpu: x86
endianness: LE
family: Linux
name: Eoan Ermine
origin: 🇬🇧
os: Ubuntu
version: "19.10"
year: 2019

View file

@ -0,0 +1,11 @@
added: "2024-05-26"
architectures:
- bitness: 64
cpu: x86
endianness: LE
family: Linux
name: Focal Fossa
origin: 🇬🇧
os: Ubuntu
version: "20.04"
year: 2020

View file

@ -0,0 +1,11 @@
added: "2023-12-09"
architectures:
- bitness: 64
cpu: x86
endianness: LE
family: Linux
name: Groovy Gorilla
origin: 🇬🇧
os: Ubuntu
version: "20.10"
year: 2020

View file

@ -0,0 +1,11 @@
added: "2023-12-07"
architectures:
- bitness: 64
cpu: x86
endianness: LE
family: Linux
name: Hirsute Hippo
origin: 🇬🇧
os: Ubuntu
version: "21.04"
year: 2021

View file

@ -0,0 +1,11 @@
added: "2023-11-29"
architectures:
- bitness: 64
cpu: x86
endianness: LE
family: Linux
name: Impish Indri
origin: 🇬🇧
os: Ubuntu
version: "21.10"
year: 2021

View file

@ -0,0 +1,11 @@
added: "2023-11-28"
architectures:
- bitness: 64
cpu: x86
endianness: LE
family: Linux
name: Jammy Jellyfish
origin: 🇬🇧
os: Ubuntu
version: "22.04"
year: 2022

View file

@ -0,0 +1,11 @@
added: "2023-11-28"
architectures:
- bitness: 64
cpu: x86
endianness: LE
family: Linux
name: Kinetic Kudu
origin: 🇬🇧
os: Ubuntu
version: "22.10"
year: 2022

View file

@ -0,0 +1,11 @@
added: "2023-11-28"
architectures:
- bitness: 64
cpu: x86
endianness: LE
family: Linux
name: Lunar Lobster
origin: 🇬🇧
os: Ubuntu
version: "23.04"
year: 2023

View file

@ -0,0 +1,11 @@
added: "2023-11-28"
architectures:
- bitness: 64
cpu: x86
endianness: LE
family: Linux
name: Mantic Minotaur
origin: 🇬🇧
os: Ubuntu
version: "23.10"
year: 2023

View file

@ -0,0 +1,11 @@
added: "2024-05-26"
architectures:
- bitness: 64
cpu: x86
endianness: LE
family: Linux
name: Noble Numbat
origin: 🇬🇧
os: Ubuntu
version: "24.04"
year: 2024

View file

@ -0,0 +1,11 @@
added: "2024-12-12"
architectures:
- bitness: 64
cpu: x86
endianness: LE
family: Linux
name: Oracular Oriole
origin: 🇬🇧
os: Ubuntu
version: "24.10"
year: 2024

View file

@ -0,0 +1,14 @@
added: "2025-01-22"
architectures:
- bitness: 64
cpu: ARM
endianness: LE
- bitness: 64
cpu: x86
endianness: LE
family: Linux
name: Plucky Puffin
origin: 🇬🇧
os: Ubuntu
version: "25.04"
year: 2025

View file

@ -0,0 +1,11 @@
added: "2026-08-22"
architectures:
- bitness: 64
cpu: x86
endianness: LE
family: Linux
name: Questing Quokka
origin: 🇬🇧
os: Ubuntu
version: "25.10"
year: 2025

View file

@ -0,0 +1,11 @@
added: "2026-08-16"
architectures:
- bitness: 64
cpu: x86
endianness: LE
family: Linux
name: Resolute Raccoon
origin: 🇬🇧
os: Ubuntu
version: "26.04"
year: 2026

View file

@ -0,0 +1,11 @@
added: "2024-08-03"
architectures:
- bitness: 64
cpu: x86
endianness: LE
family: Linux
name: ""
origin: 🇮🇹
os: Vanilla OS
version: "22.10-r9"
year: 2023

View file

@ -0,0 +1,11 @@
added: "2024-03-22"
architectures:
- bitness: 64
cpu: x86
endianness: LE
family: Linux
name: ""
origin: 🇮🇪
os: Zorin OS
version: "17.1"
year: 2024

View file

@ -0,0 +1,11 @@
added: "2024-02-26"
architectures:
- bitness: 32
cpu: x86
endianness: LE
family: Other
name: ""
origin: 🇺🇸
os: AROS Research Operating System
version: "2.3"
year: 2006

View file

@ -0,0 +1,11 @@
added: "2024-03-04"
architectures:
- bitness: 32
cpu: x86
endianness: LE
family: Other
name: ""
origin: 🇺🇸
os: FreeDOS
version: "1.3"
year: 2022

View file

@ -0,0 +1,11 @@
added: "2024-01-25"
architectures:
- bitness: 64
cpu: x86
endianness: LE
family: Other
name: ""
origin: 🇺🇸
os: Haiku
version: "R1 Alpha 4"
year: 2012

View file

@ -0,0 +1,11 @@
added: "2023-12-06"
architectures:
- bitness: 64
cpu: x86
endianness: LE
family: Other
name: ""
origin: 🇺🇸
os: Haiku
version: "R1 Beta 4"
year: 2022

View file

@ -0,0 +1,11 @@
added: "2024-01-26"
architectures:
- bitness: 64
cpu: x86
endianness: LE
family: Other
name: Hipster
origin: 🇺🇸
os: OpenIndiana
version: "2023.10"
year: 2023

View file

@ -0,0 +1,11 @@
added: "2024-01-25"
architectures:
- bitness: 64
cpu: x86
endianness: LE
family: Other
name: ""
origin: 🇺🇸
os: Quantix
version: "2024.01.14"
year: 2024

View file

@ -0,0 +1,11 @@
added: "2024-02-25"
architectures:
- bitness: 64
cpu: x86
endianness: LE
family: Other
name: ""
origin: 🇷🇺
os: ReactOS
version: "0.4.14"
year: 2021

View file

@ -0,0 +1,11 @@
added: "2024-01-25"
architectures:
- bitness: 64
cpu: x86
endianness: LE
family: Other
name: ""
origin: 🇺🇸
os: Redox
version: "0.8.0"
year: 2022

View file

@ -0,0 +1,11 @@
added: "2024-02-25"
architectures:
- bitness: 32
cpu: x86
endianness: LE
family: Other
name: ""
origin: 🇺🇸
os: Syllable Desktop
version: "0.6.7"
year: 2012

View file

@ -0,0 +1,11 @@
added: "2023-12-09"
architectures:
- bitness: 64
cpu: x86
endianness: LE
family: Other
name: ""
origin: 🇺🇸
os: TempleOS
version: "5.03"
year: 2017

40
backend/workstations/package-lock.json generated Normal file
View file

@ -0,0 +1,40 @@
{
"name": "workstations",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"dependencies": {
"js-yaml": "5.4.1"
}
},
"node_modules/argparse": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz",
"integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==",
"license": "Python-2.0"
},
"node_modules/js-yaml": {
"version": "5.4.1",
"resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-5.4.1.tgz",
"integrity": "sha512-28R/k+NAjeuf7+CKlTxWZVExJGwVVLwY06DgEnOMz2gEpfNkDcD7QvyiVPT0xy0XXhU8vHsd4Ot42OOPdJG7dQ==",
"funding": [
{
"type": "github",
"url": "https://github.com/sponsors/puzrin"
},
{
"type": "github",
"url": "https://github.com/sponsors/nodeca"
}
],
"license": "MIT",
"dependencies": {
"argparse": "^2.0.1"
},
"bin": {
"js-yaml": "bin/js-yaml.mjs"
}
}
}
}

View file

@ -0,0 +1,7 @@
{
"dependencies": {
"js-yaml": "5.4.1"
},
"private": true,
"type": "module"
}

View file

@ -0,0 +1,39 @@
import fs from 'node:fs';
import http from 'node:http';
import * as yaml from 'js-yaml';
const LOCALE = 'en';
const yamlFiles = fs.globSync(`${import.meta.dirname}/data/**/*.yaml`);
const yamlContents = yamlFiles.map(yamlFile => fs.readFileSync(yamlFile, 'utf8'));
const workstations = yamlContents.map(yamlContent => yaml.load(yamlContent));
workstations.sort(compareWorkstations);
const workstationsJSON = JSON.stringify(workstations);
const server = http.createServer(onRequest);
process.on('SIGINT', shutdown);
process.on('SIGTERM', shutdown);
server.listen(50000);
function compareWorkstations(first, second) {
const osComparison = first.os.localeCompare(second.os, LOCALE);
const versionComparison = second.version.localeCompare(first.version, LOCALE, { numeric: true });
return osComparison || versionComparison;
}
function onRequest(_request, response) {
response.setHeader('Content-Type', 'application/json');
response.end(workstationsJSON);
}
function shutdown() {
process.off('SIGINT', shutdown);
process.off('SIGTERM', shutdown);
server.close();
}

View file

@ -23,8 +23,8 @@
<nav class="nav">
<a class="nav-link screen-narrow" href="https://code.instantworkstation.com">Code</a>
<a class="nav-link screen-wide" href="https://code.instantworkstation.com">Source Code</a>
<a class="nav-link screen-narrow" href="https://docs.instantworkstation.com">Docs</a>
<a class="nav-link screen-wide" href="https://code.instantworkstation.com">Source Code</a>
<a class="nav-link screen-wide" href="https://docs.instantworkstation.com">Technical Documentation</a>
<span class="news-ticker">