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.
Files changed (66) hide show
  1. package/.env.production +3 -0
  2. package/.github/workflows/ghpkg.ci.yml +1 -1
  3. package/.github/workflows/npmpkg.ci.yml +1 -1
  4. package/.github/workflows/publish.ci.yml +5 -5
  5. package/.github/workflows/pwa-microservices-template-page.cd.yml +1 -1
  6. package/.github/workflows/pwa-microservices-template-test.ci.yml +1 -1
  7. package/CHANGELOG.md +145 -1
  8. package/Dockerfile +1 -1
  9. package/README.md +3 -3
  10. package/bin/build.js +18 -9
  11. package/bin/deploy.js +93 -187
  12. package/cli.md +2 -2
  13. package/manifests/deployment/dd-default-development/deployment.yaml +2 -2
  14. package/manifests/deployment/dd-test-development/deployment.yaml +54 -54
  15. package/manifests/deployment/dd-test-development/proxy.yaml +4 -4
  16. package/manifests/lxd/underpost-setup.sh +5 -5
  17. package/package.json +3 -3
  18. package/scripts/ssl.sh +164 -0
  19. package/src/cli/baremetal.js +7 -7
  20. package/src/cli/cloud-init.js +1 -1
  21. package/src/cli/cluster.js +10 -3
  22. package/src/cli/cron.js +1 -1
  23. package/src/cli/db.js +1 -1
  24. package/src/cli/deploy.js +33 -1
  25. package/src/cli/fs.js +2 -2
  26. package/src/cli/image.js +7 -0
  27. package/src/cli/monitor.js +33 -1
  28. package/src/cli/run.js +315 -51
  29. package/src/cli/script.js +32 -0
  30. package/src/cli/secrets.js +34 -0
  31. package/src/cli/test.js +42 -1
  32. package/src/client/components/core/Css.js +0 -8
  33. package/src/client/components/core/windowGetDimensions.js +229 -162
  34. package/src/index.js +2 -2
  35. package/src/mailer/MailerProvider.js +1 -0
  36. package/src/runtime/express/Express.js +12 -4
  37. package/src/runtime/lampp/Dockerfile +1 -1
  38. package/src/server/backup.js +20 -0
  39. package/src/server/client-build-live.js +12 -10
  40. package/src/server/client-build.js +136 -91
  41. package/src/server/client-dev-server.js +16 -2
  42. package/src/server/client-icons.js +19 -0
  43. package/src/server/conf.js +470 -60
  44. package/src/server/dns.js +184 -42
  45. package/src/server/downloader.js +65 -24
  46. package/src/server/object-layer.js +260 -162
  47. package/src/server/peer.js +2 -8
  48. package/src/server/proxy.js +93 -76
  49. package/src/server/runtime.js +15 -16
  50. package/src/server/ssr.js +4 -4
  51. package/src/server/tls.js +251 -0
  52. package/src/server/valkey.js +11 -10
  53. package/src/ws/IoInterface.js +2 -1
  54. package/src/ws/IoServer.js +2 -1
  55. package/src/ws/core/core.ws.connection.js +1 -1
  56. package/src/ws/core/core.ws.emit.js +1 -1
  57. package/src/ws/core/core.ws.server.js +1 -1
  58. package/manifests/maas/lxd-preseed.yaml +0 -32
  59. package/src/server/ssl.js +0 -108
  60. /package/{manifests/maas → scripts}/device-scan.sh +0 -0
  61. /package/{manifests/maas → scripts}/gpu-diag.sh +0 -0
  62. /package/{manifests/maas → scripts}/maas-setup.sh +0 -0
  63. /package/{manifests/maas → scripts}/nat-iptables.sh +0 -0
  64. /package/{manifests/maas → scripts}/nvim.sh +0 -0
  65. /package/{manifests/maas → scripts}/snap-clean.sh +0 -0
  66. /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 port = 0;
257
- const singleReplicaHosts = [];
256
+ let portOffset = 0;
258
257
  for (const deployIdObj of dataDeploy) {
259
- const { deployId, replicaHost } = deployIdObj;
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 + port - singleReplicaHosts.length - (replicaHost ? 1 : 0);
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)) port += Object.keys(serverConf[host]).length;
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 'sbt': {
1383
- // https://www.scala-sbt.org/1.x/docs/Installing-sbt-on-Linux.html
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
- // sudo rm -f /etc/yum.repos.d/bintray-rpm.repo
1386
- // curl -L https://www.scala-sbt.org/sbt-rpm.repo > sbt-rpm.repo
1387
- // sudo mv sbt-rpm.repo /etc/yum.repos.d/
1388
- // sudo yum install sbt
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.885
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, dev-client, dev-api, sync, ls-deployments, monitor, db-client, promote, metrics, cluster, deploy, tf-vae-test, deploy-job.
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.885
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.885
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.885
20
+ image: localhost/rockylinux9-underpost:v2.8.886
21
21
  # resources:
22
22
  # requests:
23
- # memory: "96294Ki"
23
+ # memory: "94Ki"
24
24
  # cpu: "75m"
25
25
  # limits:
26
- # memory: "1540709Ki"
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-4021'
52
+ - name: 'tcp-4041'
53
53
  protocol: TCP
54
- port: 4021
55
- targetPort: 4021
56
- - name: 'udp-4021'
54
+ port: 4041
55
+ targetPort: 4041
56
+ - name: 'udp-4041'
57
57
  protocol: UDP
58
- port: 4021
59
- targetPort: 4021
58
+ port: 4041
59
+ targetPort: 4041
60
60
 
61
- - name: 'tcp-4022'
61
+ - name: 'tcp-4042'
62
62
  protocol: TCP
63
- port: 4022
64
- targetPort: 4022
65
- - name: 'udp-4022'
63
+ port: 4042
64
+ targetPort: 4042
65
+ - name: 'udp-4042'
66
66
  protocol: UDP
67
- port: 4022
68
- targetPort: 4022
67
+ port: 4042
68
+ targetPort: 4042
69
69
 
70
- - name: 'tcp-4023'
70
+ - name: 'tcp-4043'
71
71
  protocol: TCP
72
- port: 4023
73
- targetPort: 4023
74
- - name: 'udp-4023'
72
+ port: 4043
73
+ targetPort: 4043
74
+ - name: 'udp-4043'
75
75
  protocol: UDP
76
- port: 4023
77
- targetPort: 4023
76
+ port: 4043
77
+ targetPort: 4043
78
78
 
79
- - name: 'tcp-4024'
79
+ - name: 'tcp-4044'
80
80
  protocol: TCP
81
- port: 4024
82
- targetPort: 4024
83
- - name: 'udp-4024'
81
+ port: 4044
82
+ targetPort: 4044
83
+ - name: 'udp-4044'
84
84
  protocol: UDP
85
- port: 4024
86
- targetPort: 4024
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.885
107
+ image: localhost/rockylinux9-underpost:v2.8.886
108
108
  # resources:
109
109
  # requests:
110
- # memory: "96294Ki"
110
+ # memory: "94Ki"
111
111
  # cpu: "75m"
112
112
  # limits:
113
- # memory: "1540709Ki"
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-4021'
139
+ - name: 'tcp-4041'
140
140
  protocol: TCP
141
- port: 4021
142
- targetPort: 4021
143
- - name: 'udp-4021'
141
+ port: 4041
142
+ targetPort: 4041
143
+ - name: 'udp-4041'
144
144
  protocol: UDP
145
- port: 4021
146
- targetPort: 4021
145
+ port: 4041
146
+ targetPort: 4041
147
147
 
148
- - name: 'tcp-4022'
148
+ - name: 'tcp-4042'
149
149
  protocol: TCP
150
- port: 4022
151
- targetPort: 4022
152
- - name: 'udp-4022'
150
+ port: 4042
151
+ targetPort: 4042
152
+ - name: 'udp-4042'
153
153
  protocol: UDP
154
- port: 4022
155
- targetPort: 4022
154
+ port: 4042
155
+ targetPort: 4042
156
156
 
157
- - name: 'tcp-4023'
157
+ - name: 'tcp-4043'
158
158
  protocol: TCP
159
- port: 4023
160
- targetPort: 4023
161
- - name: 'udp-4023'
159
+ port: 4043
160
+ targetPort: 4043
161
+ - name: 'udp-4043'
162
162
  protocol: UDP
163
- port: 4023
164
- targetPort: 4023
163
+ port: 4043
164
+ targetPort: 4043
165
165
 
166
- - name: 'tcp-4024'
166
+ - name: 'tcp-4044'
167
167
  protocol: TCP
168
- port: 4024
169
- targetPort: 4024
170
- - name: 'udp-4024'
168
+ port: 4044
169
+ targetPort: 4044
170
+ - name: 'udp-4044'
171
171
  protocol: UDP
172
- port: 4024
173
- targetPort: 4024
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: 4021
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: 4022
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: 4023
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: 4024
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 v23.8.0..."
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 23.8.0
50
- nvm use 23.8.0
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/v23.8.0/bin is in your PATH
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/v23.8.0/bin/underpost # This might not be necessary for global npm installs
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.885",
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": "^0.22.12",
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": "^6.9.9",
91
+ "nodemailer": "^7.0.9",
92
92
  "nodemon": "^3.0.1",
93
93
  "peer": "^1.0.2",
94
94
  "peerjs": "^1.5.2",