diff --git a/.gitignore b/.gitignore index 146feb1..b38cfe4 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,4 @@ zoom-platform.sh innoextract* -/www/out \ No newline at end of file +/www/out +www/.env diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 0000000..2008dd1 --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,12 @@ +{ + "deno.enable": true, + "deno.lint": true, + "deno.unstable": true, + "editor.formatOnSave": true, + "deno.enablePaths":[ + "./www" + ], + "[typescript]": { + "editor.defaultFormatter": "denoland.vscode-deno" + } +} diff --git a/start-www.sh b/start-www.sh new file mode 100644 index 0000000..88ba783 --- /dev/null +++ b/start-www.sh @@ -0,0 +1,10 @@ +#!/bin/sh +# build latest commit +./dist.sh + +cd "www" || exit + +# download latest stable +wget -O "public/zoom-platform.sh" "https://github.com/ZOOM-Platform/zoom-platform.sh/releases/latest/download/zoom-platform.sh" + +deno task start \ No newline at end of file diff --git a/www/README.md b/www/README.md index 70eb24e..36c014b 100644 --- a/www/README.md +++ b/www/README.md @@ -1,10 +1,12 @@ # zoom-platform.sh website -no frameworks, no fancy bundlers, just a towering html monolith +Deno server only required if you want to be able to serve specific versions of the script. ## Deploying 1. Clone this repo -2. `cd www && build.sh` (All this does is download the latest release .sh and copy everything to `out`) -3. Serve `www/out/` +2. `./dist.sh` +3. `./start-www.sh` (saves latest stable script to www/dist) +4. `deno task start` (optional) +5. Serve `www/dist` We can't use GitHub/CF Pages cause they force SSL. Server is running Nginx with a simple config: ```nginx @@ -12,12 +14,16 @@ server { listen 80; listen [::]:80; - root PATH_TO_OUT_DIR; + root PATH_TO_PUBLIC_DIR; index index.html; server_name zoom-platform.sh; location / { - try_files $uri $uri/ $uri.html /index.html; + try_files $uri $uri/ @proxy; + } + + location @proxy { + proxy_pass http://0.0.0.0:23412; } } ``` diff --git a/www/build.sh b/www/build.sh deleted file mode 100644 index fd78ea2..0000000 --- a/www/build.sh +++ /dev/null @@ -1,5 +0,0 @@ -#!/bin/sh -rm -rf out/ -wget "https://github.com/ZOOM-Platform/zoom-platform.sh/releases/latest/download/zoom-platform.sh" -mv zoom-platform.sh out/ -cp -r src/ out/ diff --git a/www/deno.json b/www/deno.json new file mode 100644 index 0000000..cbe2011 --- /dev/null +++ b/www/deno.json @@ -0,0 +1,29 @@ +{ + "compilerOptions": { + "allowJs": true, + "lib": ["deno.window"], + "strict": true + }, + "lint": { + "include": ["server.ts"], + "rules": { + "tags": ["recommended"], + "include": ["ban-untagged-todo"], + "exclude": ["no-unused-vars"] + } + }, + "fmt": { + "useTabs": false, + "lineWidth": 80, + "indentWidth": 2, + "semiColons": false, + "singleQuote": true, + "proseWrap": "always", + "include": ["server.ts"] + }, + "tasks": { + "start": "deno run --allow-read='./','../zoom-platform.sh',$(which deno) --allow-env --allow-run=git,sh --allow-sys=uid,gid --allow-net server.ts", + "dev": "deno run --allow-read='./','../zoom-platform.sh',$(which deno) --allow-env --allow-run=git,sh --allow-sys=uid,gid --allow-net --watch server.ts" + }, + "exclude": ["dist/"] +} \ No newline at end of file diff --git a/www/deno.lock b/www/deno.lock new file mode 100644 index 0000000..600ef31 --- /dev/null +++ b/www/deno.lock @@ -0,0 +1,119 @@ +{ + "version": "3", + "packages": { + "specifiers": { + "jsr:@hono/hono": "jsr:@hono/hono@4.6.3", + "jsr:@std/crypto": "jsr:@std/crypto@1.0.3", + "jsr:@std/dotenv": "jsr:@std/dotenv@0.225.2", + "jsr:@std/encoding": "jsr:@std/encoding@1.0.5" + }, + "jsr": { + "@hono/hono@4.6.3": { + "integrity": "a1f5a18cd12a0db54755b0461dd5a4e2d93a6f85403073eb710103eacc42daf3" + }, + "@std/crypto@1.0.3": { + "integrity": "a2a32f51ddef632d299e3879cd027c630dcd4d1d9a5285d6e6788072f4e51e7f" + }, + "@std/dotenv@0.225.2": { + "integrity": "e2025dce4de6c7bca21dece8baddd4262b09d5187217e231b033e088e0c4dd23" + }, + "@std/encoding@1.0.5": { + "integrity": "ecf363d4fc25bd85bd915ff6733a7e79b67e0e7806334af15f4645c569fefc04" + } + } + }, + "redirects": { + "https://deno.land/x/crypto/hmac.ts": "https://deno.land/x/crypto@v0.10.1/hmac.ts" + }, + "remote": { + "https://deno.land/std@0.224.0/dotenv/mod.ts": "0180eaeedaaf88647318811cdaa418cc64dc51fb08354f91f5f480d0a1309f7d", + "https://deno.land/std@0.224.0/dotenv/parse.ts": "09977ff88dfd1f24f9973a338f0f91bbdb9307eb5ff6085446e7c423e4c7ba0c", + "https://deno.land/std@0.224.0/dotenv/stringify.ts": "275da322c409170160440836342eaa7cf012a1d11a7e700d8ca4e7f2f8aa4615", + "https://deno.land/std@0.224.0/encoding/_util.ts": "beacef316c1255da9bc8e95afb1fa56ed69baef919c88dc06ae6cb7a6103d376", + "https://deno.land/std@0.224.0/encoding/hex.ts": "6270f25e5d85f99fcf315278670ba012b04b7c94b67715b53f30d03249687c07", + "https://deno.land/std@0.92.0/encoding/base64.ts": "eecae390f1f1d1cae6f6c6d732ede5276bf4b9cd29b1d281678c054dc5cc009e", + "https://deno.land/std@0.92.0/encoding/hex.ts": "f952e0727bddb3b2fd2e6889d104eacbd62e92091f540ebd6459317a61932d9b", + "https://deno.land/std@0.92.0/hash/_wasm/hash.ts": "cb6ad1ab429f8ac9d6eae48f3286e08236d662e1a2e5cfd681ba1c0f17375895", + "https://deno.land/std@0.92.0/hash/_wasm/wasm.js": "94b1b997ae6fb4e6d2156bcea8f79cfcd1e512a91252b08800a92071e5e84e1a", + "https://deno.land/std@0.92.0/hash/mod.ts": "5d032bd34186cda2f8d17fc122d621430953a6030d4b3f11172004715e3e2441", + "https://deno.land/x/crypto@v0.10.1/deps.ts": "56b8597c13a678440de3c6fbfbec4e07259dce8f31d0b03c86b2a9bebf00f618", + "https://deno.land/x/crypto@v0.10.1/hmac.ts": "27d26371cff042fb12130fda2509daf29352c20bc770cbf24022fc14710994b8", + "https://deno.land/x/crypto@v0.10.1/src/hmac/mod.ts": "acf992ed0d9c3735a09d0f377a25d583a5761b4cbbf367678efe40ca79cd30ea", + "https://deno.land/x/hono@v4.3.11/client/client.ts": "dcda3887257fa3164db7b32c56665c6e757f0ef047a14f3f9599ef41725c1525", + "https://deno.land/x/hono@v4.3.11/client/index.ts": "30def535310a37bede261f1b23d11a9758983b8e9d60a6c56309cee5f6746ab2", + "https://deno.land/x/hono@v4.3.11/client/utils.ts": "8be84b49c5c7952666875a8e901fde3044c85c853ea6ba3a7e2c0468478459c0", + "https://deno.land/x/hono@v4.3.11/compose.ts": "37d6e33b7db80e4c43a0629b12fd3a1e3406e7d9e62a4bfad4b30426ea7ae4f1", + "https://deno.land/x/hono@v4.3.11/context.ts": "facfd749d823a645039571d66d9d228f5ae6836818b65d3b6c4c6891adfe071e", + "https://deno.land/x/hono@v4.3.11/helper/cookie/index.ts": "689c84eae410f0444a4598f136a4f859b9122ec6f790dff74412d34405883db8", + "https://deno.land/x/hono@v4.3.11/hono-base.ts": "fd7e9c1bba1e13119e95158270011784da3a7c3014c149ba0700e700f840ae0d", + "https://deno.land/x/hono@v4.3.11/hono.ts": "23edd0140bf0bd5a68c14ae96e5856a5cec6b844277e853b91025e91ea74f416", + "https://deno.land/x/hono@v4.3.11/http-exception.ts": "f5dd375e61aa4b764eb9b99dd45a7160f8317fd36d3f79ae22585b9a5e8ad7c5", + "https://deno.land/x/hono@v4.3.11/mod.ts": "35fd2a2e14b52365e0ad66f168b067363fd0a60d75cbcb1b01685b04de97d60e", + "https://deno.land/x/hono@v4.3.11/request.ts": "7b08602858e642d1626c3106c0bedc2aa8d97e30691a079351d9acef7c5955e6", + "https://deno.land/x/hono@v4.3.11/router.ts": "880316f561918fc197481755aac2165fdbe2f530b925c5357a9f98d6e2cc85c7", + "https://deno.land/x/hono@v4.3.11/router/linear-router/index.ts": "8a2a7144c50b1f4a92d9ee99c2c396716af144c868e10608255f969695efccd0", + "https://deno.land/x/hono@v4.3.11/router/linear-router/router.ts": "928d29894e4b45b047a4f453c7f1745c8b1869cd68447e1cb710c7bbf99a4e29", + "https://deno.land/x/hono@v4.3.11/router/pattern-router/index.ts": "304a66c50e243872037ed41c7dd79ed0c89d815e17e172e7ad7cdc4bc07d3383", + "https://deno.land/x/hono@v4.3.11/router/pattern-router/router.ts": "1b5f68e6af942579d3a40ee834294fea3d1f05fd5f70514e46ae301dd0107e46", + "https://deno.land/x/hono@v4.3.11/router/reg-exp-router/index.ts": "52755829213941756159b7a963097bafde5cc4fc22b13b1c7c9184dc0512d1db", + "https://deno.land/x/hono@v4.3.11/router/reg-exp-router/node.ts": "7efaa6f4301efc2aad0519c84973061be8555da02e5868409293a1fd98536aaf", + "https://deno.land/x/hono@v4.3.11/router/reg-exp-router/router.ts": "632f2fa426b3e45a66aeed03f7205dad6d13e8081bed6f8d1d987b6cad8fb455", + "https://deno.land/x/hono@v4.3.11/router/reg-exp-router/trie.ts": "852ce7207e6701e47fa30889a0d2b8bfcd56d8862c97e7bc9831e0a64bd8835f", + "https://deno.land/x/hono@v4.3.11/router/smart-router/index.ts": "74f9b4fe15ea535900f2b9b048581915f12fe94e531dd2b0032f5610e61c3bef", + "https://deno.land/x/hono@v4.3.11/router/smart-router/router.ts": "dc22a8505a0f345476f07dca3054c0c50a64d7b81c9af5a904476490dfd5cbb4", + "https://deno.land/x/hono@v4.3.11/router/trie-router/index.ts": "3eb75e7f71ba81801631b30de6b1f5cefb2c7239c03797e2b2cbab5085911b41", + "https://deno.land/x/hono@v4.3.11/router/trie-router/node.ts": "d3e00e8f1ba7fb26896459d5bba882356891a07793387c4655d1864c519a91de", + "https://deno.land/x/hono@v4.3.11/router/trie-router/router.ts": "54ced78d35676302c8fcdda4204f7bdf5a7cc907fbf9967c75674b1e394f830d", + "https://deno.land/x/hono@v4.3.11/utils/body.ts": "774cb319dfbe886a9d39f12c43dea15a39f9d01e45de0323167cdd5d0aad14d4", + "https://deno.land/x/hono@v4.3.11/utils/buffer.ts": "2fae689954b427b51fb84ad02bed11a72eae96692c2973802b3b4c1e39cd5b9c", + "https://deno.land/x/hono@v4.3.11/utils/cookie.ts": "662529d55703d2c0bad8736cb1274eb97524c0ef7882d99254fc7c8fa925b46c", + "https://deno.land/x/hono@v4.3.11/utils/crypto.ts": "bda0e141bbe46d3a4a20f8fbcb6380d473b617123d9fdfa93e4499410b537acc", + "https://deno.land/x/hono@v4.3.11/utils/html.ts": "6ea4f6bf41587a51607dff7a6d2865ef4d5001e4203b07e5c8a45b63a098e871", + "https://deno.land/x/hono@v4.3.11/utils/url.ts": "855169632c61d03703bd08cafb27664ba3fdb352892f01687d5cce8fd49e3cb1", + "https://deno.land/x/hono@v4.3.11/validator/index.ts": "6c986e8b91dcf857ecc8164a506ae8eea8665792a4ff7215471df669c632ae7c", + "https://deno.land/x/hono@v4.3.11/validator/validator.ts": "53f3d2ad442e22f0bc2d85b7d8d90320d4e5ecf5fdd58882f906055d33a18e13", + "https://deno.land/x/hono@v4.3.6/client/client.ts": "dcda3887257fa3164db7b32c56665c6e757f0ef047a14f3f9599ef41725c1525", + "https://deno.land/x/hono@v4.3.6/client/index.ts": "30def535310a37bede261f1b23d11a9758983b8e9d60a6c56309cee5f6746ab2", + "https://deno.land/x/hono@v4.3.6/client/utils.ts": "8be84b49c5c7952666875a8e901fde3044c85c853ea6ba3a7e2c0468478459c0", + "https://deno.land/x/hono@v4.3.6/compose.ts": "37d6e33b7db80e4c43a0629b12fd3a1e3406e7d9e62a4bfad4b30426ea7ae4f1", + "https://deno.land/x/hono@v4.3.6/context.ts": "c7b59d259bcfe5187c27c537f889def0baab56f98e8e5a4456546023e70717a5", + "https://deno.land/x/hono@v4.3.6/helper/cookie/index.ts": "689c84eae410f0444a4598f136a4f859b9122ec6f790dff74412d34405883db8", + "https://deno.land/x/hono@v4.3.6/hono-base.ts": "fd7e9c1bba1e13119e95158270011784da3a7c3014c149ba0700e700f840ae0d", + "https://deno.land/x/hono@v4.3.6/hono.ts": "23edd0140bf0bd5a68c14ae96e5856a5cec6b844277e853b91025e91ea74f416", + "https://deno.land/x/hono@v4.3.6/http-exception.ts": "cd387c6f7357db375ac3375f0346c6da80b46193b661881f660d6b15293fc086", + "https://deno.land/x/hono@v4.3.6/mod.ts": "35fd2a2e14b52365e0ad66f168b067363fd0a60d75cbcb1b01685b04de97d60e", + "https://deno.land/x/hono@v4.3.6/request.ts": "7b08602858e642d1626c3106c0bedc2aa8d97e30691a079351d9acef7c5955e6", + "https://deno.land/x/hono@v4.3.6/router.ts": "880316f561918fc197481755aac2165fdbe2f530b925c5357a9f98d6e2cc85c7", + "https://deno.land/x/hono@v4.3.6/router/linear-router/index.ts": "8a2a7144c50b1f4a92d9ee99c2c396716af144c868e10608255f969695efccd0", + "https://deno.land/x/hono@v4.3.6/router/linear-router/router.ts": "928d29894e4b45b047a4f453c7f1745c8b1869cd68447e1cb710c7bbf99a4e29", + "https://deno.land/x/hono@v4.3.6/router/pattern-router/index.ts": "304a66c50e243872037ed41c7dd79ed0c89d815e17e172e7ad7cdc4bc07d3383", + "https://deno.land/x/hono@v4.3.6/router/pattern-router/router.ts": "1b5f68e6af942579d3a40ee834294fea3d1f05fd5f70514e46ae301dd0107e46", + "https://deno.land/x/hono@v4.3.6/router/reg-exp-router/index.ts": "52755829213941756159b7a963097bafde5cc4fc22b13b1c7c9184dc0512d1db", + "https://deno.land/x/hono@v4.3.6/router/reg-exp-router/node.ts": "7efaa6f4301efc2aad0519c84973061be8555da02e5868409293a1fd98536aaf", + "https://deno.land/x/hono@v4.3.6/router/reg-exp-router/router.ts": "632f2fa426b3e45a66aeed03f7205dad6d13e8081bed6f8d1d987b6cad8fb455", + "https://deno.land/x/hono@v4.3.6/router/reg-exp-router/trie.ts": "852ce7207e6701e47fa30889a0d2b8bfcd56d8862c97e7bc9831e0a64bd8835f", + "https://deno.land/x/hono@v4.3.6/router/smart-router/index.ts": "74f9b4fe15ea535900f2b9b048581915f12fe94e531dd2b0032f5610e61c3bef", + "https://deno.land/x/hono@v4.3.6/router/smart-router/router.ts": "dc22a8505a0f345476f07dca3054c0c50a64d7b81c9af5a904476490dfd5cbb4", + "https://deno.land/x/hono@v4.3.6/router/trie-router/index.ts": "3eb75e7f71ba81801631b30de6b1f5cefb2c7239c03797e2b2cbab5085911b41", + "https://deno.land/x/hono@v4.3.6/router/trie-router/node.ts": "d3e00e8f1ba7fb26896459d5bba882356891a07793387c4655d1864c519a91de", + "https://deno.land/x/hono@v4.3.6/router/trie-router/router.ts": "54ced78d35676302c8fcdda4204f7bdf5a7cc907fbf9967c75674b1e394f830d", + "https://deno.land/x/hono@v4.3.6/utils/body.ts": "774cb319dfbe886a9d39f12c43dea15a39f9d01e45de0323167cdd5d0aad14d4", + "https://deno.land/x/hono@v4.3.6/utils/buffer.ts": "2fae689954b427b51fb84ad02bed11a72eae96692c2973802b3b4c1e39cd5b9c", + "https://deno.land/x/hono@v4.3.6/utils/cookie.ts": "6eaaf6909a4ae11f6c82404e9398e1c247e3f1854d73994a9e2e6fc3cdf7b584", + "https://deno.land/x/hono@v4.3.6/utils/crypto.ts": "bda0e141bbe46d3a4a20f8fbcb6380d473b617123d9fdfa93e4499410b537acc", + "https://deno.land/x/hono@v4.3.6/utils/html.ts": "6ea4f6bf41587a51607dff7a6d2865ef4d5001e4203b07e5c8a45b63a098e871", + "https://deno.land/x/hono@v4.3.6/utils/url.ts": "855169632c61d03703bd08cafb27664ba3fdb352892f01687d5cce8fd49e3cb1", + "https://deno.land/x/hono@v4.3.6/validator/index.ts": "6c986e8b91dcf857ecc8164a506ae8eea8665792a4ff7215471df669c632ae7c", + "https://deno.land/x/hono@v4.3.6/validator/validator.ts": "53f3d2ad442e22f0bc2d85b7d8d90320d4e5ecf5fdd58882f906055d33a18e13", + "https://esm.sh/simple-git@3.24.0": "6ffb03d7d4331740beab3eae6ac8037a2c08f3ba589407c1be52136ac73c3b61", + "https://esm.sh/simple-git@3.27.0": "b663b87d6b9c77804224db2b254cdb81c15fe27b571eed6c0c70bb61a6faa8b6", + "https://esm.sh/v135/@kwsites/file-exists@1.1.1/denonext/file-exists.mjs": "97f9c5b9ea2ef3be7ee61534da62e550ab94726b5687a5a71ce981a9336849c1", + "https://esm.sh/v135/@kwsites/promise-deferred@1.1.1/denonext/promise-deferred.mjs": "5381e8a58b7101dda78b9f256fe121583ff47cadd07da60d9ec08f0fbc0a1fff", + "https://esm.sh/v135/debug@4.3.4/denonext/debug.mjs": "d2ebf776ea77aa7df1b4460eb2a4aab245a9d5b19f11fa1db25f756b350bae9d", + "https://esm.sh/v135/debug@4.3.7/denonext/debug.mjs": "83a87de38124da10cfb7a9ee1d8a643bdb90f29191e5bd7d2ef98c172cc5223a", + "https://esm.sh/v135/ms@2.1.2/denonext/ms.mjs": "aa4dc45ba72554c5011168f8910cc646c37af53cfff1a15a4decced838b8eb14", + "https://esm.sh/v135/ms@2.1.3/denonext/ms.mjs": "0f06597e493998793b8f52232868976128fca326eec3bcd56f10e66e6efd1839", + "https://esm.sh/v135/simple-git@3.24.0/denonext/simple-git.mjs": "c2b2c8b71e1812066c8c73b2ab6c1e6c03f0d51283b448e5d82827791fc19112", + "https://esm.sh/v135/simple-git@3.27.0/denonext/simple-git.mjs": "b5510585ca8e279aa3de5c11ddb7eb4df827bbaa63f6a0aa9593d05c8b445404" + } +} diff --git a/www/src/favicon.svg b/www/public/favicon.svg similarity index 100% rename from www/src/favicon.svg rename to www/public/favicon.svg diff --git a/www/src/font/3270-Regular.ttf b/www/public/font/3270-Regular.ttf similarity index 100% rename from www/src/font/3270-Regular.ttf rename to www/public/font/3270-Regular.ttf diff --git a/www/src/font/3270-Regular.woff b/www/public/font/3270-Regular.woff similarity index 100% rename from www/src/font/3270-Regular.woff rename to www/public/font/3270-Regular.woff diff --git a/www/src/font/3270Condensed-Regular.ttf b/www/public/font/3270Condensed-Regular.ttf similarity index 79% rename from www/src/font/3270Condensed-Regular.ttf rename to www/public/font/3270Condensed-Regular.ttf index 7a77e75..e838f4e 100644 Binary files a/www/src/font/3270Condensed-Regular.ttf and b/www/public/font/3270Condensed-Regular.ttf differ diff --git a/www/public/font/3270Condensed-Regular.woff b/www/public/font/3270Condensed-Regular.woff new file mode 100644 index 0000000..e69de29 diff --git a/www/public/font/3270Condensed-Regular.woff2 b/www/public/font/3270Condensed-Regular.woff2 new file mode 100644 index 0000000..a0e99bf Binary files /dev/null and b/www/public/font/3270Condensed-Regular.woff2 differ diff --git a/www/src/font/3270SemiCondensed-Regular.ttf b/www/public/font/3270SemiCondensed-Regular.ttf similarity index 100% rename from www/src/font/3270SemiCondensed-Regular.ttf rename to www/public/font/3270SemiCondensed-Regular.ttf diff --git a/www/src/font/3270SemiCondensed-Regular.woff b/www/public/font/3270SemiCondensed-Regular.woff similarity index 100% rename from www/src/font/3270SemiCondensed-Regular.woff rename to www/public/font/3270SemiCondensed-Regular.woff diff --git a/www/src/font/LICENSE.txt b/www/public/font/LICENSE.txt similarity index 100% rename from www/src/font/LICENSE.txt rename to www/public/font/LICENSE.txt diff --git a/www/public/index.html b/www/public/index.html new file mode 100644 index 0000000..6c1d30b --- /dev/null +++ b/www/public/index.html @@ -0,0 +1,480 @@ + + + + + + zoom-platform.sh + + + + + + + + + + + + + + + + + + + + + +
+
+
+
curl zoom-platform.sh | sh
+ +
+ +
+
+
+

zoom-platform.sh is an helpful tool to streamline installation, updating, and + playing Windows games from ZOOM Platform on Linux using umu and + Proton.

+ +

The script also helps you run our Windows installers on Linux and comes with some handy features to make sure + the process goes smoothly.

+ +

That includes safety checks, handling updates, installing DLCs, creating desktop entries, a simple + uninstaller, and of course automatically applying protonfixes.

+ +

The umu-protonfixes database contains + user submitted protonfixes, even for games not fully supported by Steam.

+
+ + +
+

What is UMU/OWC?

+

Here is how the Open Wine + Components group describes the project:

+
+ We're a group of people who work on wine-oriented projects that decided to get together to unify our ideas for + the benefit of each other's projects across the board, as well as future projects that may use what we + provide. The original goal with our main project UMU is to have a unified standard for running games with + proton outside of steam as well as a collective shared database of known game fixes that everyone can use and + contribute to. +
+ +

I thought Proton was a Steam thing, does Steam need to be installed?

+

Noooope, to keep things short; OWC forked parts of the Steam Linux Runtime and Proton to make them work + without Steam.

+ +

Do all games on ZOOM Platform work with this?

+

We tested our most popular games, and we submitted our own fixes for many of them; some work out of the box, + and some may not work at all.

+

Your mileage may vary, but feel free to submit any fixes to umu-protonfixes.

+ +

Where can I submit my own fixes to help make games work?

+

If you're the tinkerer type, the umu-protonfixes repo is open for anyone + to + contribute to. Check out their project and look at existing fixes for some examples. Any fixes submitted will + help people run that particular game in the future.

+ +

Can I launch installed games through Steam?

+

Depending on your distro, either use the "Add a Non-Steam Game..." option in Steam then select a game from + the list, or right-click the desktop entry then click "Add to Steam".

+ +

I have more questions!1!!!1

+

Join our Discord if you want to talk about Linux stuff at the #penguin-zone!

+
+
+
+ + +
+
+ + + + \ No newline at end of file diff --git a/www/src/og.png b/www/public/og.png similarity index 100% rename from www/src/og.png rename to www/public/og.png diff --git a/www/server.ts b/www/server.ts new file mode 100644 index 0000000..5874e63 --- /dev/null +++ b/www/server.ts @@ -0,0 +1,96 @@ +import { Hono } from 'jsr:@hono/hono' +import { crypto } from 'jsr:@std/crypto' +import { decodeHex } from 'jsr:@std/encoding/hex' +import { load } from 'jsr:@std/dotenv' +import { simpleGit } from 'https://esm.sh/simple-git@3.27.0' + +const env = await load() + +const buildScriptFrom = async (src: string, hash: string = '') => { + const command = new Deno.Command('sh', { + args: [ + '../build.sh', + src, + 'innoextract-upx', + hash, + ], + }) + const { code, stdout } = await command.output() + if (code === 0) { + return new TextDecoder().decode(stdout) + } + return `#!/bin/sh\nprintf "error building script from ${hash}\\n"` +} + +const ac = new AbortController() +const app = new Hono() + +app.get('/:commithash{[a-f\\d]{7,40}}', async (ctx) => { + const commithash = ctx.req.param('commithash') + try { + const srcFile = await simpleGit().show(`${commithash}:src.sh`) + const gittag = await simpleGit().tag(['--points-at', commithash]) + let forcedVersion = gittag.trim() + if (!forcedVersion) forcedVersion = commithash.substring(0, 7) + const script = await buildScriptFrom(srcFile, forcedVersion) + return ctx.text(script) + } catch (err) { + // + } + return ctx.text(commithash, 404) +}) + +// latest commit is always built in repo root +app.get('/latest', async (ctx) => { + return ctx.text(await Deno.readTextFile('../zoom-platform.sh')) +}) + +// hook to kill server, should only trigger on push or release +// when the server restarts the latest changes will get pulled +app.post('/gh-hook', async (ctx) => { + const rawBody = await ctx.req.raw.text() + const sigHeader = ctx.req.header('X-Hub-Signature-256') + if (!rawBody || !sigHeader) return ctx.body(null, 401) + + const parts = sigHeader.split('=') + const sigHex = parts[1] + + try { + const te = new TextEncoder() + const key = await crypto.subtle.importKey( + 'raw', + te.encode(env['GH_HOOK_SECRET']), + { name: 'HMAC', hash: { name: 'SHA-256' } }, + false, + ['sign', 'verify'], + ) + const data = te.encode(rawBody) + const verified = await crypto.subtle.verify( + 'HMAC', + key, + decodeHex(sigHex), + data, + ) + if (!verified) { + return ctx.status(401) + } + } catch (error) { + return ctx.status(401) + } + + setTimeout(() => { + ac.abort() + }, 1000) + + return ctx.text('bye', 200) +}) + +const server = Deno.serve({ + port: 23412, + hostname: '0.0.0.0', + signal: ac.signal, +}, app.fetch) + +server.finished.then(() => { + console.log('server is kill') +}) diff --git a/www/src/font/3270Condensed-Regular.woff b/www/src/font/3270Condensed-Regular.woff deleted file mode 100644 index d17eb5e..0000000 Binary files a/www/src/font/3270Condensed-Regular.woff and /dev/null differ diff --git a/www/src/index.html b/www/src/index.html deleted file mode 100644 index f35f737..0000000 --- a/www/src/index.html +++ /dev/null @@ -1,306 +0,0 @@ - - - - - zoom-platform.sh - - - - - - - - - - - - - - - - - - - - - -
-
-
-
curl zoom-platform.sh | sh
- -
- -
-
-

zoom-platform.sh is an official tool to streamline installation, updating, and playing Windows games from ZOOM Platform on Linux using UMU and Proton.

-

The script helps you run our Windows installers on Linux and comes with some handy features to make sure the process goes smoothly. Games are launched using UMU with fixes applied from the UMU protonfixes database.

-

UMU is developed and maintained by "Open Wine Components" (OWC) a collective of like-minded individuals working together to improve Linux gaming.

- - - -
-

I thought Proton was a Steam thing, does Steam need to be installed?

-

Noooope, to keep things short; OWC forked parts of the Steam Linux Runtime and Proton to make them work without Steam.

- -

Where can I submit my own fixes to help make games work?

-

If you're the tinkerer type, the UMU protonfixes repo is open for anyone to contribute to. Check out their project and look at existing fixes for some examples. Any fixes submitted will help people run that particular game in the future.

- -

Do all games on ZOOM Platform work with this?

-

We tested our most popular games, and we submitted our own fixes for many of them; some work out of the box. However, some may not work at all.

-

Your mileage may vary, but feel free to submit any fixes to umu-protonfixes.

- -

Can I launch installed games through Steam?

-

Depending on your distro, either use the "Add a Non-Steam Game..." option in Steam then select a game from the list, or right-click the desktop entry then click "Add to Steam".

- -

Are you affiliated with OWC?

-

Not really, we're just using UMU for this and contribute fixes on occasion. The people working on UMU are doing great work, so we wanted to point them out!

- -

I have more questions!1!!!1

-

Join our Discord if you want to talk about Linux stuff at the #penguin-zone!

-
-
-
- - - \ No newline at end of file