underpost 2.8.885 → 2.8.886
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.env.production +3 -0
- package/.github/workflows/ghpkg.ci.yml +1 -1
- package/.github/workflows/npmpkg.ci.yml +1 -1
- package/.github/workflows/publish.ci.yml +5 -5
- package/.github/workflows/pwa-microservices-template-page.cd.yml +1 -1
- package/.github/workflows/pwa-microservices-template-test.ci.yml +1 -1
- package/CHANGELOG.md +145 -1
- package/Dockerfile +1 -1
- package/README.md +3 -3
- package/bin/build.js +18 -9
- package/bin/deploy.js +93 -187
- package/cli.md +2 -2
- package/manifests/deployment/dd-default-development/deployment.yaml +2 -2
- package/manifests/deployment/dd-test-development/deployment.yaml +54 -54
- package/manifests/deployment/dd-test-development/proxy.yaml +4 -4
- package/manifests/lxd/underpost-setup.sh +5 -5
- package/package.json +3 -3
- package/scripts/ssl.sh +164 -0
- package/src/cli/baremetal.js +7 -7
- package/src/cli/cloud-init.js +1 -1
- package/src/cli/cluster.js +10 -3
- package/src/cli/cron.js +1 -1
- package/src/cli/db.js +1 -1
- package/src/cli/deploy.js +33 -1
- package/src/cli/fs.js +2 -2
- package/src/cli/image.js +7 -0
- package/src/cli/monitor.js +33 -1
- package/src/cli/run.js +315 -51
- package/src/cli/script.js +32 -0
- package/src/cli/secrets.js +34 -0
- package/src/cli/test.js +42 -1
- package/src/client/components/core/Css.js +0 -8
- package/src/client/components/core/windowGetDimensions.js +229 -162
- package/src/index.js +2 -2
- package/src/mailer/MailerProvider.js +1 -0
- package/src/runtime/express/Express.js +12 -4
- package/src/runtime/lampp/Dockerfile +1 -1
- package/src/server/backup.js +20 -0
- package/src/server/client-build-live.js +12 -10
- package/src/server/client-build.js +136 -91
- package/src/server/client-dev-server.js +16 -2
- package/src/server/client-icons.js +19 -0
- package/src/server/conf.js +470 -60
- package/src/server/dns.js +184 -42
- package/src/server/downloader.js +65 -24
- package/src/server/object-layer.js +260 -162
- package/src/server/peer.js +2 -8
- package/src/server/proxy.js +93 -76
- package/src/server/runtime.js +15 -16
- package/src/server/ssr.js +4 -4
- package/src/server/tls.js +251 -0
- package/src/server/valkey.js +11 -10
- package/src/ws/IoInterface.js +2 -1
- package/src/ws/IoServer.js +2 -1
- package/src/ws/core/core.ws.connection.js +1 -1
- package/src/ws/core/core.ws.emit.js +1 -1
- package/src/ws/core/core.ws.server.js +1 -1
- package/manifests/maas/lxd-preseed.yaml +0 -32
- package/src/server/ssl.js +0 -108
- /package/{manifests/maas → scripts}/device-scan.sh +0 -0
- /package/{manifests/maas → scripts}/gpu-diag.sh +0 -0
- /package/{manifests/maas → scripts}/maas-setup.sh +0 -0
- /package/{manifests/maas → scripts}/nat-iptables.sh +0 -0
- /package/{manifests/maas → scripts}/nvim.sh +0 -0
- /package/{manifests/maas → scripts}/snap-clean.sh +0 -0
- /package/{manifests/maas → scripts}/ssh-cluster-info.sh +0 -0
package/bin/deploy.js
CHANGED
|
@@ -253,25 +253,32 @@ try {
|
|
|
253
253
|
{ env: 'development', port: 4000 },
|
|
254
254
|
{ env: 'test', port: 5000 },
|
|
255
255
|
];
|
|
256
|
-
let
|
|
257
|
-
const singleReplicaHosts = [];
|
|
256
|
+
let portOffset = 0;
|
|
258
257
|
for (const deployIdObj of dataDeploy) {
|
|
259
|
-
const { deployId
|
|
260
|
-
if (replicaHost && !singleReplicaHosts.includes(replicaHost)) singleReplicaHosts.push(replicaHost);
|
|
258
|
+
const { deployId } = deployIdObj;
|
|
261
259
|
const baseConfPath = fs.existsSync(`./engine-private/replica/${deployId}`)
|
|
262
260
|
? `./engine-private/replica`
|
|
263
261
|
: `./engine-private/conf`;
|
|
264
262
|
for (const envInstanceObj of dataEnv) {
|
|
265
263
|
const envPath = `${baseConfPath}/${deployId}/.env.${envInstanceObj.env}`;
|
|
266
264
|
const envObj = dotenv.parse(fs.readFileSync(envPath, 'utf8'));
|
|
267
|
-
envObj.PORT = envInstanceObj.port +
|
|
265
|
+
envObj.PORT = `${envInstanceObj.port + portOffset}`;
|
|
268
266
|
|
|
269
267
|
writeEnv(envPath, envObj);
|
|
270
268
|
}
|
|
271
269
|
const serverConf = loadReplicas(
|
|
272
270
|
JSON.parse(fs.readFileSync(`${baseConfPath}/${deployId}/conf.server.json`, 'utf8')),
|
|
273
271
|
);
|
|
274
|
-
for (const host of Object.keys(serverConf))
|
|
272
|
+
for (const host of Object.keys(serverConf)) {
|
|
273
|
+
for (const path of Object.keys(serverConf[host])) {
|
|
274
|
+
if (serverConf[host][path].singleReplica) {
|
|
275
|
+
portOffset--;
|
|
276
|
+
continue;
|
|
277
|
+
}
|
|
278
|
+
portOffset++;
|
|
279
|
+
if (serverConf[host][path].peer) portOffset++;
|
|
280
|
+
}
|
|
281
|
+
}
|
|
275
282
|
}
|
|
276
283
|
break;
|
|
277
284
|
|
|
@@ -430,11 +437,11 @@ try {
|
|
|
430
437
|
'utf8',
|
|
431
438
|
);
|
|
432
439
|
|
|
433
|
-
if (fs.existsSync(`./.github/workflows/docker-image.yml`))
|
|
440
|
+
if (fs.existsSync(`./.github/workflows/docker-image.ci.yml`))
|
|
434
441
|
fs.writeFileSync(
|
|
435
|
-
`./.github/workflows/docker-image.yml`,
|
|
442
|
+
`./.github/workflows/docker-image.ci.yml`,
|
|
436
443
|
fs
|
|
437
|
-
.readFileSync(`./.github/workflows/docker-image.yml`, 'utf8')
|
|
444
|
+
.readFileSync(`./.github/workflows/docker-image.ci.yml`, 'utf8')
|
|
438
445
|
.replaceAll(`underpost-engine:v${version}`, `underpost-engine:v${newVersion}`),
|
|
439
446
|
'utf8',
|
|
440
447
|
);
|
|
@@ -923,82 +930,6 @@ EOF`);
|
|
|
923
930
|
break;
|
|
924
931
|
}
|
|
925
932
|
|
|
926
|
-
case 'nfs': {
|
|
927
|
-
// Daemon RPC NFSv3. ports:
|
|
928
|
-
|
|
929
|
-
// 2049 (TCP/UDP) – nfsd standard port.
|
|
930
|
-
// 111 (TCP/UDP) – rpcbind/portmapper.
|
|
931
|
-
// 20048 (TCP/UDP) – rpc.mountd.
|
|
932
|
-
// 32765 (TCP/UDP) – rpc.statd.
|
|
933
|
-
// 32766 (TCP/UDP) – lockd (NLM).
|
|
934
|
-
|
|
935
|
-
// Configure export and permissions:
|
|
936
|
-
// /etc/exports
|
|
937
|
-
|
|
938
|
-
// Configure ports:
|
|
939
|
-
// /etc/nfs.conf
|
|
940
|
-
|
|
941
|
-
fs.writeFileSync(
|
|
942
|
-
`/etc/nfs.conf`,
|
|
943
|
-
`
|
|
944
|
-
[mountd]
|
|
945
|
-
port = 20048
|
|
946
|
-
|
|
947
|
-
[statd]
|
|
948
|
-
port = 32765
|
|
949
|
-
outgoing-port = 32765
|
|
950
|
-
|
|
951
|
-
[nfsd]
|
|
952
|
-
rdma=y
|
|
953
|
-
rdma-port=20049
|
|
954
|
-
|
|
955
|
-
[lockd]
|
|
956
|
-
port = 32766
|
|
957
|
-
udp-port = 32766
|
|
958
|
-
`,
|
|
959
|
-
'utf8',
|
|
960
|
-
);
|
|
961
|
-
|
|
962
|
-
// Client users have read-only access to resources and are identified as anonymous on the server.
|
|
963
|
-
// /share ip-client(ro,all_squash)
|
|
964
|
-
|
|
965
|
-
// Client users can modify resources and keep their UID on the server. Only root is identified as anonymous.
|
|
966
|
-
// /share ip-client(rw)
|
|
967
|
-
|
|
968
|
-
// Users on client workstation 1 can modify resources, while those on client workstation 2 have read-only access.
|
|
969
|
-
// UIDs are kept on the server, and only root is identified as anonymous.
|
|
970
|
-
// /share ip-client1(rw) ip-client2(ro)
|
|
971
|
-
|
|
972
|
-
// Client1 users can modify resources. Their UID is changed to 1001 and their GID to 100 on the server.
|
|
973
|
-
// /share ip-client(rw,all_squash,anonuid=1001,anongid=100)
|
|
974
|
-
|
|
975
|
-
// sudo dnf install nfs-utils
|
|
976
|
-
// sudo systemctl enable --now rpcbind // RPC map service
|
|
977
|
-
// sudo systemctl enable --now nfs-server // nfs domains nfsd
|
|
978
|
-
|
|
979
|
-
// Update exports:
|
|
980
|
-
// shellExec(`sudo exportfs -a -r`);
|
|
981
|
-
// shellExec(`sudo exportfs -v`);
|
|
982
|
-
|
|
983
|
-
// Active nfs
|
|
984
|
-
shellExec(`sudo exportfs -s`);
|
|
985
|
-
|
|
986
|
-
shellExec(`sudo exportfs -rav`);
|
|
987
|
-
|
|
988
|
-
// Rocky enable virt_use_nfs
|
|
989
|
-
// sudo setsebool -P virt_use_nfs 1
|
|
990
|
-
|
|
991
|
-
// Disable share:
|
|
992
|
-
// sudo exportfs -u <client-ip>:${process.env.NFS_EXPORT_PATH}/rpi4mb
|
|
993
|
-
|
|
994
|
-
// Nfs client:
|
|
995
|
-
// mount -t nfs <server-ip>:/server-mnt /mnt
|
|
996
|
-
// umount /mnt
|
|
997
|
-
|
|
998
|
-
shellExec(`sudo systemctl restart nfs-server`);
|
|
999
|
-
break;
|
|
1000
|
-
}
|
|
1001
|
-
|
|
1002
933
|
case 'mount': {
|
|
1003
934
|
const mounts = shellExec(`mount`).split(`\n`);
|
|
1004
935
|
console.table(
|
|
@@ -1029,102 +960,6 @@ udp-port = 32766
|
|
|
1029
960
|
break;
|
|
1030
961
|
}
|
|
1031
962
|
|
|
1032
|
-
case 'maas-ports': {
|
|
1033
|
-
// Configure firewall:
|
|
1034
|
-
|
|
1035
|
-
// systemctl stop firewalld
|
|
1036
|
-
// systemctl mask firewalld
|
|
1037
|
-
|
|
1038
|
-
// ufw disable
|
|
1039
|
-
// ufw enable
|
|
1040
|
-
|
|
1041
|
-
// sudo snap install ufw
|
|
1042
|
-
// const ports = ['80', '443', '22', '3000-3100'];
|
|
1043
|
-
const ports = [
|
|
1044
|
-
'43',
|
|
1045
|
-
'53',
|
|
1046
|
-
'60',
|
|
1047
|
-
'66',
|
|
1048
|
-
'67',
|
|
1049
|
-
'69',
|
|
1050
|
-
'4011',
|
|
1051
|
-
'111',
|
|
1052
|
-
'2049',
|
|
1053
|
-
'20048',
|
|
1054
|
-
'20049',
|
|
1055
|
-
'32765',
|
|
1056
|
-
'32766',
|
|
1057
|
-
'5248',
|
|
1058
|
-
'5240',
|
|
1059
|
-
];
|
|
1060
|
-
for (const port of ports) {
|
|
1061
|
-
shellExec(`ufw allow ${port}/tcp`);
|
|
1062
|
-
shellExec(`ufw allow ${port}/udp`);
|
|
1063
|
-
}
|
|
1064
|
-
|
|
1065
|
-
shellExec(`sudo systemctl mask firewalld`);
|
|
1066
|
-
|
|
1067
|
-
break;
|
|
1068
|
-
}
|
|
1069
|
-
|
|
1070
|
-
case 'iptables': {
|
|
1071
|
-
shellExec(`sudo systemctl enable nftables`);
|
|
1072
|
-
shellExec(`sudo systemctl restart nftables`);
|
|
1073
|
-
|
|
1074
|
-
shellExec(`sudo tee /etc/nftables.conf <<EOF
|
|
1075
|
-
table inet filter {
|
|
1076
|
-
chain input {
|
|
1077
|
-
type filter hook input priority 0;
|
|
1078
|
-
policy drop;
|
|
1079
|
-
tcp dport 22 accept
|
|
1080
|
-
}
|
|
1081
|
-
}
|
|
1082
|
-
EOF`);
|
|
1083
|
-
shellExec(`sudo nft -f /etc/nftables.conf`);
|
|
1084
|
-
|
|
1085
|
-
// sudo systemctl stop nftables
|
|
1086
|
-
// sudo systemctl disable nftables
|
|
1087
|
-
|
|
1088
|
-
break;
|
|
1089
|
-
}
|
|
1090
|
-
|
|
1091
|
-
case 'rpi4': {
|
|
1092
|
-
// Rpi4 Run Bootloader:
|
|
1093
|
-
|
|
1094
|
-
// 1) create boot.conf
|
|
1095
|
-
|
|
1096
|
-
// 2) Run lite RPiOs from rpi-imager
|
|
1097
|
-
// with boot.conf files in root disk path
|
|
1098
|
-
|
|
1099
|
-
// 3) cd /boot/firmware && sudo rpi-eeprom-config --apply boot.conf
|
|
1100
|
-
|
|
1101
|
-
// 4) sudo reboot
|
|
1102
|
-
|
|
1103
|
-
// 5) check: 'vcgencmd bootloader_version'
|
|
1104
|
-
// 6) check: 'vcgencmd bootloader_config'
|
|
1105
|
-
|
|
1106
|
-
// 7) shutdown and restart without sd card
|
|
1107
|
-
|
|
1108
|
-
// sudo apt update
|
|
1109
|
-
// sudo apt install git
|
|
1110
|
-
|
|
1111
|
-
break;
|
|
1112
|
-
}
|
|
1113
|
-
|
|
1114
|
-
case 'blue': {
|
|
1115
|
-
// lsusb | grep blue -i
|
|
1116
|
-
// rfkill list
|
|
1117
|
-
// sudo service bluetooth start
|
|
1118
|
-
// bluetoothctl show
|
|
1119
|
-
// sudo rfkill unblock bluetooth
|
|
1120
|
-
// dmesg | grep -i bluetooth
|
|
1121
|
-
// journalctl -u bluetooth -f
|
|
1122
|
-
// sudo dnf update bluez bluez-libs bluez-utils
|
|
1123
|
-
// sudo rmmod btusb
|
|
1124
|
-
// sudo modprobe btusb
|
|
1125
|
-
break;
|
|
1126
|
-
}
|
|
1127
|
-
|
|
1128
963
|
case 'fastapi-models': {
|
|
1129
964
|
shellExec(`chmod +x ../full-stack-fastapi-template/backend/initial_data.sh`);
|
|
1130
965
|
shellExec(`../full-stack-fastapi-template/backend/initial_data.sh`);
|
|
@@ -1379,13 +1214,84 @@ nvidia/gpu-operator \
|
|
|
1379
1214
|
break;
|
|
1380
1215
|
}
|
|
1381
1216
|
|
|
1382
|
-
case '
|
|
1383
|
-
|
|
1217
|
+
case 'udpate-version-files': {
|
|
1218
|
+
const oldNpmVersion = process.argv[3];
|
|
1219
|
+
const oldNodeVersion = process.argv[4];
|
|
1220
|
+
const oldNodeMajorVersion = oldNodeVersion.split('.')[0];
|
|
1221
|
+
const nodeVersion = shellExec(`node --version`, { stdout: true }).trim().replace('v', '');
|
|
1222
|
+
const newNodeMajorVersion = nodeVersion.split('.')[0];
|
|
1223
|
+
const npmVersion = shellExec(`npm --version`, { stdout: true }).trim();
|
|
1224
|
+
|
|
1225
|
+
fs.writeFileSync(
|
|
1226
|
+
`README.md`,
|
|
1227
|
+
fs
|
|
1228
|
+
.readFileSync(`README.md`, 'utf8')
|
|
1229
|
+
.replaceAll(oldNodeVersion, nodeVersion)
|
|
1230
|
+
.replaceAll(oldNpmVersion, npmVersion),
|
|
1231
|
+
);
|
|
1232
|
+
fs.writeFileSync(
|
|
1233
|
+
`manifests/lxd/underpost-setup.sh`,
|
|
1234
|
+
fs
|
|
1235
|
+
.readFileSync(`manifests/lxd/underpost-setup.sh`, 'utf8')
|
|
1236
|
+
.replaceAll(oldNodeVersion, nodeVersion)
|
|
1237
|
+
.replaceAll(oldNpmVersion, npmVersion),
|
|
1238
|
+
);
|
|
1239
|
+
fs.writeFileSync(
|
|
1240
|
+
`src/client/public/nexodev/docs/references/Getting started.md`,
|
|
1241
|
+
fs
|
|
1242
|
+
.readFileSync(`src/client/public/nexodev/docs/references/Getting started.md`, 'utf8')
|
|
1243
|
+
.replaceAll(oldNodeVersion, nodeVersion)
|
|
1244
|
+
.replaceAll(oldNpmVersion, npmVersion),
|
|
1245
|
+
);
|
|
1246
|
+
|
|
1247
|
+
const workflowFiles = [
|
|
1248
|
+
`./.github/workflows/coverall.ci.yml`,
|
|
1249
|
+
|
|
1250
|
+
`./.github/workflows/engine-core.ci.yml`,
|
|
1251
|
+
|
|
1252
|
+
`./.github/workflows/engine-cyberia.ci.yml`,
|
|
1253
|
+
|
|
1254
|
+
`./.github/workflows/engine-lampp.ci.yml`,
|
|
1255
|
+
|
|
1256
|
+
`./.github/workflows/engine-test.ci.yml`,
|
|
1257
|
+
|
|
1258
|
+
`./.github/workflows/ghpkg.ci.yml`,
|
|
1259
|
+
|
|
1260
|
+
`./.github/workflows/npmpkg.ci.yml`,
|
|
1261
|
+
|
|
1262
|
+
`./.github/workflows/publish.ci.yml`,
|
|
1263
|
+
|
|
1264
|
+
`./.github/workflows/pwa-microservices-template-page.cd.yml`,
|
|
1265
|
+
|
|
1266
|
+
`./.github/workflows/pwa-microservices-template-test.ci.yml`,
|
|
1267
|
+
|
|
1268
|
+
`./.github/workflows/test-api-rest.cd.yml`,
|
|
1269
|
+
|
|
1270
|
+
`./src/runtime/lampp/Dockerfile`,
|
|
1271
|
+
|
|
1272
|
+
`./Dockerfile`,
|
|
1273
|
+
];
|
|
1274
|
+
|
|
1275
|
+
workflowFiles.forEach((file) => {
|
|
1276
|
+
fs.writeFileSync(
|
|
1277
|
+
file,
|
|
1278
|
+
fs
|
|
1279
|
+
.readFileSync(file, 'utf8')
|
|
1280
|
+
.replaceAll(oldNodeMajorVersion + '.x', newNodeMajorVersion + '.x')
|
|
1281
|
+
.replaceAll(oldNodeVersion, nodeVersion)
|
|
1282
|
+
.replaceAll(oldNpmVersion, npmVersion),
|
|
1283
|
+
);
|
|
1284
|
+
});
|
|
1285
|
+
pbcopy(`nvm alias default v${nodeVersion}`);
|
|
1286
|
+
break;
|
|
1287
|
+
}
|
|
1384
1288
|
|
|
1385
|
-
|
|
1386
|
-
|
|
1387
|
-
|
|
1388
|
-
|
|
1289
|
+
case 'tls': {
|
|
1290
|
+
fs.mkdirSync(`./engine-private/ssl/localhost`, { recursive: true });
|
|
1291
|
+
const targetDir = `./engine-private/ssl/localhost`;
|
|
1292
|
+
const domains = ['localhost', '127.0.0.1', '::1'];
|
|
1293
|
+
shellExec(`chmod +x ./scripts/ssl.sh`);
|
|
1294
|
+
shellExec(`./scripts/ssl.sh ${targetDir} "${domains.join(' ')}"`);
|
|
1389
1295
|
break;
|
|
1390
1296
|
}
|
|
1391
1297
|
}
|
package/cli.md
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
## underpost ci/cd cli v2.8.
|
|
1
|
+
## underpost ci/cd cli v2.8.886
|
|
2
2
|
|
|
3
3
|
### Usage: `underpost [options] [command]`
|
|
4
4
|
```
|
|
@@ -607,7 +607,7 @@ Options:
|
|
|
607
607
|
Runs a script from the specified path.
|
|
608
608
|
|
|
609
609
|
Arguments:
|
|
610
|
-
runner-id The runner ID to run. Options: spark-template, rmi, kill, secret, underpost-config, gpu-env, tf-gpu-test, dev-cluster, ssh-cluster-info, cyberia-ide, engine-ide, template-deploy, clean, pull, release-deploy, ssh-deploy, ide,
|
|
610
|
+
runner-id The runner ID to run. Options: spark-template, rmi, kill, secret, underpost-config, gpu-env, tf-gpu-test, dev-cluster, ssh-cluster-info, cyberia-ide, engine-ide, cluster-build, template-deploy, clean, pull, release-deploy, ssh-deploy, ide, sync, ls-deployments, monitor, db-client, promote, metrics, cluster, deploy, sync-replica, tf-vae-test, deploy-job.
|
|
611
611
|
path The absolute or relative directory path where the script is located.
|
|
612
612
|
|
|
613
613
|
Options:
|
|
@@ -17,7 +17,7 @@ spec:
|
|
|
17
17
|
spec:
|
|
18
18
|
containers:
|
|
19
19
|
- name: dd-default-development-blue
|
|
20
|
-
image: localhost/rockylinux9-underpost:v2.8.
|
|
20
|
+
image: localhost/rockylinux9-underpost:v2.8.886
|
|
21
21
|
# resources:
|
|
22
22
|
# requests:
|
|
23
23
|
# memory: "124Ki"
|
|
@@ -100,7 +100,7 @@ spec:
|
|
|
100
100
|
spec:
|
|
101
101
|
containers:
|
|
102
102
|
- name: dd-default-development-green
|
|
103
|
-
image: localhost/rockylinux9-underpost:v2.8.
|
|
103
|
+
image: localhost/rockylinux9-underpost:v2.8.886
|
|
104
104
|
# resources:
|
|
105
105
|
# requests:
|
|
106
106
|
# memory: "124Ki"
|
|
@@ -17,13 +17,13 @@ spec:
|
|
|
17
17
|
spec:
|
|
18
18
|
containers:
|
|
19
19
|
- name: dd-test-development-blue
|
|
20
|
-
image: localhost/rockylinux9-underpost:v2.8.
|
|
20
|
+
image: localhost/rockylinux9-underpost:v2.8.886
|
|
21
21
|
# resources:
|
|
22
22
|
# requests:
|
|
23
|
-
# memory: "
|
|
23
|
+
# memory: "94Ki"
|
|
24
24
|
# cpu: "75m"
|
|
25
25
|
# limits:
|
|
26
|
-
# memory: "
|
|
26
|
+
# memory: "1504Ki"
|
|
27
27
|
# cpu: "1200m"
|
|
28
28
|
command:
|
|
29
29
|
- /bin/sh
|
|
@@ -49,41 +49,41 @@ spec:
|
|
|
49
49
|
selector:
|
|
50
50
|
app: dd-test-development-blue
|
|
51
51
|
ports:
|
|
52
|
-
- name: 'tcp-
|
|
52
|
+
- name: 'tcp-4041'
|
|
53
53
|
protocol: TCP
|
|
54
|
-
port:
|
|
55
|
-
targetPort:
|
|
56
|
-
- name: 'udp-
|
|
54
|
+
port: 4041
|
|
55
|
+
targetPort: 4041
|
|
56
|
+
- name: 'udp-4041'
|
|
57
57
|
protocol: UDP
|
|
58
|
-
port:
|
|
59
|
-
targetPort:
|
|
58
|
+
port: 4041
|
|
59
|
+
targetPort: 4041
|
|
60
60
|
|
|
61
|
-
- name: 'tcp-
|
|
61
|
+
- name: 'tcp-4042'
|
|
62
62
|
protocol: TCP
|
|
63
|
-
port:
|
|
64
|
-
targetPort:
|
|
65
|
-
- name: 'udp-
|
|
63
|
+
port: 4042
|
|
64
|
+
targetPort: 4042
|
|
65
|
+
- name: 'udp-4042'
|
|
66
66
|
protocol: UDP
|
|
67
|
-
port:
|
|
68
|
-
targetPort:
|
|
67
|
+
port: 4042
|
|
68
|
+
targetPort: 4042
|
|
69
69
|
|
|
70
|
-
- name: 'tcp-
|
|
70
|
+
- name: 'tcp-4043'
|
|
71
71
|
protocol: TCP
|
|
72
|
-
port:
|
|
73
|
-
targetPort:
|
|
74
|
-
- name: 'udp-
|
|
72
|
+
port: 4043
|
|
73
|
+
targetPort: 4043
|
|
74
|
+
- name: 'udp-4043'
|
|
75
75
|
protocol: UDP
|
|
76
|
-
port:
|
|
77
|
-
targetPort:
|
|
76
|
+
port: 4043
|
|
77
|
+
targetPort: 4043
|
|
78
78
|
|
|
79
|
-
- name: 'tcp-
|
|
79
|
+
- name: 'tcp-4044'
|
|
80
80
|
protocol: TCP
|
|
81
|
-
port:
|
|
82
|
-
targetPort:
|
|
83
|
-
- name: 'udp-
|
|
81
|
+
port: 4044
|
|
82
|
+
targetPort: 4044
|
|
83
|
+
- name: 'udp-4044'
|
|
84
84
|
protocol: UDP
|
|
85
|
-
port:
|
|
86
|
-
targetPort:
|
|
85
|
+
port: 4044
|
|
86
|
+
targetPort: 4044
|
|
87
87
|
type: LoadBalancer
|
|
88
88
|
---
|
|
89
89
|
apiVersion: apps/v1
|
|
@@ -104,13 +104,13 @@ spec:
|
|
|
104
104
|
spec:
|
|
105
105
|
containers:
|
|
106
106
|
- name: dd-test-development-green
|
|
107
|
-
image: localhost/rockylinux9-underpost:v2.8.
|
|
107
|
+
image: localhost/rockylinux9-underpost:v2.8.886
|
|
108
108
|
# resources:
|
|
109
109
|
# requests:
|
|
110
|
-
# memory: "
|
|
110
|
+
# memory: "94Ki"
|
|
111
111
|
# cpu: "75m"
|
|
112
112
|
# limits:
|
|
113
|
-
# memory: "
|
|
113
|
+
# memory: "1504Ki"
|
|
114
114
|
# cpu: "1200m"
|
|
115
115
|
command:
|
|
116
116
|
- /bin/sh
|
|
@@ -136,39 +136,39 @@ spec:
|
|
|
136
136
|
selector:
|
|
137
137
|
app: dd-test-development-green
|
|
138
138
|
ports:
|
|
139
|
-
- name: 'tcp-
|
|
139
|
+
- name: 'tcp-4041'
|
|
140
140
|
protocol: TCP
|
|
141
|
-
port:
|
|
142
|
-
targetPort:
|
|
143
|
-
- name: 'udp-
|
|
141
|
+
port: 4041
|
|
142
|
+
targetPort: 4041
|
|
143
|
+
- name: 'udp-4041'
|
|
144
144
|
protocol: UDP
|
|
145
|
-
port:
|
|
146
|
-
targetPort:
|
|
145
|
+
port: 4041
|
|
146
|
+
targetPort: 4041
|
|
147
147
|
|
|
148
|
-
- name: 'tcp-
|
|
148
|
+
- name: 'tcp-4042'
|
|
149
149
|
protocol: TCP
|
|
150
|
-
port:
|
|
151
|
-
targetPort:
|
|
152
|
-
- name: 'udp-
|
|
150
|
+
port: 4042
|
|
151
|
+
targetPort: 4042
|
|
152
|
+
- name: 'udp-4042'
|
|
153
153
|
protocol: UDP
|
|
154
|
-
port:
|
|
155
|
-
targetPort:
|
|
154
|
+
port: 4042
|
|
155
|
+
targetPort: 4042
|
|
156
156
|
|
|
157
|
-
- name: 'tcp-
|
|
157
|
+
- name: 'tcp-4043'
|
|
158
158
|
protocol: TCP
|
|
159
|
-
port:
|
|
160
|
-
targetPort:
|
|
161
|
-
- name: 'udp-
|
|
159
|
+
port: 4043
|
|
160
|
+
targetPort: 4043
|
|
161
|
+
- name: 'udp-4043'
|
|
162
162
|
protocol: UDP
|
|
163
|
-
port:
|
|
164
|
-
targetPort:
|
|
163
|
+
port: 4043
|
|
164
|
+
targetPort: 4043
|
|
165
165
|
|
|
166
|
-
- name: 'tcp-
|
|
166
|
+
- name: 'tcp-4044'
|
|
167
167
|
protocol: TCP
|
|
168
|
-
port:
|
|
169
|
-
targetPort:
|
|
170
|
-
- name: 'udp-
|
|
168
|
+
port: 4044
|
|
169
|
+
targetPort: 4044
|
|
170
|
+
- name: 'udp-4044'
|
|
171
171
|
protocol: UDP
|
|
172
|
-
port:
|
|
173
|
-
targetPort:
|
|
172
|
+
port: 4044
|
|
173
|
+
targetPort: 4044
|
|
174
174
|
type: LoadBalancer
|
|
@@ -13,7 +13,7 @@ spec:
|
|
|
13
13
|
enableWebsockets: true
|
|
14
14
|
services:
|
|
15
15
|
- name: dd-test-development-blue-service
|
|
16
|
-
port:
|
|
16
|
+
port: 4041
|
|
17
17
|
weight: 100
|
|
18
18
|
|
|
19
19
|
- conditions:
|
|
@@ -21,7 +21,7 @@ spec:
|
|
|
21
21
|
enableWebsockets: true
|
|
22
22
|
services:
|
|
23
23
|
- name: dd-test-development-blue-service
|
|
24
|
-
port:
|
|
24
|
+
port: 4042
|
|
25
25
|
weight: 100
|
|
26
26
|
|
|
27
27
|
---
|
|
@@ -38,7 +38,7 @@ spec:
|
|
|
38
38
|
enableWebsockets: true
|
|
39
39
|
services:
|
|
40
40
|
- name: dd-test-development-blue-service
|
|
41
|
-
port:
|
|
41
|
+
port: 4043
|
|
42
42
|
weight: 100
|
|
43
43
|
|
|
44
44
|
- conditions:
|
|
@@ -46,6 +46,6 @@ spec:
|
|
|
46
46
|
enableWebsockets: true
|
|
47
47
|
services:
|
|
48
48
|
- name: dd-test-development-blue-service
|
|
49
|
-
port:
|
|
49
|
+
port: 4044
|
|
50
50
|
weight: 100
|
|
51
51
|
|
|
@@ -39,15 +39,15 @@ sudo dnf install -y tar bzip2 git epel-release
|
|
|
39
39
|
sudo dnf -y update
|
|
40
40
|
|
|
41
41
|
# --- NVM and Node.js Installation ---
|
|
42
|
-
echo "Installing NVM and Node.js
|
|
42
|
+
echo "Installing NVM and Node.js v24.10.0..."
|
|
43
43
|
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.1/install.sh | bash
|
|
44
44
|
|
|
45
45
|
# Load nvm for the current session
|
|
46
46
|
export NVM_DIR="$([ -z "${XDG_CONFIG_HOME-}" ] && printf %s "${HOME}/.nvm" || printf %s "${XDG_CONFIG_HOME}/nvm")"
|
|
47
47
|
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm
|
|
48
48
|
|
|
49
|
-
nvm install
|
|
50
|
-
nvm use
|
|
49
|
+
nvm install 24.10.0
|
|
50
|
+
nvm use 24.10.0
|
|
51
51
|
|
|
52
52
|
echo "
|
|
53
53
|
██╗░░░██╗███╗░░██╗██████╗░███████╗██████╗░██████╗░░█████╗░░██████╗████████╗
|
|
@@ -65,9 +65,9 @@ npm install -g underpost
|
|
|
65
65
|
|
|
66
66
|
# Ensure underpost executable is in PATH and has execute permissions
|
|
67
67
|
# Adjusting this for global npm install which usually handles permissions
|
|
68
|
-
# If you still face issues, ensure /root/.nvm/versions/node/
|
|
68
|
+
# If you still face issues, ensure /root/.nvm/versions/node/v24.10.0/bin is in your PATH
|
|
69
69
|
# For global installs, it's usually handled automatically.
|
|
70
|
-
# chmod +x /root/.nvm/versions/node/
|
|
70
|
+
# chmod +x /root/.nvm/versions/node/v24.10.0/bin/underpost # This might not be necessary for global npm installs
|
|
71
71
|
|
|
72
72
|
# --- Kernel Module for Bridge Filtering ---
|
|
73
73
|
# This is crucial for Kubernetes networking (CNI)
|
package/package.json
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"type": "module",
|
|
3
3
|
"main": "src/index.js",
|
|
4
4
|
"name": "underpost",
|
|
5
|
-
"version": "2.8.
|
|
5
|
+
"version": "2.8.886",
|
|
6
6
|
"description": "pwa api rest template",
|
|
7
7
|
"scripts": {
|
|
8
8
|
"start": "env-cmd -f .env.production node --max-old-space-size=8192 src/server",
|
|
@@ -80,7 +80,7 @@
|
|
|
80
80
|
"http-proxy-middleware": "^2.0.6",
|
|
81
81
|
"ignore-walk": "^6.0.4",
|
|
82
82
|
"iovalkey": "^0.2.1",
|
|
83
|
-
"jimp": "^
|
|
83
|
+
"jimp": "^1.6.0",
|
|
84
84
|
"json-colorizer": "^2.2.2",
|
|
85
85
|
"jsonwebtoken": "^9.0.2",
|
|
86
86
|
"mariadb": "^3.2.2",
|
|
@@ -88,7 +88,7 @@
|
|
|
88
88
|
"mocha": "^10.8.2",
|
|
89
89
|
"mongoose": "^8.9.5",
|
|
90
90
|
"morgan": "^1.10.0",
|
|
91
|
-
"nodemailer": "^
|
|
91
|
+
"nodemailer": "^7.0.9",
|
|
92
92
|
"nodemon": "^3.0.1",
|
|
93
93
|
"peer": "^1.0.2",
|
|
94
94
|
"peerjs": "^1.5.2",
|