@underpostnet/underpost 2.99.7 → 3.0.0

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 (55) hide show
  1. package/.env.development +2 -1
  2. package/.env.production +1 -0
  3. package/.env.test +2 -1
  4. package/.github/workflows/npmpkg.ci.yml +2 -1
  5. package/.github/workflows/publish.ci.yml +18 -34
  6. package/.vscode/extensions.json +8 -50
  7. package/.vscode/settings.json +0 -77
  8. package/CHANGELOG.md +91 -1
  9. package/{cli.md → CLI-HELP.md} +48 -41
  10. package/Dockerfile +15 -15
  11. package/README.md +8 -15
  12. package/bin/build.js +1 -15
  13. package/bin/deploy.js +4 -133
  14. package/bin/file.js +5 -24
  15. package/bin/zed.js +63 -2
  16. package/examples/static-page/ssr-components/CustomPage.js +1 -1
  17. package/jsdoc.json +1 -2
  18. package/manifests/cronjobs/dd-cron/dd-cron-backup.yaml +1 -1
  19. package/manifests/cronjobs/dd-cron/dd-cron-dns.yaml +1 -1
  20. package/manifests/deployment/dd-default-development/deployment.yaml +2 -2
  21. package/manifests/deployment/dd-test-development/deployment.yaml +2 -2
  22. package/manifests/deployment/fastapi/initial_data.sh +4 -52
  23. package/manifests/ipfs/configmap.yaml +57 -0
  24. package/manifests/ipfs/headless-service.yaml +35 -0
  25. package/manifests/ipfs/kustomization.yaml +8 -0
  26. package/manifests/ipfs/statefulset.yaml +149 -0
  27. package/manifests/ipfs/storage-class.yaml +9 -0
  28. package/package.json +5 -5
  29. package/scripts/k3s-node-setup.sh +89 -0
  30. package/scripts/lxd-vm-setup.sh +23 -0
  31. package/scripts/rocky-setup.sh +1 -13
  32. package/src/cli/baremetal.js +7 -9
  33. package/src/cli/cluster.js +72 -121
  34. package/src/cli/deploy.js +8 -5
  35. package/src/cli/index.js +31 -30
  36. package/src/cli/ipfs.js +184 -0
  37. package/src/cli/lxd.js +191 -236
  38. package/src/cli/repository.js +4 -1
  39. package/src/client/components/core/VanillaJs.js +0 -25
  40. package/src/client/services/user/user.management.js +0 -5
  41. package/src/client/services/user/user.service.js +1 -1
  42. package/src/db/mariadb/MariaDB.js +2 -2
  43. package/src/index.js +12 -1
  44. package/src/runtime/express/Dockerfile +15 -15
  45. package/src/runtime/lampp/Dockerfile +15 -15
  46. package/src/server/client-build-docs.js +26 -7
  47. package/src/server/conf.js +3 -20
  48. package/src/server/logger.js +22 -10
  49. package/.vscode/zed.keymap.json +0 -39
  50. package/.vscode/zed.settings.json +0 -20
  51. package/bin/cron.js +0 -47
  52. package/bin/db.js +0 -199
  53. package/bin/hwt.js +0 -49
  54. package/bin/util.js +0 -63
  55. package/manifests/lxd/underpost-setup.sh +0 -163
package/.env.development CHANGED
@@ -40,4 +40,5 @@ DEFAULT_ADMIN_EMAIL=admin@default.net
40
40
  DEFAULT_ADMIN_PASSWORD=changethis
41
41
  DEFAULT_SSH_PORT=22
42
42
  BASE_API=api
43
- DEV_PROXY_PORT_OFFSET=200
43
+ DEV_PROXY_PORT_OFFSET=200
44
+ ENABLE_FILE_LOGS=true
package/.env.production CHANGED
@@ -49,6 +49,7 @@ NPM_PASSWORD=changethis
49
49
  POSTMAN_EMAIL=admin@default.net
50
50
  POSTMAN_PASSWORD=changethis
51
51
  DEFAULT_SSH_PORT=22
52
+ ENABLE_FILE_LOGS=false
52
53
  BASE_API=api
53
54
  CERTBOT_LIVE_PATH=changethis
54
55
  CERTBOT_LIVE_PATH_WINDOWS=changethis
package/.env.test CHANGED
@@ -40,4 +40,5 @@ DEFAULT_ADMIN_EMAIL=admin@default.net
40
40
  DEFAULT_ADMIN_PASSWORD=changethis
41
41
  DEFAULT_SSH_PORT=22
42
42
  BASE_API=api
43
- DEV_PROXY_PORT_OFFSET=200
43
+ DEV_PROXY_PORT_OFFSET=200
44
+ ENABLE_FILE_LOGS=true
@@ -37,7 +37,8 @@ jobs:
37
37
  - name: Capture commit message
38
38
  run: |
39
39
  FULL_MSG="${{ github.event.head_commit.message }}"
40
- LAST_COMMIT_MESSAGE="${FULL_MSG:-update package}"
40
+ REST="$(echo "$FULL_MSG" | tail -n +2 | awk 'NR==1{first=$0; has_first=1; next} NR==2{print first " " $0; has_first=0; next} {print} END{if(has_first) print first}')"
41
+ LAST_COMMIT_MESSAGE="${REST:-$FULL_MSG}"
41
42
  echo "LAST_COMMIT_MESSAGE<<EOF" >> $GITHUB_ENV
42
43
  echo "$LAST_COMMIT_MESSAGE" >> $GITHUB_ENV
43
44
  echo "EOF" >> $GITHUB_ENV
@@ -1,7 +1,8 @@
1
1
  name: CI | Publish npm package
2
2
  on:
3
- release:
4
- types: [released]
3
+ push:
4
+ tags:
5
+ - 'v*'
5
6
  jobs:
6
7
  build-and-publish:
7
8
  # prevents this action from running on forks
@@ -12,26 +13,18 @@ jobs:
12
13
  id-token: write
13
14
  steps:
14
15
  - uses: actions/checkout@v4
16
+
15
17
  - uses: actions/setup-node@v4
16
18
  with:
17
19
  node-version: '24.x'
18
20
  registry-url: 'https://registry.npmjs.org'
19
21
 
20
22
  - name: Install Dependencies
21
- run: npm install
22
-
23
- - run: npm ci
23
+ run: npm ci
24
24
 
25
- # Publish to npm
26
- - uses: actions/setup-node@v4
27
- with:
28
- node-version: '24.x'
29
- registry-url: 'https://registry.npmjs.org'
30
- # Defaults to the user or organization that owns the workflow file
31
- # scope: '@underpostnet'
32
- - env:
25
+ - name: Publish to npm
26
+ env:
33
27
  NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
34
- name: Publish to npm
35
28
  run: npm publish --provenance --access public
36
29
 
37
30
  build-and-publish-ghpkg:
@@ -43,42 +36,33 @@ jobs:
43
36
  id-token: write
44
37
  steps:
45
38
  - uses: actions/checkout@v4
39
+
46
40
  - uses: actions/setup-node@v4
47
41
  with:
48
42
  node-version: '24.x'
49
43
  registry-url: 'https://registry.npmjs.org'
44
+ scope: '@underpostnet'
50
45
 
51
46
  - name: Install Dependencies
52
- run: npm install
47
+ run: npm ci
53
48
 
54
- - run: npm ci
55
-
56
- # Publish to npm git hub package
57
- - uses: actions/setup-node@v4
58
- with:
59
- node-version: '24.x'
60
- registry-url: 'https://registry.npmjs.org'
61
- # Defaults to the user or organization that owns the workflow file
62
- scope: '@underpostnet'
63
- - env:
49
+ - name: Publish to npm
50
+ env:
64
51
  NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
65
- name: Publish to npm
66
- run: |
67
- npm publish --provenance --access public
52
+ run: npm publish --provenance --access public
68
53
 
69
- # Publish to GitHub Packages
70
54
  - name: Setup node to publish to GitHub Packages
71
55
  uses: actions/setup-node@v4
72
56
  with:
73
- node-version: 24.x
57
+ node-version: '24.x'
74
58
  registry-url: 'https://npm.pkg.github.com'
75
- # Defaults to the user or organization that owns the workflow file
76
59
  scope: '@underpostnet'
77
60
 
78
- - run: |
61
+ - name: Publish to GitHub Packages
62
+ run: |
79
63
  npm config set //npm.pkg.github.com/:_authToken=${{ secrets.GIT_AUTH_TOKEN }}
80
64
  echo "//npm.pkg.github.com/:_authToken=${{ secrets.GIT_AUTH_TOKEN }}" > ~/.npmrc
81
- echo "@underposnet:registry=https://npm.pkg.github.com" >> ~/.npmrc
65
+ echo "@underpostnet:registry=https://npm.pkg.github.com" >> ~/.npmrc
82
66
  npm publish
83
67
  env:
84
- NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
68
+ NODE_AUTH_TOKEN: ${{ secrets.GIT_AUTH_TOKEN }}
@@ -1,51 +1,9 @@
1
1
  {
2
- "recommendations": [
3
- "antiantisepticeye.vscode-color-picker",
4
- "bashmish.es6-string-css",
5
- "codeium.codeium",
6
- "eamodio.gitlens",
7
- "esbenp.prettier-vscode",
8
- "formulahendry.code-runner",
9
- "github.codespaces",
10
- "github.vscode-github-actions",
11
- "golang.go",
12
- "gruntfuggly.todo-tree",
13
- "mechatroner.rainbow-csv",
14
- "mindaro-dev.file-downloader",
15
- "ms-azuretools.vscode-containers",
16
- "ms-azuretools.vscode-docker",
17
- "ms-kubernetes-tools.vscode-kubernetes-tools",
18
- "ms-python.black-formatter",
19
- "ms-python.debugpy",
20
- "ms-python.python",
21
- "ms-python.vscode-pylance",
22
- "ms-vscode-remote.remote-containers",
23
- "oderwat.indent-rainbow",
24
- "pleiades.java-extension-pack-jdk",
25
- "ravioshankar.scala-gurus",
26
- "redhat.java",
27
- "redhat.vscode-xml",
28
- "redhat.vscode-yaml",
29
- "ritwickdey.liveserver",
30
- "scala-lang.scala",
31
- "scala-lang.scala-snippets",
32
- "scalameta.metals",
33
- "shakram02.bash-beautify",
34
- "shardulm94.trailing-spaces",
35
- "streetsidesoftware.code-spell-checker",
36
- "tamasfe.even-better-toml",
37
- "tobermory.es6-string-html",
38
- "visualstudioexptteam.intellicode-api-usage-examples",
39
- "visualstudioexptteam.vscodeintellicode",
40
- "vmware.vscode-boot-dev-pack",
41
- "vmware.vscode-spring-boot",
42
- "vscjava.vscode-gradle",
43
- "vscjava.vscode-java-debug",
44
- "vscjava.vscode-java-dependency",
45
- "vscjava.vscode-java-pack",
46
- "vscjava.vscode-java-test",
47
- "vscjava.vscode-maven",
48
- "vscjava.vscode-spring-boot-dashboard",
49
- "vscjava.vscode-spring-initializr"
50
- ]
51
- }
2
+ "recommendations": [
3
+ "antiantisepticeye.vscode-color-picker",
4
+ "bashmish.es6-string-css",
5
+ "eamodio.gitlens",
6
+ "esbenp.prettier-vscode",
7
+ "tobermory.es6-string-html",
8
+ ],
9
+ }
@@ -6,81 +6,4 @@
6
6
  "[javascript]": {
7
7
  "editor.defaultFormatter": "esbenp.prettier-vscode",
8
8
  },
9
- "[python]": {
10
- "editor.defaultFormatter": "ms-python.python",
11
- },
12
- "cSpell.words": [
13
- "adminer",
14
- "ANAME",
15
- "browserconfig",
16
- "Bymyelectrics",
17
- "certbot",
18
- "certonly",
19
- "changefreq",
20
- "chebyshev",
21
- "Cids",
22
- "Contracultura",
23
- "cooldown",
24
- "cryptokoyn",
25
- "cyberia",
26
- "cyberiaonline",
27
- "dbname",
28
- "dists",
29
- "DNSSEC",
30
- "DOGMADUAL",
31
- "dondominio",
32
- "dont",
33
- "fileupload",
34
- "fontawesome",
35
- "fortawesome",
36
- "gameplay",
37
- "googlebot",
38
- "Hexa",
39
- "htdocs",
40
- "htmls",
41
- "inet",
42
- "inlt",
43
- "Itemledger",
44
- "jsonld",
45
- "lampp",
46
- "letsencrypt",
47
- "loadingio",
48
- "Longname",
49
- "metanarrative",
50
- "Microdata",
51
- "minami",
52
- "MMORPG",
53
- "mongosh",
54
- "mysqldump",
55
- "neodrag",
56
- "nexodev",
57
- "pathfinding",
58
- "Pixi",
59
- "privkey",
60
- "runas",
61
- "Scatterplot",
62
- "sortablejs",
63
- "statefulset",
64
- "supervisord",
65
- "Tokenomics",
66
- "underpost",
67
- "underpostnet",
68
- "Unequip",
69
- "uuidv",
70
- "Valkey",
71
- "webroot",
72
- "xampp",
73
- "xfwd",
74
- "youtu",
75
- ],
76
- "[php]": {
77
- "editor.defaultFormatter": "bmewburn.vscode-intelephense-client",
78
- },
79
- "[xml]": {
80
- "editor.defaultFormatter": "redhat.vscode-xml",
81
- },
82
-
83
- "files.watcherExclude": {
84
- "**/target": true,
85
- },
86
9
  }
package/CHANGELOG.md CHANGED
@@ -1,6 +1,96 @@
1
1
  # Changelog
2
2
 
3
- ## 2026-02-17
3
+ ## 2026-02-22
4
+
5
+ ### engine-core
6
+
7
+ - Add ENABLE_FILE_LOGS env ([8657e35f](https://github.com/underpostnet/engine/commit/8657e35f2dab6cf1507a9b3f9146df45ab07d0dd))
8
+
9
+ ### docs
10
+
11
+ - Rename cli.md -> CLI-HELP.md ([18e18689](https://github.com/underpostnet/engine/commit/18e18689349227b2c8769eec9f4e1ebeb85b8cf0))
12
+ - Apply fix in swagger-autogen@2.9.2 bug: getResponsesTag missing __¬¬¬__ decode ([2b0d27db](https://github.com/underpostnet/engine/commit/2b0d27db38307d9276b14651083b0ac0c20ecaed))
13
+ - Remove unused jsdocs sections ([ec06f338](https://github.com/underpostnet/engine/commit/ec06f338cca5d656f46629b8957e3ded183ecff7))
14
+
15
+ ### bin-zed
16
+
17
+ - Move zed settings file tod zed js bin module ([ba32abea](https://github.com/underpostnet/engine/commit/ba32abeaff4d198c79bcd92ab0fc0120bb41d9d5))
18
+
19
+ ### client-core
20
+
21
+ - Fix clear filter user management ([a1d79661](https://github.com/underpostnet/engine/commit/a1d796612654f0e03a4d64ad16dfed403ad0a771))
22
+
23
+ ### package
24
+
25
+ - Fix resolve npm minimatch ReDoS vulnerability ([4739fea1](https://github.com/underpostnet/engine/commit/4739fea18407b88e407f7b4be109f2ecc3a3435e))
26
+ - Apply npm audit fix ([9496c5c7](https://github.com/underpostnet/engine/commit/9496c5c77980102fcb402aae29de3f72337adcc4))
27
+ - Apply npm audit fix versions packages ([a1ed004e](https://github.com/underpostnet/engine/commit/a1ed004eecc1219e612027e9bc1f2fab4c717517))
28
+
29
+ ### server-client-build-docs
30
+
31
+ - Apply Swagger autogen syntax error fix of version v2.9.2 ([7c8da2ff](https://github.com/underpostnet/engine/commit/7c8da2ff7ffd55e7b0492f019a2b44294137ab39))
32
+
33
+ ### vscode
34
+
35
+ - Remove vs deprecated settings conf, and remove vs extension to minimal and remove comments of vs extensions in vanilla js ([b2aec354](https://github.com/underpostnet/engine/commit/b2aec354e757f136265b564a86cd1744bd460d88))
36
+
37
+ ### cli-ipfs
38
+
39
+ - Implements base ipfs underpost dedicated module ([7f4f27f9](https://github.com/underpostnet/engine/commit/7f4f27f9c63ff149c5dd4de57952961a2b3498d0))
40
+
41
+ ### cli-cluster
42
+
43
+ - Add Main IPFS Cluster StatefulSet Integration ([53dd0903](https://github.com/underpostnet/engine/commit/53dd09038b47d1a8330ff1e72b0087d2600c93b9))
44
+ - Add --exposePort custom flag ([a29185fe](https://github.com/underpostnet/engine/commit/a29185fe6f48c3babaa66d142d042909ca8b0889))
45
+ - Refactor pullImage load docker pull images to kind nodes ([3bdd5e78](https://github.com/underpostnet/engine/commit/3bdd5e787c242318cbab032816adf0008e9ab9dd))
46
+ - Add --replicas custom option ([70bdc6cd](https://github.com/underpostnet/engine/commit/70bdc6cdc0cf2aa3b2025133a5438f55d7e1ad18))
47
+ - Centralize pullImage for k3s kubeadm kind ([873b20d5](https://github.com/underpostnet/engine/commit/873b20d5a24b07afea39a95e0f705d1f8f01050b))
48
+ - Add snap install on init host workflow and cluster safeReset refactor ([48b4c33d](https://github.com/underpostnet/engine/commit/48b4c33d59166d54042fc5f96b5b524eccbdf1ec))
49
+
50
+ ### server-logger
51
+
52
+ - Add optional file logging to logger factory ([ef18a29e](https://github.com/underpostnet/engine/commit/ef18a29e6e31e24e0e705446ca3cdf8804bda6ef))
53
+
54
+ ### cli-lxd
55
+
56
+ - Refactor lxd module and workflows to vm cluster with k3s control and worker node integration ([812d5cdd](https://github.com/underpostnet/engine/commit/812d5cdd86f3055c448b594c218ae6e99c365e38))
57
+
58
+ ### bin-deploy
59
+
60
+ - Clean up legacy logic ([d3cb1139](https://github.com/underpostnet/engine/commit/d3cb1139b3670915f6c612fd127541debb717d86))
61
+
62
+ ### github-actions
63
+
64
+ - Add ref to checkout for provenance in cyberia publish workflow package ([6e0f9b59](https://github.com/underpostnet/engine/commit/6e0f9b5939103a366d28c4940e859d545cabdc34))
65
+ - Add ref to checkout for provenance ([0512ebec](https://github.com/underpostnet/engine/commit/0512ebecf65d1379d29c2c0e2377733a4265c06f))
66
+ - Remove copying of MariaDB.js to underpost directory. ([d64c64ee](https://github.com/underpostnet/engine/commit/d64c64ee99b015dd1e956f6ccc9055fcb73057f9))
67
+ - Fix package-pwa-microservices-template-ghpkg commit message propagation logic ([c8ef2ea8](https://github.com/underpostnet/engine/commit/c8ef2ea8d89d1a37c4dacef4d2538304605369fc))
68
+
69
+ ## New release v:2.99.8 (2026-02-18)
70
+
71
+ ### github-actions
72
+
73
+ - Fix last commit message in npmpkg workflow ([6dd0f484](https://github.com/underpostnet/engine/commit/6dd0f48452fd9810eeb3f535d8859d7e92a418fd))
74
+ - Fix MariaDB import in CI workflows ([2002c11f](https://github.com/underpostnet/engine/commit/2002c11f312293be00c6434e4ba64a81a370e1df))
75
+ - Fix GitHub Actions commit message ([e36c4fb6](https://github.com/underpostnet/engine/commit/e36c4fb6592d17e4d3ffca1e8eede90105a5847b))
76
+
77
+ ### dockerfile
78
+
79
+ - Underpost image dockerfiles file formats and clean comment ([6e22157c](https://github.com/underpostnet/engine/commit/6e22157c3d276aab9dc328165e7bc686a339663b))
80
+
81
+ ### conf
82
+
83
+ - Fix repository README logic builder ([d88c5317](https://github.com/underpostnet/engine/commit/d88c5317e32b18b8d180d028e4ef9388ce6db78a))
84
+
85
+ ### db
86
+
87
+ - Fix MariaDB import ([6edf3719](https://github.com/underpostnet/engine/commit/6edf3719bf4ee71ebe30fb1e7e5a9767aaefe352))
88
+
89
+ ### cli-static
90
+
91
+ - Fix module js doc path ([6b10a929](https://github.com/underpostnet/engine/commit/6b10a9295422425863ef24f6eb7d76c67b248385))
92
+
93
+ ## New release v:2.99.7 (2026-02-17)
4
94
 
5
95
  ### cli-ssh
6
96
 
@@ -1,4 +1,4 @@
1
- ## underpost ci/cd cli v2.99.7
1
+ ## underpost ci/cd cli v3.0.0
2
2
 
3
3
  ### Usage: `underpost [options] [command]`
4
4
  ```
@@ -31,7 +31,7 @@ Commands:
31
31
  monitor [options] <deploy-id> [env] Manages health server monitoring for specified deployments.
32
32
  ssh [options] Manages SSH credentials and sessions for remote access to cluster nodes or services.
33
33
  run [options] <runner-id> [path] Runs specified scripts using various runners.
34
- lxd [options] Manages LXD containers and virtual machines.
34
+ lxd [options] Manages LXD virtual machines as K3s nodes (control plane or workers).
35
35
  baremetal [options] [workflow-id] Manages baremetal server operations, including installation, database setup, commissioning, and user management.
36
36
  help [command] display help for command
37
37
 
@@ -370,6 +370,8 @@ Options:
370
370
  4.4 service.
371
371
  --valkey Initializes the cluster with a Valkey
372
372
  service.
373
+ --ipfs Initializes the cluster with an
374
+ ipfs-cluster statefulset.
373
375
  --contour Initializes the cluster with Project
374
376
  Contour base HTTPProxy and Envoy.
375
377
  --cert-manager Initializes the cluster with a Let's
@@ -408,7 +410,6 @@ Options:
408
410
  by init-host.
409
411
  --config Sets the base Kubernetes node
410
412
  configuration.
411
- --worker Sets the context for a worker node.
412
413
  --chown Sets the appropriate ownership for
413
414
  Kubernetes kubeconfig files.
414
415
  --k3s Initializes the cluster using K3s
@@ -419,6 +420,8 @@ Options:
419
420
  after execution.
420
421
  --namespace <namespace> Kubernetes namespace for cluster
421
422
  operations (defaults to "default").
423
+ --replicas <replicas> Sets a custom number of replicas for
424
+ statefulset deployments.
422
425
  -h, --help display help for command
423
426
 
424
427
  ```
@@ -491,6 +494,9 @@ Options:
491
494
  deployment operations.
492
495
  --port <port> Sets up port forwarding from local to
493
496
  remote ports.
497
+ --expose-port <port> Sets the local:remote port to expose when
498
+ --expose is active (overrides
499
+ auto-detected service port).
494
500
  --cmd <cmd> Custom initialization command for
495
501
  deployment (comma-separated commands).
496
502
  -h, --help display help for command
@@ -904,47 +910,48 @@ Options:
904
910
  ```
905
911
  Usage: underpost lxd [options]
906
912
 
907
- Manages LXD containers and virtual machines.
913
+ Manages LXD virtual machines as K3s nodes (control plane or workers).
908
914
 
909
915
  Options:
910
- --init Initializes LXD on the current machine.
911
- --reset Resets LXD on the current machine, deleting
912
- all configurations.
913
- --install Installs LXD on the current machine.
914
- --dev Sets the development context environment for
915
- LXD.
916
- --create-virtual-network Creates an LXD virtual network bridge.
917
- --create-admin-profile Creates an admin profile for LXD management.
918
- --control Sets the context for a control node VM.
919
- --worker Sets the context for a worker node VM.
920
- --create-vm <vm-id> Creates default virtual machines with the
921
- specified ID.
922
- --init-vm <vm-id> Retrieves the Underpost initialization
923
- script for the specified VM.
924
- --info-vm <vm-id> Retrieves all information about the
916
+ --init Initializes LXD on the current machine via
917
+ preseed.
918
+ --reset Removes the LXD snap and purges all data.
919
+ --install Installs the LXD snap.
920
+ --dev Use local paths instead of the global npm
921
+ installation.
922
+ --create-virtual-network Creates the lxdbr0 bridge network.
923
+ --ipv4-address <cidr> IPv4 address/CIDR for the lxdbr0 bridge
924
+ network (default: "10.250.250.1/24").
925
+ --create-admin-profile Creates the admin-profile for VM management.
926
+ --control Initialize the target VM as a K3s control
927
+ plane node.
928
+ --worker Initialize the target VM as a K3s worker
929
+ node.
930
+ --create-vm <vm-name> Copy the LXC launch command for a new K3s VM
931
+ to the clipboard.
932
+ --delete-vm <vm-name> Stop and delete the specified VM.
933
+ --init-vm <vm-name> Run k3s-node-setup.sh on the specified VM
934
+ (use with --control or --worker).
935
+ --info-vm <vm-name> Display full configuration and status for
936
+ the specified VM.
937
+ --test <vm-name> Run connectivity and health checks on the
925
938
  specified VM.
926
- --test <vm-id> Tests the health, status, and network
927
- connectivity for a VM.
928
- --root-size <gb-size> Sets the root partition size (in GB) for the
929
- VM.
930
- --k3s Flag to indicate that the VM initialization
931
- is for a K3s cluster type.
932
- --join-node <nodes> A comma-separated list of worker and control
933
- nodes to join (e.g.,
934
- "k8s-worker-1,k8s-control").
935
- --expose <vm-name-ports> Exposes specified ports on a VM (e.g.,
936
- "k8s-control:80,443"). Multiple VM-port
937
- pairs can be comma-separated.
938
- --delete-expose <vm-name-ports> Removes exposed ports on a VM (e.g.,
939
- "k8s-control:80,443"). Multiple VM-port
940
- pairs can be comma-separated.
941
- --workflow-id <workflow-id> Sets the workflow ID context for LXD
942
- operations.
943
- --vm-id <vm-id> Sets the VM ID context for LXD operations.
944
- --deploy-id <deploy-id> Sets the deployment ID context for LXD
945
- operations.
946
- --namespace <namespace> Kubernetes namespace for LXD operations
947
- (defaults to "default").
939
+ --root-size <gb-size> Root disk size in GiB for --create-vm
940
+ (default: 32).
941
+ --join-node <nodes> Join a K3s worker to a control plane.
942
+ Standalone format: "workerName,controlName".
943
+ When used with --init-vm --worker, provide
944
+ just the control node name for auto-join.
945
+ --expose <vm-name:ports> Proxy host ports to a VM (e.g.,
946
+ "k3s-control:80,443").
947
+ --delete-expose <vm-name:ports> Remove proxied ports from a VM (e.g.,
948
+ "k3s-control:80,443").
949
+ --workflow-id <workflow-id> Workflow ID to execute via runWorkflow.
950
+ --vm-id <vm-name> Target VM name for workflow execution.
951
+ --deploy-id <deploy-id> Deployment ID context for workflow
952
+ execution.
953
+ --namespace <namespace> Kubernetes namespace context (defaults to
954
+ "default").
948
955
  -h, --help display help for command
949
956
 
950
957
  ```
package/Dockerfile CHANGED
@@ -1,23 +1,23 @@
1
1
  FROM rockylinux:9
2
2
 
3
- # --- Update and install required packages
3
+ # Update and install required packages
4
4
  RUN dnf -y update && \
5
5
  dnf -y install epel-release && \
6
6
  dnf -y install --allowerasing \
7
- bzip2 \
8
- sudo \
9
- curl \
10
- net-tools \
11
- openssh-server \
12
- nano \
13
- vim-enhanced \
14
- less \
15
- openssl-devel \
16
- wget \
17
- git \
18
- gnupg2 \
19
- libnsl \
20
- perl && \
7
+ bzip2 \
8
+ sudo \
9
+ curl \
10
+ net-tools \
11
+ openssh-server \
12
+ nano \
13
+ vim-enhanced \
14
+ less \
15
+ openssl-devel \
16
+ wget \
17
+ git \
18
+ gnupg2 \
19
+ libnsl \
20
+ perl && \
21
21
  dnf clean all
22
22
 
23
23
 
package/README.md CHANGED
@@ -10,17 +10,13 @@
10
10
 
11
11
  <div align="center">
12
12
 
13
- <a target="_top" href='https://rockylinux.org/download'><img alt='rockylinux' src='https://img.shields.io/badge/Rocky Linux v9.6-100000?style=flat&logo=rockylinux&logoColor=white&labelColor=10b981&color=727273'/></a> <a target="_top" href='https://www.npmjs.com/package/npm/v/11.6.2'><img alt='npm' src='https://img.shields.io/badge/npm v11.6.2-100000?style=flat&logo=npm&logoColor=white&labelColor=CB3837&color=727273'/></a> <a target="_top" href='https://nodejs.org/download/release/v22.9.0/'><img alt='nodedotjs' src='https://img.shields.io/badge/node v24.10.0-100000?style=flat&logo=nodedotjs&logoColor=white&labelColor=5FA04E&color=727273'/></a> <a target="_top" href='https://pgp.mongodb.com/'><img alt='mongodb' src='https://img.shields.io/badge/mongodb_server v7.0-100000?style=flat&logo=mongodb&logoColor=white&labelColor=47A248&color=727273'/></a>
13
+ <a target="_top" href='https://download.rockylinux.org/pub/rocky/9/'><img alt='rockylinux' src='https://img.shields.io/badge/Rocky Linux v9.6-100000?style=flat&logo=rockylinux&logoColor=white&labelColor=10b981&color=727273'/></a> <a target="_top" href='https://www.npmjs.com/package/npm?activeTab=versions'><img alt='npm' src='https://img.shields.io/badge/npm v11.6.2-100000?style=flat&logo=npm&logoColor=white&labelColor=CB3837&color=727273'/></a> <a target="_top" href='https://nodejs.org/download/release'><img alt='nodedotjs' src='https://img.shields.io/badge/node v24.10.0-100000?style=flat&logo=nodedotjs&logoColor=white&labelColor=5FA04E&color=727273'/></a> <a target="_top" href='https://pgp.mongodb.com/'><img alt='mongodb' src='https://img.shields.io/badge/mongodb_server v7.0-100000?style=flat&logo=mongodb&logoColor=white&labelColor=47A248&color=727273'/></a>
14
14
 
15
15
  </div>
16
16
 
17
17
  <div align="center">
18
18
 
19
- <!-- badges -->
20
-
21
- [![Node.js CI](https://github.com/underpostnet/engine/actions/workflows/docker-image.ci.yml/badge.svg?branch=master)](https://github.com/underpostnet/engine/actions/workflows/docker-image.yml) [![Test](https://github.com/underpostnet/engine/actions/workflows/coverall.ci.yml/badge.svg?branch=master)](https://github.com/underpostnet/engine/actions/workflows/coverall.ci.yml) [![Downloads](https://img.shields.io/npm/dm/underpost.svg)](https://www.npmjs.com/package/underpost) [![Socket Badge](https://socket.dev/api/badge/npm/package/underpost/2.99.7)](https://socket.dev/npm/package/underpost/overview/2.99.7) [![Coverage Status](https://coveralls.io/repos/github/underpostnet/engine/badge.svg?branch=master)](https://coveralls.io/github/underpostnet/engine?branch=master) [![Version](https://img.shields.io/npm/v/underpost.svg)](https://www.npmjs.org/package/underpost) [![License](https://img.shields.io/npm/l/underpost.svg)](https://www.npmjs.com/package/underpost)
22
-
23
- <!-- end-badges -->
19
+ [![Node.js CI](https://github.com/underpostnet/engine/actions/workflows/docker-image.ci.yml/badge.svg?branch=master)](https://github.com/underpostnet/engine/actions/workflows/docker-image.yml) [![Test](https://github.com/underpostnet/engine/actions/workflows/coverall.ci.yml/badge.svg?branch=master)](https://github.com/underpostnet/engine/actions/workflows/coverall.ci.yml) [![Downloads](https://img.shields.io/npm/dm/underpost.svg)](https://www.npmjs.com/package/underpost) [![Socket Badge](https://socket.dev/api/badge/npm/package/underpost/3.0.0)](https://socket.dev/npm/package/underpost/overview/3.0.0) [![Coverage Status](https://coveralls.io/repos/github/underpostnet/engine/badge.svg?branch=master)](https://coveralls.io/github/underpostnet/engine?branch=master) [![Version](https://img.shields.io/npm/v/underpost.svg)](https://www.npmjs.org/package/underpost) [![License](https://img.shields.io/npm/l/underpost.svg)](https://www.npmjs.com/package/underpost)
24
20
 
25
21
  </div>
26
22
 
@@ -32,10 +28,6 @@
32
28
 
33
29
  </div>
34
30
 
35
- <!-- #### Optional version environments -->
36
- <!-- https://kapasia-dev-ed.my.site.com/Badges4Me/s/ -->
37
- <!-- https://simpleicons.org/ -->
38
-
39
31
  ## Create a new project
40
32
 
41
33
  ```bash
@@ -46,7 +38,7 @@ npm install -g underpost
46
38
  underpost new app-name
47
39
  ```
48
40
 
49
- After template installation, the server will be running on [http://localhost:4001](http://localhost:4001)
41
+ After template installation, the server will be running on <a target="_top" href="http://localhost:4001">http://localhost:4001</a>
50
42
 
51
43
  ## Usage
52
44
 
@@ -65,8 +57,10 @@ Run dev client server
65
57
  ```bash
66
58
  npm run dev
67
59
  ```
68
- <!-- -->
69
- ## underpost ci/cd cli v2.99.7
60
+
61
+ <a target="_top" href="https://www.nexodev.org/docs?cid=src">See Docs here.</a>
62
+
63
+ ## underpost ci/cd cli v3.0.0
70
64
 
71
65
  ### Usage: `underpost [options] [command]`
72
66
  ```
@@ -105,5 +99,4 @@ Commands:
105
99
 
106
100
  ```
107
101
 
108
- <a target="_top" href="https://github.com/underpostnet/pwa-microservices-template/blob/master/cli.md">See complete CLI Docs here.</a>
109
-
102
+ <a target="_top" href="https://github.com/underpostnet/pwa-microservices-template/blob/master/CLI-HELP.md">See CLI Docs here.</a>
package/bin/build.js CHANGED
@@ -10,13 +10,6 @@ if (fs.existsSync(baseConfPath)) dotenv.config({ path: baseConfPath, override: t
10
10
 
11
11
  const logger = loggerFactory(import.meta);
12
12
 
13
- // (async () => {
14
- // return;
15
- // const files = await fs.readdir(`./src`);
16
- // for (const relativePath of files) {
17
- // }
18
- // })();
19
-
20
13
  const confName = process.argv[2];
21
14
  const basePath = '../pwa-microservices-template';
22
15
  const repoName = `engine-${confName.split('dd-')[1]}`;
@@ -24,20 +17,13 @@ const deployList = (confName === 'dd' ? fs.readFileSync(`./engine-private/deploy
24
17
  ',',
25
18
  );
26
19
 
27
- logger.info('', {
20
+ logger.info('Build repository', {
28
21
  confName,
29
22
  repoName,
30
23
  basePath,
31
24
  deployList,
32
25
  });
33
26
 
34
- if (process.argv.includes('clean')) {
35
- if (fs.existsSync(`${basePath}/images`)) fs.copySync(`${basePath}/images`, `./images`);
36
- shellExec(`cd ${basePath} && git checkout .`);
37
- shellExec(`cd ${basePath} && git clean -f -d`);
38
- process.exit(0);
39
- }
40
-
41
27
  if (process.argv.includes('conf')) {
42
28
  for (const _confName of deployList) {
43
29
  const _repoName = `engine-${_confName.split('dd-')[1]}`;