This commit is contained in:
root 2023-11-06 22:40:14 +02:00
parent 709dda6f6a
commit 2ffcb8ede8
33 changed files with 807 additions and 0 deletions

60
ADD.html Normal file
View File

@ -0,0 +1,60 @@
<!doctype html>
<html>
<head>
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" />
<style>
html,
body,
#jsdos {
background: black;
width: 100%;
height: 100%;
margin: 0;
padding: 0;
}
* {
-webkit-touch-callout: none;
-webkit-user-select: none;
-khtml-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
-ms-touch-action: none;
-ms-content-zooming: none;
touch-action: none;
}
</style>
<script src="/static/js-dos/src/js-dos.js"></script>
<link href="/static/js-dos/src/js-dos.css" rel="stylesheet">
</head>
<body>
<div id="jsdos"></div>
<script>
let bundleUrl = "https://www.ngtech.co.il/static/js-dos/games/ADD.zip";
let clientId = null;
emulators.pathPrefix = "/static/js-dos/src/";
Dos(document.getElementById("jsdos"), {
hardware: window.hardware,
withNetworkingApi: false,
withExperimentalApi: true,
clientId: (userGesture) => {
if (!userGesture) {
return Promise.resolve(clientId);
}
clientId = {
namespace: "test",
id: "ngtech1ltd@gmail.com",
};
return Promise.resolve(clientId);
}
}).run(bundleUrl);
</script>
</body>
</html>

60
ALEF1.html Normal file
View File

@ -0,0 +1,60 @@
<!doctype html>
<html>
<head>
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" />
<style>
html,
body,
#jsdos {
background: black;
width: 100%;
height: 100%;
margin: 0;
padding: 0;
}
* {
-webkit-touch-callout: none;
-webkit-user-select: none;
-khtml-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
-ms-touch-action: none;
-ms-content-zooming: none;
touch-action: none;
}
</style>
<script src="/static/js-dos/src/js-dos.js"></script>
<link href="/static/js-dos/src/js-dos.css" rel="stylesheet">
</head>
<body>
<div id="jsdos"></div>
<script>
let bundleUrl = "https://www.ngtech.co.il/static/js-dos/games/ALEF1.zip";
let clientId = null;
emulators.pathPrefix = "/static/js-dos/src/";
Dos(document.getElementById("jsdos"), {
hardware: window.hardware,
withNetworkingApi: false,
withExperimentalApi: true,
clientId: (userGesture) => {
if (!userGesture) {
return Promise.resolve(clientId);
}
clientId = {
namespace: "test",
id: "ngtech1ltd@gmail.com",
};
return Promise.resolve(clientId);
}
}).run(bundleUrl);
</script>
</body>
</html>

60
ALEF2.html Normal file
View File

@ -0,0 +1,60 @@
<!doctype html>
<html>
<head>
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" />
<style>
html,
body,
#jsdos {
background: black;
width: 100%;
height: 100%;
margin: 0;
padding: 0;
}
* {
-webkit-touch-callout: none;
-webkit-user-select: none;
-khtml-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
-ms-touch-action: none;
-ms-content-zooming: none;
touch-action: none;
}
</style>
<script src="/static/js-dos/src/js-dos.js"></script>
<link href="/static/js-dos/src/js-dos.css" rel="stylesheet">
</head>
<body>
<div id="jsdos"></div>
<script>
let bundleUrl = "https://www.ngtech.co.il/static/js-dos/games/ALEF2.zip";
let clientId = null;
emulators.pathPrefix = "/static/js-dos/src/";
Dos(document.getElementById("jsdos"), {
hardware: window.hardware,
withNetworkingApi: false,
withExperimentalApi: true,
clientId: (userGesture) => {
if (!userGesture) {
return Promise.resolve(clientId);
}
clientId = {
namespace: "test",
id: "ngtech1ltd@gmail.com",
};
return Promise.resolve(clientId);
}
}).run(bundleUrl);
</script>
</body>
</html>

60
ASTRO.html Normal file
View File

@ -0,0 +1,60 @@
<!doctype html>
<html>
<head>
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" />
<style>
html,
body,
#jsdos {
background: black;
width: 100%;
height: 100%;
margin: 0;
padding: 0;
}
* {
-webkit-touch-callout: none;
-webkit-user-select: none;
-khtml-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
-ms-touch-action: none;
-ms-content-zooming: none;
touch-action: none;
}
</style>
<script src="/static/js-dos/src/js-dos.js"></script>
<link href="/static/js-dos/src/js-dos.css" rel="stylesheet">
</head>
<body>
<div id="jsdos"></div>
<script>
let bundleUrl = "https://www.ngtech.co.il/static/js-dos/games/ASTRO.zip";
let clientId = null;
emulators.pathPrefix = "/static/js-dos/src/";
Dos(document.getElementById("jsdos"), {
hardware: window.hardware,
withNetworkingApi: false,
withExperimentalApi: true,
clientId: (userGesture) => {
if (!userGesture) {
return Promise.resolve(clientId);
}
clientId = {
namespace: "test",
id: "ngtech1ltd@gmail.com",
};
return Promise.resolve(clientId);
}
}).run(bundleUrl);
</script>
</body>
</html>

60
KIVUN.html Normal file
View File

@ -0,0 +1,60 @@
<!doctype html>
<html>
<head>
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" />
<style>
html,
body,
#jsdos {
background: black;
width: 100%;
height: 100%;
margin: 0;
padding: 0;
}
* {
-webkit-touch-callout: none;
-webkit-user-select: none;
-khtml-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
-ms-touch-action: none;
-ms-content-zooming: none;
touch-action: none;
}
</style>
<script src="/static/js-dos/src/js-dos.js"></script>
<link href="/static/js-dos/src/js-dos.css" rel="stylesheet">
</head>
<body>
<div id="jsdos"></div>
<script>
let bundleUrl = "https://www.ngtech.co.il/static/js-dos/games/KIVUN.zip";
let clientId = null;
emulators.pathPrefix = "/static/js-dos/src/";
Dos(document.getElementById("jsdos"), {
hardware: window.hardware,
withNetworkingApi: false,
withExperimentalApi: true,
clientId: (userGesture) => {
if (!userGesture) {
return Promise.resolve(clientId);
}
clientId = {
namespace: "test",
id: "ngtech1ltd@gmail.com",
};
return Promise.resolve(clientId);
}
}).run(bundleUrl);
</script>
</body>
</html>

60
MATH.html Normal file
View File

@ -0,0 +1,60 @@
<!doctype html>
<html>
<head>
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" />
<style>
html,
body,
#jsdos {
background: black;
width: 100%;
height: 100%;
margin: 0;
padding: 0;
}
* {
-webkit-touch-callout: none;
-webkit-user-select: none;
-khtml-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
-ms-touch-action: none;
-ms-content-zooming: none;
touch-action: none;
}
</style>
<script src="/static/js-dos/src/js-dos.js"></script>
<link href="/static/js-dos/src/js-dos.css" rel="stylesheet">
</head>
<body>
<div id="jsdos"></div>
<script>
let bundleUrl = "https://www.ngtech.co.il/static/js-dos/games/MATH.zip";
let clientId = null;
emulators.pathPrefix = "/static/js-dos/src/";
Dos(document.getElementById("jsdos"), {
hardware: window.hardware,
withNetworkingApi: false,
withExperimentalApi: true,
clientId: (userGesture) => {
if (!userGesture) {
return Promise.resolve(clientId);
}
clientId = {
namespace: "test",
id: "ngtech1ltd@gmail.com",
};
return Promise.resolve(clientId);
}
}).run(bundleUrl);
</script>
</body>
</html>

60
MULTI.html Normal file
View File

@ -0,0 +1,60 @@
<!doctype html>
<html>
<head>
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" />
<style>
html,
body,
#jsdos {
background: black;
width: 100%;
height: 100%;
margin: 0;
padding: 0;
}
* {
-webkit-touch-callout: none;
-webkit-user-select: none;
-khtml-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
-ms-touch-action: none;
-ms-content-zooming: none;
touch-action: none;
}
</style>
<script src="/static/js-dos/src/js-dos.js"></script>
<link href="/static/js-dos/src/js-dos.css" rel="stylesheet">
</head>
<body>
<div id="jsdos"></div>
<script>
let bundleUrl = "https://www.ngtech.co.il/static/js-dos/games/MULTI.zip";
let clientId = null;
emulators.pathPrefix = "/static/js-dos/src/";
Dos(document.getElementById("jsdos"), {
hardware: window.hardware,
withNetworkingApi: false,
withExperimentalApi: true,
clientId: (userGesture) => {
if (!userGesture) {
return Promise.resolve(clientId);
}
clientId = {
namespace: "test",
id: "ngtech1ltd@gmail.com",
};
return Promise.resolve(clientId);
}
}).run(bundleUrl);
</script>
</body>
</html>

60
READ.html Normal file
View File

@ -0,0 +1,60 @@
<!doctype html>
<html>
<head>
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" />
<style>
html,
body,
#jsdos {
background: black;
width: 100%;
height: 100%;
margin: 0;
padding: 0;
}
* {
-webkit-touch-callout: none;
-webkit-user-select: none;
-khtml-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
-ms-touch-action: none;
-ms-content-zooming: none;
touch-action: none;
}
</style>
<script src="/static/js-dos/src/js-dos.js"></script>
<link href="/static/js-dos/src/js-dos.css" rel="stylesheet">
</head>
<body>
<div id="jsdos"></div>
<script>
let bundleUrl = "https://www.ngtech.co.il/static/js-dos/games/READ.zip";
let clientId = null;
emulators.pathPrefix = "/static/js-dos/src/";
Dos(document.getElementById("jsdos"), {
hardware: window.hardware,
withNetworkingApi: false,
withExperimentalApi: true,
clientId: (userGesture) => {
if (!userGesture) {
return Promise.resolve(clientId);
}
clientId = {
namespace: "test",
id: "ngtech1ltd@gmail.com",
};
return Promise.resolve(clientId);
}
}).run(bundleUrl);
</script>
</body>
</html>

60
SHEVER.html Normal file
View File

@ -0,0 +1,60 @@
<!doctype html>
<html>
<head>
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" />
<style>
html,
body,
#jsdos {
background: black;
width: 100%;
height: 100%;
margin: 0;
padding: 0;
}
* {
-webkit-touch-callout: none;
-webkit-user-select: none;
-khtml-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
-ms-touch-action: none;
-ms-content-zooming: none;
touch-action: none;
}
</style>
<script src="/static/js-dos/src/js-dos.js"></script>
<link href="/static/js-dos/src/js-dos.css" rel="stylesheet">
</head>
<body>
<div id="jsdos"></div>
<script>
let bundleUrl = "https://www.ngtech.co.il/static/js-dos/games/SHEVER.zip";
let clientId = null;
emulators.pathPrefix = "/static/js-dos/src/";
Dos(document.getElementById("jsdos"), {
hardware: window.hardware,
withNetworkingApi: false,
withExperimentalApi: true,
clientId: (userGesture) => {
if (!userGesture) {
return Promise.resolve(clientId);
}
clientId = {
namespace: "test",
id: "ngtech1ltd@gmail.com",
};
return Promise.resolve(clientId);
}
}).run(bundleUrl);
</script>
</body>
</html>

60
THINK1.html Normal file
View File

@ -0,0 +1,60 @@
<!doctype html>
<html>
<head>
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" />
<style>
html,
body,
#jsdos {
background: black;
width: 100%;
height: 100%;
margin: 0;
padding: 0;
}
* {
-webkit-touch-callout: none;
-webkit-user-select: none;
-khtml-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
-ms-touch-action: none;
-ms-content-zooming: none;
touch-action: none;
}
</style>
<script src="/static/js-dos/src/js-dos.js"></script>
<link href="/static/js-dos/src/js-dos.css" rel="stylesheet">
</head>
<body>
<div id="jsdos"></div>
<script>
let bundleUrl = "https://www.ngtech.co.il/static/js-dos/games/THINK1.zip";
let clientId = null;
emulators.pathPrefix = "/static/js-dos/src/";
Dos(document.getElementById("jsdos"), {
hardware: window.hardware,
withNetworkingApi: false,
withExperimentalApi: true,
clientId: (userGesture) => {
if (!userGesture) {
return Promise.resolve(clientId);
}
clientId = {
namespace: "test",
id: "ngtech1ltd@gmail.com",
};
return Promise.resolve(clientId);
}
}).run(bundleUrl);
</script>
</body>
</html>

60
THINK2.html Normal file
View File

@ -0,0 +1,60 @@
<!doctype html>
<html>
<head>
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" />
<style>
html,
body,
#jsdos {
background: black;
width: 100%;
height: 100%;
margin: 0;
padding: 0;
}
* {
-webkit-touch-callout: none;
-webkit-user-select: none;
-khtml-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
-ms-touch-action: none;
-ms-content-zooming: none;
touch-action: none;
}
</style>
<script src="/static/js-dos/src/js-dos.js"></script>
<link href="/static/js-dos/src/js-dos.css" rel="stylesheet">
</head>
<body>
<div id="jsdos"></div>
<script>
let bundleUrl = "https://www.ngtech.co.il/static/js-dos/games/THINK2.zip";
let clientId = null;
emulators.pathPrefix = "/static/js-dos/src/";
Dos(document.getElementById("jsdos"), {
hardware: window.hardware,
withNetworkingApi: false,
withExperimentalApi: true,
clientId: (userGesture) => {
if (!userGesture) {
return Promise.resolve(clientId);
}
clientId = {
namespace: "test",
id: "ngtech1ltd@gmail.com",
};
return Promise.resolve(clientId);
}
}).run(bundleUrl);
</script>
</body>
</html>

60
TRON.html Normal file
View File

@ -0,0 +1,60 @@
<!doctype html>
<html>
<head>
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" />
<style>
html,
body,
#jsdos {
background: black;
width: 100%;
height: 100%;
margin: 0;
padding: 0;
}
* {
-webkit-touch-callout: none;
-webkit-user-select: none;
-khtml-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
-ms-touch-action: none;
-ms-content-zooming: none;
touch-action: none;
}
</style>
<script src="/static/js-dos/src/js-dos.js"></script>
<link href="/static/js-dos/src/js-dos.css" rel="stylesheet">
</head>
<body>
<div id="jsdos"></div>
<script>
let bundleUrl = "https://www.ngtech.co.il/static/js-dos/games/TRON.zip";
let clientId = null;
emulators.pathPrefix = "/static/js-dos/src/";
Dos(document.getElementById("jsdos"), {
hardware: window.hardware,
withNetworkingApi: false,
withExperimentalApi: true,
clientId: (userGesture) => {
if (!userGesture) {
return Promise.resolve(clientId);
}
clientId = {
namespace: "test",
id: "ngtech1ltd@gmail.com",
};
return Promise.resolve(clientId);
}
}).run(bundleUrl);
</script>
</body>
</html>

16
docker/nginx/Dockerfile Normal file
View File

@ -0,0 +1,16 @@
ARG ALPINE_VERSION=3.18
FROM alpine:${ALPINE_VERSION} as alpine
RUN apk add --no-cache openssl nginx bash tzdata ca-certificates
COPY default.conf /etc/nginx/http.d/default.conf
COPY scripts/gen-self-signed-cert.sh /gen-self-signed-cert.sh
COPY scripts/start.sh /start.sh
WORKDIR /
RUN chmod +x /start.sh
CMD ["/start.sh"]

4
docker/nginx/Makefile Normal file
View File

@ -0,0 +1,4 @@
all:
echo OK
build:
podman build -t nginx-self-signed .

19
docker/nginx/default.conf Normal file
View File

@ -0,0 +1,19 @@
server {
listen 80 default_server;
listen [::]:80 default_server;
listen 443 ssl;
listen [::]:443 ssl;
ssl_certificate /etc/ssl/certs/self-signed.crt;
ssl_certificate_key /etc/ssl/private/self-signed.key;
# Everything is a 404
location / {
root /var/lib/nginx/html;
index index.html index.htm;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /var/lib/nginx/html;
}
}

View File

@ -0,0 +1,37 @@
#!/usr/bin/env bash
DOMAIN_NAME="$DOMAIN}"
DAYS_VALID=3650
CERT="0"
KEY="0"
CERT_FILE="/etc/ssl/certs/self-signed.crt"
KEY_FILE="/etc/ssl/private/self-signed.key"
stat "${CERT_FILE}"
if [ "$?" -eq "0" ];then
CERT="1"
fi
stat "${KEY_FILE}"
if [ "$?" -eq "0" ];then
KEY="1"
fi
if [[ "${KEY}" -eq "0" || "${CERT}" -eq "0" ]];then
echo "Creating self-signed certificate valid for ${DAYS_VALID} days for domain ${DOMAIN_NAME}" && \
openssl \
req -x509 \
-nodes \
-subj "/CN=${DOMAIN_NAME}}" \
-addext "subjectAltName=DNS:${DOMAIN_NAME}" \
-days ${DAYS_VALID} \
-newkey rsa:4096 -keyout "${KEY_FILE}" \
-out "${CERT_FILE}"
else
echo "Certificate and key already exist"
# verify that they both are OK
fi

8
docker/nginx/scripts/start.sh Executable file
View File

@ -0,0 +1,8 @@
#!/usr/bin/env bash
DOMAIN="gordi.ngtech.home"
bash /gen-self-signed-cert.sh "${DOMAIN}"
nginx -T
nginx -g 'daemon off;'

BIN
games/ADD.zip Normal file

Binary file not shown.

BIN
games/ALEF1.zip Normal file

Binary file not shown.

BIN
games/ALEF2.zip Normal file

Binary file not shown.

BIN
games/ASTRO.zip Normal file

Binary file not shown.

BIN
games/KIVUN.zip Normal file

Binary file not shown.

BIN
games/MATH.zip Normal file

Binary file not shown.

BIN
games/MULTI.zip Normal file

Binary file not shown.

BIN
games/READ.zip Normal file

Binary file not shown.

BIN
games/SHEVER.zip Normal file

Binary file not shown.

BIN
games/THINK1.zip Normal file

Binary file not shown.

BIN
games/THINK2.zip Normal file

Binary file not shown.

BIN
games/TRON.zip Normal file

Binary file not shown.

Binary file not shown.

3
software/load-heb.bat Normal file
View File

@ -0,0 +1,3 @@
MODE CON LINES=25
loadheb
rem vga-heb

BIN
software/loadheb.com Normal file

Binary file not shown.

BIN
software/vga-heb.exe Normal file

Binary file not shown.