underpost 2.8.884 → 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 +5 -121
- package/bin/build.js +18 -9
- package/bin/deploy.js +102 -197
- package/bin/file.js +4 -6
- package/cli.md +16 -12
- 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 +31 -3
- package/src/cli/cron.js +9 -1
- package/src/cli/db.js +64 -2
- package/src/cli/deploy.js +189 -4
- package/src/cli/env.js +43 -0
- package/src/cli/fs.js +96 -2
- package/src/cli/image.js +15 -0
- package/src/cli/index.js +17 -4
- package/src/cli/monitor.js +33 -2
- package/src/cli/repository.js +95 -2
- 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 +16 -8
- package/src/client/components/core/Docs.js +5 -13
- package/src/client/components/core/Modal.js +48 -29
- package/src/client/components/core/Router.js +6 -3
- package/src/client/components/core/Worker.js +205 -118
- package/src/client/components/core/windowGetDimensions.js +229 -162
- package/src/client/components/default/MenuDefault.js +1 -0
- package/src/client.dev.js +6 -3
- package/src/db/DataBaseProvider.js +65 -12
- package/src/db/mariadb/MariaDB.js +39 -6
- package/src/db/mongo/MongooseDB.js +51 -133
- package/src/index.js +2 -2
- package/src/mailer/EmailRender.js +58 -9
- package/src/mailer/MailerProvider.js +99 -25
- package/src/runtime/express/Express.js +32 -38
- package/src/runtime/lampp/Dockerfile +1 -1
- package/src/server/auth.js +9 -28
- package/src/server/backup.js +20 -0
- package/src/server/client-build-live.js +23 -12
- package/src/server/client-build.js +136 -91
- package/src/server/client-dev-server.js +35 -8
- package/src/server/client-icons.js +19 -0
- package/src/server/conf.js +543 -80
- 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 +3 -9
- package/src/server/proxy.js +93 -76
- package/src/server/runtime.js +15 -21
- package/src/server/ssr.js +4 -4
- package/src/server/start.js +39 -0
- package/src/server/tls.js +251 -0
- package/src/server/valkey.js +11 -10
- package/src/ws/IoInterface.js +133 -39
- package/src/ws/IoServer.js +80 -31
- package/src/ws/core/core.ws.connection.js +50 -16
- package/src/ws/core/core.ws.emit.js +47 -8
- package/src/ws/core/core.ws.server.js +62 -10
- 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
|
@@ -122,7 +122,12 @@ try {
|
|
|
122
122
|
}
|
|
123
123
|
break;
|
|
124
124
|
case 'conf': {
|
|
125
|
-
|
|
125
|
+
let subConf = process.argv[5] ?? '';
|
|
126
|
+
|
|
127
|
+
if (!['current', 'clean'].includes(process.argv[3]))
|
|
128
|
+
dotenv.config({ path: `./engine-private/conf/${process.argv[3]}/.env.${process.argv[4]}`, override: true });
|
|
129
|
+
|
|
130
|
+
loadConf(process.argv[3], subConf);
|
|
126
131
|
break;
|
|
127
132
|
}
|
|
128
133
|
|
|
@@ -194,10 +199,10 @@ try {
|
|
|
194
199
|
{
|
|
195
200
|
dotenv.config({ override: true });
|
|
196
201
|
if (!process.argv[3]) process.argv[3] = 'dd-default';
|
|
197
|
-
const { deployId
|
|
202
|
+
const { deployId } = loadConf(process.argv[3], process.argv[4] ?? '');
|
|
198
203
|
|
|
199
|
-
let argHost = process.argv[
|
|
200
|
-
let argPath = process.argv[
|
|
204
|
+
let argHost = process.argv[5] ? process.argv[5].split(',') : [];
|
|
205
|
+
let argPath = process.argv[6] ? process.argv[6].split(',') : [];
|
|
201
206
|
let deployIdSingleReplicas = [];
|
|
202
207
|
const serverConf = deployId
|
|
203
208
|
? JSON.parse(fs.readFileSync(`./conf/conf.server.json`, 'utf8'))
|
|
@@ -209,16 +214,10 @@ try {
|
|
|
209
214
|
} else {
|
|
210
215
|
serverConf[host][path].liteBuild = process.argv.includes('l') ? true : false;
|
|
211
216
|
serverConf[host][path].minifyBuild = process.env.NODE_ENV === 'production' ? true : false;
|
|
212
|
-
if (process.env.NODE_ENV === 'development' && process.argv.includes('static')) {
|
|
213
|
-
serverConf[host][path].apiBaseProxyPath = '/';
|
|
214
|
-
serverConf[host][path].apiBaseHost = `localhost:${parseInt(process.env.PORT) + 1}`;
|
|
215
|
-
}
|
|
216
217
|
if (serverConf[host][path].singleReplica && serverConf[host][path].replicas) {
|
|
217
218
|
deployIdSingleReplicas = deployIdSingleReplicas.concat(
|
|
218
219
|
serverConf[host][path].replicas.map((replica) => buildReplicaId({ deployId, replica })),
|
|
219
220
|
);
|
|
220
|
-
|
|
221
|
-
// shellExec(Cmd.replica(deployId, host, path));
|
|
222
221
|
}
|
|
223
222
|
}
|
|
224
223
|
}
|
|
@@ -254,25 +253,32 @@ try {
|
|
|
254
253
|
{ env: 'development', port: 4000 },
|
|
255
254
|
{ env: 'test', port: 5000 },
|
|
256
255
|
];
|
|
257
|
-
let
|
|
258
|
-
const singleReplicaHosts = [];
|
|
256
|
+
let portOffset = 0;
|
|
259
257
|
for (const deployIdObj of dataDeploy) {
|
|
260
|
-
const { deployId
|
|
261
|
-
if (replicaHost && !singleReplicaHosts.includes(replicaHost)) singleReplicaHosts.push(replicaHost);
|
|
258
|
+
const { deployId } = deployIdObj;
|
|
262
259
|
const baseConfPath = fs.existsSync(`./engine-private/replica/${deployId}`)
|
|
263
260
|
? `./engine-private/replica`
|
|
264
261
|
: `./engine-private/conf`;
|
|
265
262
|
for (const envInstanceObj of dataEnv) {
|
|
266
263
|
const envPath = `${baseConfPath}/${deployId}/.env.${envInstanceObj.env}`;
|
|
267
264
|
const envObj = dotenv.parse(fs.readFileSync(envPath, 'utf8'));
|
|
268
|
-
envObj.PORT = envInstanceObj.port +
|
|
265
|
+
envObj.PORT = `${envInstanceObj.port + portOffset}`;
|
|
269
266
|
|
|
270
267
|
writeEnv(envPath, envObj);
|
|
271
268
|
}
|
|
272
269
|
const serverConf = loadReplicas(
|
|
273
270
|
JSON.parse(fs.readFileSync(`${baseConfPath}/${deployId}/conf.server.json`, 'utf8')),
|
|
274
271
|
);
|
|
275
|
-
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
|
+
}
|
|
276
282
|
}
|
|
277
283
|
break;
|
|
278
284
|
|
|
@@ -431,11 +437,11 @@ try {
|
|
|
431
437
|
'utf8',
|
|
432
438
|
);
|
|
433
439
|
|
|
434
|
-
if (fs.existsSync(`./.github/workflows/docker-image.yml`))
|
|
440
|
+
if (fs.existsSync(`./.github/workflows/docker-image.ci.yml`))
|
|
435
441
|
fs.writeFileSync(
|
|
436
|
-
`./.github/workflows/docker-image.yml`,
|
|
442
|
+
`./.github/workflows/docker-image.ci.yml`,
|
|
437
443
|
fs
|
|
438
|
-
.readFileSync(`./.github/workflows/docker-image.yml`, 'utf8')
|
|
444
|
+
.readFileSync(`./.github/workflows/docker-image.ci.yml`, 'utf8')
|
|
439
445
|
.replaceAll(`underpost-engine:v${version}`, `underpost-engine:v${newVersion}`),
|
|
440
446
|
'utf8',
|
|
441
447
|
);
|
|
@@ -924,82 +930,6 @@ EOF`);
|
|
|
924
930
|
break;
|
|
925
931
|
}
|
|
926
932
|
|
|
927
|
-
case 'nfs': {
|
|
928
|
-
// Daemon RPC NFSv3. ports:
|
|
929
|
-
|
|
930
|
-
// 2049 (TCP/UDP) – nfsd standard port.
|
|
931
|
-
// 111 (TCP/UDP) – rpcbind/portmapper.
|
|
932
|
-
// 20048 (TCP/UDP) – rpc.mountd.
|
|
933
|
-
// 32765 (TCP/UDP) – rpc.statd.
|
|
934
|
-
// 32766 (TCP/UDP) – lockd (NLM).
|
|
935
|
-
|
|
936
|
-
// Configure export and permissions:
|
|
937
|
-
// /etc/exports
|
|
938
|
-
|
|
939
|
-
// Configure ports:
|
|
940
|
-
// /etc/nfs.conf
|
|
941
|
-
|
|
942
|
-
fs.writeFileSync(
|
|
943
|
-
`/etc/nfs.conf`,
|
|
944
|
-
`
|
|
945
|
-
[mountd]
|
|
946
|
-
port = 20048
|
|
947
|
-
|
|
948
|
-
[statd]
|
|
949
|
-
port = 32765
|
|
950
|
-
outgoing-port = 32765
|
|
951
|
-
|
|
952
|
-
[nfsd]
|
|
953
|
-
rdma=y
|
|
954
|
-
rdma-port=20049
|
|
955
|
-
|
|
956
|
-
[lockd]
|
|
957
|
-
port = 32766
|
|
958
|
-
udp-port = 32766
|
|
959
|
-
`,
|
|
960
|
-
'utf8',
|
|
961
|
-
);
|
|
962
|
-
|
|
963
|
-
// Client users have read-only access to resources and are identified as anonymous on the server.
|
|
964
|
-
// /share ip-client(ro,all_squash)
|
|
965
|
-
|
|
966
|
-
// Client users can modify resources and keep their UID on the server. Only root is identified as anonymous.
|
|
967
|
-
// /share ip-client(rw)
|
|
968
|
-
|
|
969
|
-
// Users on client workstation 1 can modify resources, while those on client workstation 2 have read-only access.
|
|
970
|
-
// UIDs are kept on the server, and only root is identified as anonymous.
|
|
971
|
-
// /share ip-client1(rw) ip-client2(ro)
|
|
972
|
-
|
|
973
|
-
// Client1 users can modify resources. Their UID is changed to 1001 and their GID to 100 on the server.
|
|
974
|
-
// /share ip-client(rw,all_squash,anonuid=1001,anongid=100)
|
|
975
|
-
|
|
976
|
-
// sudo dnf install nfs-utils
|
|
977
|
-
// sudo systemctl enable --now rpcbind // RPC map service
|
|
978
|
-
// sudo systemctl enable --now nfs-server // nfs domains nfsd
|
|
979
|
-
|
|
980
|
-
// Update exports:
|
|
981
|
-
// shellExec(`sudo exportfs -a -r`);
|
|
982
|
-
// shellExec(`sudo exportfs -v`);
|
|
983
|
-
|
|
984
|
-
// Active nfs
|
|
985
|
-
shellExec(`sudo exportfs -s`);
|
|
986
|
-
|
|
987
|
-
shellExec(`sudo exportfs -rav`);
|
|
988
|
-
|
|
989
|
-
// Rocky enable virt_use_nfs
|
|
990
|
-
// sudo setsebool -P virt_use_nfs 1
|
|
991
|
-
|
|
992
|
-
// Disable share:
|
|
993
|
-
// sudo exportfs -u <client-ip>:${process.env.NFS_EXPORT_PATH}/rpi4mb
|
|
994
|
-
|
|
995
|
-
// Nfs client:
|
|
996
|
-
// mount -t nfs <server-ip>:/server-mnt /mnt
|
|
997
|
-
// umount /mnt
|
|
998
|
-
|
|
999
|
-
shellExec(`sudo systemctl restart nfs-server`);
|
|
1000
|
-
break;
|
|
1001
|
-
}
|
|
1002
|
-
|
|
1003
933
|
case 'mount': {
|
|
1004
934
|
const mounts = shellExec(`mount`).split(`\n`);
|
|
1005
935
|
console.table(
|
|
@@ -1030,102 +960,6 @@ udp-port = 32766
|
|
|
1030
960
|
break;
|
|
1031
961
|
}
|
|
1032
962
|
|
|
1033
|
-
case 'maas-ports': {
|
|
1034
|
-
// Configure firewall:
|
|
1035
|
-
|
|
1036
|
-
// systemctl stop firewalld
|
|
1037
|
-
// systemctl mask firewalld
|
|
1038
|
-
|
|
1039
|
-
// ufw disable
|
|
1040
|
-
// ufw enable
|
|
1041
|
-
|
|
1042
|
-
// sudo snap install ufw
|
|
1043
|
-
// const ports = ['80', '443', '22', '3000-3100'];
|
|
1044
|
-
const ports = [
|
|
1045
|
-
'43',
|
|
1046
|
-
'53',
|
|
1047
|
-
'60',
|
|
1048
|
-
'66',
|
|
1049
|
-
'67',
|
|
1050
|
-
'69',
|
|
1051
|
-
'4011',
|
|
1052
|
-
'111',
|
|
1053
|
-
'2049',
|
|
1054
|
-
'20048',
|
|
1055
|
-
'20049',
|
|
1056
|
-
'32765',
|
|
1057
|
-
'32766',
|
|
1058
|
-
'5248',
|
|
1059
|
-
'5240',
|
|
1060
|
-
];
|
|
1061
|
-
for (const port of ports) {
|
|
1062
|
-
shellExec(`ufw allow ${port}/tcp`);
|
|
1063
|
-
shellExec(`ufw allow ${port}/udp`);
|
|
1064
|
-
}
|
|
1065
|
-
|
|
1066
|
-
shellExec(`sudo systemctl mask firewalld`);
|
|
1067
|
-
|
|
1068
|
-
break;
|
|
1069
|
-
}
|
|
1070
|
-
|
|
1071
|
-
case 'iptables': {
|
|
1072
|
-
shellExec(`sudo systemctl enable nftables`);
|
|
1073
|
-
shellExec(`sudo systemctl restart nftables`);
|
|
1074
|
-
|
|
1075
|
-
shellExec(`sudo tee /etc/nftables.conf <<EOF
|
|
1076
|
-
table inet filter {
|
|
1077
|
-
chain input {
|
|
1078
|
-
type filter hook input priority 0;
|
|
1079
|
-
policy drop;
|
|
1080
|
-
tcp dport 22 accept
|
|
1081
|
-
}
|
|
1082
|
-
}
|
|
1083
|
-
EOF`);
|
|
1084
|
-
shellExec(`sudo nft -f /etc/nftables.conf`);
|
|
1085
|
-
|
|
1086
|
-
// sudo systemctl stop nftables
|
|
1087
|
-
// sudo systemctl disable nftables
|
|
1088
|
-
|
|
1089
|
-
break;
|
|
1090
|
-
}
|
|
1091
|
-
|
|
1092
|
-
case 'rpi4': {
|
|
1093
|
-
// Rpi4 Run Bootloader:
|
|
1094
|
-
|
|
1095
|
-
// 1) create boot.conf
|
|
1096
|
-
|
|
1097
|
-
// 2) Run lite RPiOs from rpi-imager
|
|
1098
|
-
// with boot.conf files in root disk path
|
|
1099
|
-
|
|
1100
|
-
// 3) cd /boot/firmware && sudo rpi-eeprom-config --apply boot.conf
|
|
1101
|
-
|
|
1102
|
-
// 4) sudo reboot
|
|
1103
|
-
|
|
1104
|
-
// 5) check: 'vcgencmd bootloader_version'
|
|
1105
|
-
// 6) check: 'vcgencmd bootloader_config'
|
|
1106
|
-
|
|
1107
|
-
// 7) shutdown and restart without sd card
|
|
1108
|
-
|
|
1109
|
-
// sudo apt update
|
|
1110
|
-
// sudo apt install git
|
|
1111
|
-
|
|
1112
|
-
break;
|
|
1113
|
-
}
|
|
1114
|
-
|
|
1115
|
-
case 'blue': {
|
|
1116
|
-
// lsusb | grep blue -i
|
|
1117
|
-
// rfkill list
|
|
1118
|
-
// sudo service bluetooth start
|
|
1119
|
-
// bluetoothctl show
|
|
1120
|
-
// sudo rfkill unblock bluetooth
|
|
1121
|
-
// dmesg | grep -i bluetooth
|
|
1122
|
-
// journalctl -u bluetooth -f
|
|
1123
|
-
// sudo dnf update bluez bluez-libs bluez-utils
|
|
1124
|
-
// sudo rmmod btusb
|
|
1125
|
-
// sudo modprobe btusb
|
|
1126
|
-
break;
|
|
1127
|
-
}
|
|
1128
|
-
|
|
1129
963
|
case 'fastapi-models': {
|
|
1130
964
|
shellExec(`chmod +x ../full-stack-fastapi-template/backend/initial_data.sh`);
|
|
1131
965
|
shellExec(`../full-stack-fastapi-template/backend/initial_data.sh`);
|
|
@@ -1380,13 +1214,84 @@ nvidia/gpu-operator \
|
|
|
1380
1214
|
break;
|
|
1381
1215
|
}
|
|
1382
1216
|
|
|
1383
|
-
case '
|
|
1384
|
-
|
|
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
|
+
}
|
|
1385
1288
|
|
|
1386
|
-
|
|
1387
|
-
|
|
1388
|
-
|
|
1389
|
-
|
|
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(' ')}"`);
|
|
1390
1295
|
break;
|
|
1391
1296
|
}
|
|
1392
1297
|
}
|
package/bin/file.js
CHANGED
|
@@ -112,6 +112,8 @@ try {
|
|
|
112
112
|
`./.github/workflows/ghpkg.ci.yml`,
|
|
113
113
|
`./.github/workflows/publish.ci.yml`,
|
|
114
114
|
`./.github/workflows/release.cd.yml`,
|
|
115
|
+
'./src/ws/IoInterface.js',
|
|
116
|
+
'./src/ws/IoServer.js',
|
|
115
117
|
])
|
|
116
118
|
fs.copyFileSync(_path, `../pwa-microservices-template/${_path}`);
|
|
117
119
|
|
|
@@ -165,13 +167,9 @@ try {
|
|
|
165
167
|
|
|
166
168
|
originMd =
|
|
167
169
|
originMd.split(`<!-- badges -->`)[0] +
|
|
168
|
-
|
|
169
|
-
<!-- badges -->
|
|
170
|
-
` +
|
|
170
|
+
`<!-- badges -->` +
|
|
171
171
|
badges +
|
|
172
|
-
|
|
173
|
-
<!-- end-badges -->
|
|
174
|
-
` +
|
|
172
|
+
`<!-- end-badges -->` +
|
|
175
173
|
originMd.split(`<!-- end-badges -->`)[1];
|
|
176
174
|
|
|
177
175
|
const splitKeyword = '## underpost ci/cd cli';
|
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
|
```
|
|
@@ -7,13 +7,13 @@
|
|
|
7
7
|
-h, --help display help for command
|
|
8
8
|
|
|
9
9
|
Commands:
|
|
10
|
-
new [options] <app-name> Initializes a new Underpost project
|
|
10
|
+
new [options] <app-name> Initializes a new Underpost project, service, or configuration.
|
|
11
11
|
start [options] <deploy-id> [env] Initiates application servers, build pipelines, or other defined services based on the deployment ID.
|
|
12
12
|
clone [options] <uri> Clones a specified GitHub repository into the current directory.
|
|
13
13
|
pull [options] <path> <uri> Pulls the latest changes from a specified GitHub repository.
|
|
14
14
|
cmt [options] <path> <commit-type> [module-tag] [message] Manages commits to a GitHub repository, supporting various commit types and options.
|
|
15
15
|
push [options] <path> <uri> Pushes committed changes from a local repository to a remote GitHub repository.
|
|
16
|
-
env
|
|
16
|
+
env [deploy-id] [env] [subConf] Sets environment variables and configurations related to a specific deployment ID.
|
|
17
17
|
config [options] <operator> [key] [value] Manages Underpost configurations using various operators.
|
|
18
18
|
root Displays the root path of the npm installation.
|
|
19
19
|
cluster [options] [pod-name] Manages Kubernetes clusters, defaulting to Kind cluster initialization.
|
|
@@ -44,16 +44,18 @@ Commands:
|
|
|
44
44
|
```
|
|
45
45
|
Usage: underpost new [options] <app-name>
|
|
46
46
|
|
|
47
|
-
Initializes a new Underpost project
|
|
47
|
+
Initializes a new Underpost project, service, or configuration.
|
|
48
48
|
|
|
49
49
|
Arguments:
|
|
50
|
-
app-name
|
|
50
|
+
app-name The name or deploy-id of the application to create.
|
|
51
51
|
|
|
52
52
|
Options:
|
|
53
|
-
--deploy-id
|
|
54
|
-
--cluster
|
|
55
|
-
|
|
56
|
-
|
|
53
|
+
--deploy-id Crete deploy ID conf env files
|
|
54
|
+
--cluster Create deploy ID cluster files and sync to current
|
|
55
|
+
cluster
|
|
56
|
+
--dev Sets the development cli context
|
|
57
|
+
--sub-conf <sub-conf> Create sub conf env files
|
|
58
|
+
-h, --help display help for command
|
|
57
59
|
|
|
58
60
|
```
|
|
59
61
|
|
|
@@ -157,16 +159,18 @@ Options:
|
|
|
157
159
|
|
|
158
160
|
### `env` :
|
|
159
161
|
```
|
|
160
|
-
Usage: underpost env [options]
|
|
162
|
+
Usage: underpost env [options] [deploy-id] [env] [subConf]
|
|
161
163
|
|
|
162
164
|
Sets environment variables and configurations related to a specific deployment
|
|
163
165
|
ID.
|
|
164
166
|
|
|
165
167
|
Arguments:
|
|
166
168
|
deploy-id The deployment configuration ID. Use 'clean' to restore default
|
|
167
|
-
environment settings.
|
|
169
|
+
environment settings. User 'root' to load root env. User
|
|
170
|
+
'current' to get plain current deploy Id.
|
|
168
171
|
env Optional: The environment to set (e.g., "production",
|
|
169
172
|
"development"). Defaults to "production".
|
|
173
|
+
subConf Optional: The sub configuration to set.
|
|
170
174
|
|
|
171
175
|
Options:
|
|
172
176
|
-h, --help display help for command
|
|
@@ -603,7 +607,7 @@ Options:
|
|
|
603
607
|
Runs a script from the specified path.
|
|
604
608
|
|
|
605
609
|
Arguments:
|
|
606
|
-
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.
|
|
607
611
|
path The absolute or relative directory path where the script is located.
|
|
608
612
|
|
|
609
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
|