@underpostnet/cyberia 3.2.80 → 3.3.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 (162) hide show
  1. package/.env.example +50 -15
  2. package/.github/workflows/coverall.cyberia.ci.yml +87 -0
  3. package/.github/workflows/cyberia-client.cd.yml +2 -7
  4. package/.github/workflows/cyberia-server.cd.yml +2 -7
  5. package/.github/workflows/docker-image.cyberia-client.ci.yml +4 -4
  6. package/.github/workflows/docker-image.cyberia-client.dev.ci.yml +4 -4
  7. package/.github/workflows/docker-image.cyberia-server.ci.yml +4 -4
  8. package/.github/workflows/docker-image.cyberia-server.dev.ci.yml +4 -4
  9. package/.github/workflows/docker-image.engine-cyberia.ci.yml +3 -3
  10. package/.github/workflows/docker-image.engine-cyberia.dev.ci.yml +3 -3
  11. package/.github/workflows/engine-cyberia.cd.yml +3 -67
  12. package/.github/workflows/ghpkg.ci.yml +7 -1
  13. package/.github/workflows/pwa-microservices-template-page.cd.yml +1 -16
  14. package/.github/workflows/pwa-microservices-template-test.ci.yml +1 -1
  15. package/.github/workflows/release.cd.yml +1 -9
  16. package/CHANGELOG.md +291 -1
  17. package/CLI-HELP.md +174 -23
  18. package/Dockerfile +1 -1
  19. package/Dockerfile.dev +1 -1
  20. package/Dockerfile.test +1 -1
  21. package/bin/build.js +7 -5
  22. package/bin/cyberia.js +272 -98
  23. package/bin/deploy.js +19 -17
  24. package/bin/index.js +272 -98
  25. package/compose.env +50 -15
  26. package/conf.js +2 -0
  27. package/deploy/dd-cyberia/deploy.sh +42 -0
  28. package/deploy/dd-cyberia/init.sh +63 -0
  29. package/deploy/dd-cyberia/sync-deploy.sh +194 -0
  30. package/deploy/lib/logging.sh +96 -0
  31. package/deploy/pwa-microservices-template/deploy.sh +72 -0
  32. package/deploy/release/deploy.sh +62 -0
  33. package/deployment.yaml +1 -210
  34. package/docker-compose.yml +90 -85
  35. package/hardhat/package-lock.json +139 -131
  36. package/hardhat/package.json +4 -4
  37. package/manifests/cronjobs/dd-cron/dd-cron-backup.yaml +5 -1
  38. package/manifests/cronjobs/dd-cron/dd-cron-dns.yaml +1 -1
  39. package/manifests/cronjobs/dd-cron/dd-cron-vultr.yaml +52 -0
  40. package/manifests/deployment/dd-cyberia-development/deployment.yaml +1 -210
  41. package/manifests/deployment/dd-cyberia-development/gateway.yaml +80 -0
  42. package/manifests/deployment/dd-cyberia-development/httproute.yaml +504 -0
  43. package/manifests/deployment/dd-cyberia-development/proxy.yaml +12 -12
  44. package/manifests/deployment/dd-cyberia-development/pv-pvc.yaml +0 -82
  45. package/manifests/deployment/dd-cyberia-development/traffic-service.yaml +121 -0
  46. package/manifests/deployment/dd-default-development/deployment.yaml +2 -2
  47. package/manifests/deployment/playwright/deployment.yaml +1 -1
  48. package/manifests/mongodb/kustomization.yaml +4 -1
  49. package/manifests/mongodb/statefulset.yaml +4 -0
  50. package/manifests/mongodb/storage-class.yaml +9 -2
  51. package/nginx.conf +86 -16
  52. package/package.json +2 -2
  53. package/proxy.yaml +12 -12
  54. package/pv-pvc.yaml +0 -82
  55. package/scripts/audit-selinux.sh +64 -0
  56. package/scripts/coverall-test-cyberia.sh +24 -0
  57. package/scripts/coverall-test.sh +24 -0
  58. package/scripts/gpu-diag.sh +0 -0
  59. package/scripts/ip-info.sh +0 -0
  60. package/scripts/k3s-node-setup.sh +18 -15
  61. package/scripts/kubeadm-node-setup.sh +12 -23
  62. package/scripts/link-local-underpost-cli.sh +0 -0
  63. package/scripts/lxd-vm-setup.sh +0 -0
  64. package/scripts/maas-nat-firewalld.sh +0 -0
  65. package/scripts/nat-iptables.sh +12 -4
  66. package/scripts/rhel-grpc-setup.sh +0 -0
  67. package/scripts/rocky-kickstart.sh +25 -9
  68. package/scripts/test-monitor.sh +4 -3
  69. package/src/api/cyberia-action/cyberia-action.model.js +1 -0
  70. package/src/api/cyberia-instance/cyberia-fallback-default-items.js +63 -0
  71. package/src/api/cyberia-instance/cyberia-fallback-world.js +49 -15
  72. package/src/api/cyberia-instance/cyberia-instance-map.service.js +8 -12
  73. package/src/api/cyberia-instance/cyberia-instance.controller.js +3 -0
  74. package/src/api/cyberia-instance/cyberia-instance.router.js +13 -0
  75. package/src/api/cyberia-instance/cyberia-instance.service.js +43 -0
  76. package/src/api/cyberia-instance/cyberia-portal-connector.js +7 -5
  77. package/src/api/cyberia-instance/cyberia-random-source.js +80 -0
  78. package/src/api/cyberia-instance/cyberia-world-generator.js +4 -3
  79. package/src/api/cyberia-instance-conf/cyberia-instance-conf.model.js +1 -0
  80. package/src/api/cyberia-server-defaults/cyberia-server-defaults.js +87 -1
  81. package/src/api/object-layer/object-layer.model.js +204 -3
  82. package/src/api/object-layer/object-layer.service.js +1 -14
  83. package/src/cli/baremetal.js +1 -2
  84. package/src/cli/cloud-init.js +1 -1
  85. package/src/cli/cluster.js +786 -96
  86. package/src/cli/db.js +11 -4
  87. package/src/cli/deploy.js +1698 -177
  88. package/src/cli/docker-compose.js +19 -178
  89. package/src/cli/env.js +1 -1
  90. package/src/cli/image.js +15 -7
  91. package/src/cli/index.js +245 -44
  92. package/src/cli/ipfs.js +82 -11
  93. package/src/cli/lxd.js +1 -1
  94. package/src/cli/monitor.js +2 -2
  95. package/src/cli/release.js +57 -22
  96. package/src/cli/repository.js +12 -10
  97. package/src/cli/run.js +2195 -427
  98. package/src/cli/secrets.js +969 -0
  99. package/src/cli/ssh.js +206 -105
  100. package/src/cli/system.js +26 -13
  101. package/src/cli/test.js +1 -1
  102. package/src/cli/vultr.js +583 -0
  103. package/src/cli/wireguard.js +2125 -0
  104. package/src/client/components/cyberia/FallbackWorldEngineCyberia.js +368 -0
  105. package/src/client/components/cyberia/InstanceSelectionView.js +11 -8
  106. package/src/client/components/cyberia/SharedDefaultsCyberia.js +5 -0
  107. package/src/client/components/cyberia-portal/AppShellCyberiaPortal.js +33 -0
  108. package/src/client/components/cyberia-portal/RouterCyberiaPortal.js +4 -0
  109. package/src/client/components/cyberia-portal/TranslateCyberiaPortal.js +4 -0
  110. package/src/client/public/cyberia-docs/ACTION-SYSTEM.md +106 -39
  111. package/src/client/public/cyberia-docs/ARCHITECTURE.md +35 -3
  112. package/src/client/public/cyberia-docs/CYBERIA-CLI.md +44 -7
  113. package/src/client/public/cyberia-docs/CYBERIA-SERVER.md +1 -1
  114. package/src/client/public/cyberia-docs/ROADMAP.md +1 -1
  115. package/src/client/public/cyberia-docs/WHITE-PAPER.md +1 -1
  116. package/src/client/services/cyberia-instance/cyberia-instance.service.js +40 -0
  117. package/src/client/services/object-layer/object-layer.management.js +4 -4
  118. package/src/client-builder/client-build.js +102 -13
  119. package/src/client-builder/ssr.js +27 -73
  120. package/src/db/mongo/MongoBootstrap.js +295 -54
  121. package/src/db/mongo/MongooseDB.js +51 -32
  122. package/src/index.js +25 -1
  123. package/src/projects/cyberia/besu-genesis-generator.js +3 -2
  124. package/src/projects/cyberia/catalog-cyberia.js +5 -0
  125. package/src/projects/cyberia/generate-saga.js +14 -23
  126. package/src/projects/cyberia/hot-reload-trigger.js +3 -3
  127. package/src/projects/cyberia/instance-data.js +63 -3
  128. package/src/projects/cyberia/object-layer.js +11 -21
  129. package/src/projects/underpost/catalog-underpost.js +4 -1
  130. package/src/runtime/cyberia-client/Dockerfile +1 -1
  131. package/src/runtime/cyberia-client/Dockerfile.dev +1 -1
  132. package/src/runtime/cyberia-server/Dockerfile +1 -1
  133. package/src/runtime/cyberia-server/Dockerfile.dev +1 -1
  134. package/src/runtime/engine-cyberia/Dockerfile +1 -1
  135. package/src/runtime/engine-cyberia/Dockerfile.dev +1 -1
  136. package/src/runtime/engine-cyberia/Dockerfile.test +1 -1
  137. package/src/runtime/engine-cyberia/compose.env +50 -15
  138. package/src/runtime/engine-cyberia/docker-compose.yml +90 -85
  139. package/src/runtime/engine-cyberia/nginx.conf +86 -16
  140. package/src/server/backup.js +1 -1
  141. package/src/server/conf.js +1216 -168
  142. package/src/server/cri.js +70 -0
  143. package/src/server/cron.js +249 -51
  144. package/src/server/dns.js +100 -6
  145. package/src/server/environment.js +98 -0
  146. package/src/server/forward-proxy.js +549 -0
  147. package/src/server/middlewares.js +56 -1
  148. package/src/server/process.js +0 -1
  149. package/src/server/selinux.js +185 -0
  150. package/src/server/systemd.js +205 -0
  151. package/src/server/underpost-compression.js +186 -0
  152. package/src/server/underpost-gateway.js +1083 -0
  153. package/src/server/underpost-ingress.js +380 -0
  154. package/test/cluster-instances.test.js +435 -0
  155. package/test/cyberia-instance-conf-defaults.test.js +1 -0
  156. package/test/deploy-node-placement.test.js +45 -0
  157. package/test/instance-traffic-plan.test.js +710 -0
  158. package/test/selinux.test.js +71 -0
  159. package/test/sops-secret-store.test.js +612 -0
  160. package/test/underpost-gateway.test.js +510 -0
  161. package/test/underpost-ingress.test.js +305 -0
  162. package/test/wireguard-edge.test.js +1177 -0
package/.env.example CHANGED
@@ -40,29 +40,27 @@ VALKEY_HOST=valkey-service
40
40
  VALKEY_PORT=6379
41
41
 
42
42
  # --- Cyberia instance wiring (compose service DNS) ---------------------------
43
- # cyberia-server-* -> engine-cyberia authority endpoints. INTERNAL only: these
44
- # use the docker service DNS (engine-cyberia) and must never leak to browser
45
- # clients. Per-instance INSTANCE_CODE is set on each generated server service
46
- # from conf.instances.json (multiInstance) — not here.
47
- ENGINE_API_BASE_URL=http://engine-cyberia:4005
48
- ENGINE_GRPC_ADDRESS=engine-cyberia:50051
43
+ # cyberia-server-* -> stable engine gateway for HTTP and the raw engine runtime
44
+ # for gRPC. The public engine-cyberia name belongs to nginx, avoiding ambiguous
45
+ # Docker DNS while keeping one stable HTTP endpoint for every module.
46
+ ENGINE_API_BASE_URL=http://engine-cyberia
47
+ ENGINE_GRPC_ADDRESS=engine-cyberia-runtime:50051
49
48
 
50
49
  # Client-visible Content Authority origin, forwarded to browser/Raylib clients
51
50
  # for every engine-cyberia content/asset/metadata request. Host-reachable
52
- # (docker publishes engine-cyberia :4005). Distinct from ENGINE_API_BASE_URL:
51
+ # (Docker publishes the raw engine runtime on host :4005). Unlike the internal
52
+ # ENGINE_API_BASE_URL, this value is consumed outside the Compose network:
53
53
  # the two responsibilities must never overwrite each other.
54
54
  ENGINE_PUBLIC_URL=http://localhost:4005
55
55
  ENGINE_GRPC_RELOAD_INTERVAL_SEC=300
56
56
 
57
57
  # --- Browser-facing client runtime config (injected by docker-driver.py) -----
58
58
  # The single WASM bundle resolves its instance from the URL sub-path and builds
59
- # its endpoints from these origins. They point at the nginx proxy on localhost:80
60
- # (the single gateway that path-routes WS -> server, /api + /assets -> engine),
61
- # NOT at the raw client/engine container ports — a WS to the client port (8082)
62
- # has no server behind it. So this must be the proxy origin, not :8082 / :4005.
63
- # http://localhost/ -> default instance, ws -> ws://localhost/ws
64
- # http://localhost/FOREST -> FOREST instance, ws -> ws://localhost/FOREST/ws
65
- CYBERIA_WS_ORIGIN=ws://localhost
59
+ # its endpoints from these origins. HTTP client/API traffic uses nginx on :80;
60
+ # WebSocket traffic uses the dedicated multi-path server gateway on :8081.
61
+ # http://localhost/ -> default, ws://localhost:8081/ws
62
+ # http://localhost/FOREST -> FOREST, ws://localhost:8081/FOREST/ws
63
+ CYBERIA_WS_ORIGIN=ws://localhost:8081
66
64
  CYBERIA_ENGINE_API_ORIGIN=http://localhost
67
65
  CYBERIA_DEFAULT_INSTANCE=amethyst-strata-expansion
68
66
 
@@ -72,6 +70,22 @@ CYBERIA_DEFAULT_INSTANCE=amethyst-strata-expansion
72
70
  CYBERIA_SERVER_APP_ENV=development
73
71
  CYBERIA_SERVER_LOG_LEVEL=
74
72
 
73
+ # --- cyberia-server WebSocket admission and rate limits ----------------------
74
+ # Unset keeps the built-in default. An explicit 0 turns that one limit off.
75
+ # The startup log prints the effective profile ("ws limits: ...").
76
+ #
77
+ # Set CYBERIA_DISABLE_CONNECTION_LIMITS=1 to turn every limit off. The load test
78
+ # (test/cyberia-load.test.js) drives every simulated client from one address, so
79
+ # it needs this. NEVER enable it on a public deploy.
80
+ CYBERIA_DISABLE_CONNECTION_LIMITS=
81
+ CYBERIA_MAX_CONNECTIONS=
82
+ CYBERIA_MAX_CONNECTIONS_PER_IP=
83
+ CYBERIA_CONNECT_RATE_PER_IP=
84
+ CYBERIA_CONNECT_BURST_PER_IP=
85
+ CYBERIA_MESSAGE_RATE=
86
+ CYBERIA_MESSAGE_BURST=
87
+ CYBERIA_MAX_STRIKES=
88
+
75
89
  # --- engine-cyberia runtime env (loaded into the container via env_file) -----
76
90
  # The dd-cyberia engine (engine-private/conf/dd-cyberia/conf.server.json) needs
77
91
  # these to boot: DB auth + per-site DB names, the base PORT (the cyberia host is
@@ -82,6 +96,7 @@ NODE_OPTIONS=--max-old-space-size=8192
82
96
  BASE_API=api
83
97
  DEFAULT_DEPLOY_ID=dd-cyberia
84
98
  DEPLOY_ID=dd-cyberia
99
+ # Configuration/DB selector from conf.server.json; this is not a Docker DNS alias.
85
100
  DEFAULT_DEPLOY_HOST=www.cyberiaonline.com
86
101
  DEFAULT_DEPLOY_PATH=/
87
102
  DISABLE_API_RATE_LIMIT=true
@@ -131,7 +146,25 @@ IPFS_CLUSTER_API_URL=http://ipfs-cluster:9094
131
146
  # in docker-compose.yml). Override for a real/shared cluster.
132
147
  # CLUSTER_SECRET=
133
148
 
134
- # --- Host-published ports ----------------------------------------------------
149
+ # --- Local access ------------------------------------------------------------
150
+ # Client gateway: http://localhost/{,FOREST,TEST}
151
+ # Client port alias: http://localhost:8082/{,FOREST,TEST}
152
+ # Server gateway: http://localhost:8081/{,FOREST,TEST}
153
+ # Engine authority: http://localhost:4005
154
+ # Docker-network gateways:
155
+ # http://cyberia-client/{,FOREST,TEST}
156
+ # http://cyberia-server/{,FOREST,TEST}
157
+ # http://engine-cyberia/
158
+ #
159
+ # The *.localhost aliases normally resolve to loopback without configuration:
160
+ # http://client.cyberia.localhost/{,FOREST,TEST}
161
+ # http://server.cyberia.localhost/{,FOREST,TEST}
162
+ # http://engine.cyberia.localhost/
163
+ # `node bin/cyberia run-workflow docker:up` maintains this host entry (the
164
+ # aliases already work between containers):
165
+ # 127.0.0.1 cyberia-client cyberia-server engine-cyberia
166
+ #
167
+ # Host-published ports:
135
168
  PROXY_HTTP_PORT=80
136
169
  IPFS_API_PORT=5001
137
170
  IPFS_GATEWAY_PORT=8080
@@ -140,5 +173,7 @@ MONGO_HOST_PORT=27017
140
173
  VALKEY_NODEPORT=32079
141
174
  ENGINE_CYBERIA_REST_PORT=4005
142
175
  ENGINE_CYBERIA_GRPC_PORT=50051
176
+ # Multi-path nginx server gateway, not a single server container publication.
143
177
  CYBERIA_SERVER_PORT=8081
178
+ # Multi-path nginx client gateway; raw client containers remain internal.
144
179
  CYBERIA_CLIENT_PORT=8082
@@ -0,0 +1,87 @@
1
+ name: CI | Coverall Cyberia
2
+
3
+ on:
4
+ push:
5
+ branches: ['master', 'main']
6
+ pull_request:
7
+ branches: ['master', 'main']
8
+
9
+ jobs:
10
+ test:
11
+ name: Coverall Cyberia Test
12
+ if: |
13
+ github.actor != 'dependabot[bot]' &&
14
+ (github.repository == 'underpostnet/engine' ||
15
+ github.repository == 'underpostnet/engine-cyberia' ||
16
+ github.repository == 'underpostnet/engine-ghpkg-cyberia')
17
+ runs-on: ubuntu-latest
18
+ container:
19
+ image: quay.io/rockylinux/rockylinux:9
20
+ steps:
21
+ - name: Clone repository
22
+ uses: actions/checkout@v7
23
+
24
+ - name: Install required packages
25
+ run: |
26
+ dnf install -y sudo tar gzip bzip2 git bash
27
+ dnf install -y curl --allowerasing
28
+
29
+ - name: Install Node.js
30
+ run: |
31
+ curl -fsSL https://rpm.nodesource.com/setup_24.x | bash -
32
+ dnf install nodejs -y
33
+
34
+ - name: Install project dependencies
35
+ run: npm install
36
+
37
+ - name: Run tests and generate coverage
38
+ run: scripts/coverall-test-cyberia.sh
39
+
40
+ - name: Store coverage report
41
+ uses: actions/upload-artifact@v4
42
+ with:
43
+ name: coverall-cyberia-lcov
44
+ path: ./coverage/lcov.info
45
+ if-no-files-found: error
46
+
47
+ upload:
48
+ name: Upload Cyberia Coverage to Coveralls
49
+ needs: test
50
+ if: |
51
+ github.actor != 'dependabot[bot]' &&
52
+ (github.repository == 'underpostnet/engine' ||
53
+ github.repository == 'underpostnet/engine-cyberia' ||
54
+ github.repository == 'underpostnet/engine-ghpkg-cyberia')
55
+ runs-on: ubuntu-latest
56
+ steps:
57
+ - name: Clone repository
58
+ uses: actions/checkout@v7
59
+
60
+ - name: Restore coverage report
61
+ uses: actions/download-artifact@v4
62
+ with:
63
+ name: coverall-cyberia-lcov
64
+ path: ./coverage
65
+
66
+ - name: Upload coverage to Coveralls
67
+ uses: coverallsapp/github-action@v2
68
+ with:
69
+ github-token: ${{ secrets.GITHUB_TOKEN }}
70
+ file: ./coverage/lcov.info
71
+ flag-name: cyberia
72
+ parallel: true
73
+
74
+ finish:
75
+ needs: upload
76
+ if: |
77
+ github.actor != 'dependabot[bot]' &&
78
+ (github.repository == 'underpostnet/engine' ||
79
+ github.repository == 'underpostnet/engine-cyberia' ||
80
+ github.repository == 'underpostnet/engine-ghpkg-cyberia')
81
+ runs-on: ubuntu-latest
82
+ steps:
83
+ - name: Notify Coveralls Finished
84
+ uses: coverallsapp/github-action@v2
85
+ with:
86
+ github-token: ${{ secrets.GITHUB_TOKEN }}
87
+ parallel-finished: true
@@ -31,10 +31,5 @@ jobs:
31
31
  command_timeout: 60m
32
32
  script: |
33
33
  set -e
34
- echo "Starting remote deploy"
35
- cd /home/dd/engine
36
- TARGET_NODE=hp-envy-iso-ram-rocky9
37
- sudo -n -- /bin/bash -lc "node bin run pull"
38
- sudo -n -- /bin/bash -lc "node bin run secret"
39
- sudo -n -- /bin/bash -lc "node bin/build dd-cyberia --conf"
40
- sudo -n -- /bin/bash -lc "node bin run instance --image-pull-policy Always --node-name $HOSTNAME --kubeadm 'dd-cyberia,mmo-client' --node-name ${TARGET_NODE} --ssh-key-path /home/dd/tmp/897as9dxhaskd9"
34
+ set -o pipefail
35
+ bash /home/dd/engine/deploy/cyberia-client/deploy.sh
@@ -31,10 +31,5 @@ jobs:
31
31
  command_timeout: 60m
32
32
  script: |
33
33
  set -e
34
- echo "Starting remote deploy"
35
- cd /home/dd/engine
36
- TARGET_NODE=hp-envy-iso-ram-rocky9
37
- sudo -n -- /bin/bash -lc "node bin run pull"
38
- sudo -n -- /bin/bash -lc "node bin run secret"
39
- sudo -n -- /bin/bash -lc "node bin/build dd-cyberia --conf"
40
- sudo -n -- /bin/bash -lc "node bin run instance --image-pull-policy Always --node-name $HOSTNAME --kubeadm 'dd-cyberia,mmo-server' --node-name ${TARGET_NODE} --ssh-key-path /home/dd/tmp/897as9dxhaskd9"
34
+ set -o pipefail
35
+ bash /home/dd/engine/deploy/cyberia-server/deploy.sh
@@ -4,7 +4,7 @@ on:
4
4
  workflow_dispatch:
5
5
 
6
6
  env:
7
- UNDERPOST_VERSION: '3.2.80'
7
+ UNDERPOST_VERSION: '3.3.0'
8
8
 
9
9
  jobs:
10
10
  build-and-push:
@@ -35,7 +35,7 @@ jobs:
35
35
  working-directory: engine
36
36
  run: |
37
37
  node bin/deploy cyberia
38
- node bin/cyberia run-workflow build-cyberia-404 --output-path ../public/404.html
38
+ node bin/cyberia run-workflow build-cyberia-404 --output-path ../assets/404/index.html
39
39
 
40
40
  - name: Set up Docker Buildx
41
41
  uses: docker/setup-buildx-action@v4
@@ -54,8 +54,8 @@ jobs:
54
54
  tags: |
55
55
  type=raw,value=v${{ env.UNDERPOST_VERSION }}
56
56
  type=raw,value=latest
57
- type=ref,event=branch
58
- type=sha,prefix=sha-
57
+ # type=ref,event=branch
58
+ # type=sha,prefix=sha-
59
59
 
60
60
  - name: Build and push image
61
61
  uses: docker/build-push-action@v7
@@ -4,7 +4,7 @@ on:
4
4
  workflow_dispatch:
5
5
 
6
6
  env:
7
- UNDERPOST_VERSION: '3.2.80'
7
+ UNDERPOST_VERSION: '3.3.0'
8
8
 
9
9
  jobs:
10
10
  build-and-push:
@@ -35,7 +35,7 @@ jobs:
35
35
  working-directory: engine
36
36
  run: |
37
37
  node bin/deploy cyberia
38
- node bin/cyberia run-workflow build-cyberia-404 --output-path ../public/404.html
38
+ node bin/cyberia run-workflow build-cyberia-404 --output-path ../assets/404/index.html
39
39
 
40
40
  - name: Set up Docker Buildx
41
41
  uses: docker/setup-buildx-action@v4
@@ -54,8 +54,8 @@ jobs:
54
54
  tags: |
55
55
  type=raw,value=v${{ env.UNDERPOST_VERSION }}
56
56
  type=raw,value=latest
57
- type=ref,event=branch
58
- type=sha,prefix=sha-
57
+ # type=ref,event=branch
58
+ # type=sha,prefix=sha-
59
59
 
60
60
  - name: Build and push image
61
61
  uses: docker/build-push-action@v7
@@ -4,7 +4,7 @@ on:
4
4
  workflow_dispatch:
5
5
 
6
6
  env:
7
- UNDERPOST_VERSION: '3.2.80'
7
+ UNDERPOST_VERSION: '3.3.0'
8
8
 
9
9
  jobs:
10
10
  build-and-push:
@@ -36,7 +36,7 @@ jobs:
36
36
  run: |
37
37
  node bin/deploy cyberia
38
38
  node bin/cyberia run-workflow build-server-dashboard --output-path ../public/index.html
39
- node bin/cyberia run-workflow build-cyberia-404 --output-path ../public/404.html
39
+ node bin/cyberia run-workflow build-cyberia-404 --output-path ../public/404/index.html
40
40
 
41
41
  - name: Set up Docker Buildx
42
42
  uses: docker/setup-buildx-action@v4
@@ -55,8 +55,8 @@ jobs:
55
55
  tags: |
56
56
  type=raw,value=v${{ env.UNDERPOST_VERSION }}
57
57
  type=raw,value=latest
58
- type=ref,event=branch
59
- type=sha,prefix=sha-
58
+ # type=ref,event=branch
59
+ # type=sha,prefix=sha-
60
60
 
61
61
  - name: Build and push image
62
62
  uses: docker/build-push-action@v7
@@ -4,7 +4,7 @@ on:
4
4
  workflow_dispatch:
5
5
 
6
6
  env:
7
- UNDERPOST_VERSION: '3.2.80'
7
+ UNDERPOST_VERSION: '3.3.0'
8
8
 
9
9
  jobs:
10
10
  build-and-push:
@@ -36,7 +36,7 @@ jobs:
36
36
  run: |
37
37
  node bin/deploy cyberia
38
38
  node bin/cyberia run-workflow build-server-dashboard --dev --output-path ../public/index.html
39
- node bin/cyberia run-workflow build-cyberia-404 --output-path ../public/404.html
39
+ node bin/cyberia run-workflow build-cyberia-404 --output-path ../public/404/index.html
40
40
 
41
41
  - name: Set up Docker Buildx
42
42
  uses: docker/setup-buildx-action@v4
@@ -55,8 +55,8 @@ jobs:
55
55
  tags: |
56
56
  type=raw,value=v${{ env.UNDERPOST_VERSION }}
57
57
  type=raw,value=latest
58
- type=ref,event=branch
59
- type=sha,prefix=sha-
58
+ # type=ref,event=branch
59
+ # type=sha,prefix=sha-
60
60
 
61
61
  - name: Build and push image
62
62
  uses: docker/build-push-action@v7
@@ -4,7 +4,7 @@ on:
4
4
  workflow_dispatch:
5
5
 
6
6
  env:
7
- UNDERPOST_VERSION: '3.2.80'
7
+ UNDERPOST_VERSION: '3.3.0'
8
8
 
9
9
  jobs:
10
10
  build-and-push:
@@ -33,8 +33,8 @@ jobs:
33
33
  tags: |
34
34
  type=raw,value=v${{ env.UNDERPOST_VERSION }}
35
35
  type=raw,value=latest
36
- type=ref,event=branch
37
- type=sha,prefix=sha-
36
+ # type=ref,event=branch
37
+ # type=sha,prefix=sha-
38
38
 
39
39
  - name: Build and push image
40
40
  uses: docker/build-push-action@v7
@@ -4,7 +4,7 @@ on:
4
4
  workflow_dispatch:
5
5
 
6
6
  env:
7
- UNDERPOST_VERSION: '3.2.80'
7
+ UNDERPOST_VERSION: '3.3.0'
8
8
 
9
9
  jobs:
10
10
  build-and-push:
@@ -33,8 +33,8 @@ jobs:
33
33
  tags: |
34
34
  type=raw,value=v${{ env.UNDERPOST_VERSION }}
35
35
  type=raw,value=latest
36
- type=ref,event=branch
37
- type=sha,prefix=sha-
36
+ # type=ref,event=branch
37
+ # type=sha,prefix=sha-
38
38
 
39
39
  - name: Build and push image
40
40
  uses: docker/build-push-action@v7
@@ -40,12 +40,7 @@ jobs:
40
40
  script: |
41
41
  set -e
42
42
  set -o pipefail
43
- echo "Starting remote deploy"
44
- cd /home/dd/engine
45
- sudo -n -- /bin/bash -lc "node bin run pull"
46
- sudo -n -- /bin/bash -lc "npm install"
47
- sudo -n -- /bin/bash -lc "node bin run secret"
48
- sudo -n -- /bin/bash -lc "node bin run deploy dd-cyberia"
43
+ bash /home/dd/engine/deploy/dd-cyberia/deploy.sh
49
44
  sync-and-deploy:
50
45
  if: github.event.inputs.job == 'sync-and-deploy'
51
46
  name: Remote SSH sync and deploy
@@ -70,58 +65,7 @@ jobs:
70
65
  script: |
71
66
  set -e
72
67
  set -o pipefail
73
- echo "Starting remote sync and deploy"
74
- TARGET_NODE=localhost.localdomain
75
- cd /home/dd/engine
76
- sudo -n -- /bin/bash -lc "node bin run pull"
77
- sudo -n -- /bin/bash -lc "npm install"
78
- sudo -n -- /bin/bash -lc "node bin run secret"
79
- sudo -n -- /bin/bash -lc "npm run test"
80
- sudo -n -- /bin/bash -lc "node bin run clean src/client/public/cyberia"
81
- sudo -n -- /bin/bash -lc "node bin run clean src/client/public/underpost"
82
- sudo -n -- /bin/bash -lc "node bin cmt src/client/public/cyberia --init-repo"
83
- sudo -n -- /bin/bash -lc "node bin cmt src/client/public/underpost --init-repo"
84
- sudo -n -- /bin/bash -lc "node bin fs src/client/public/cyberia --pull --recursive --deploy-id dd-cyberia"
85
- sudo -n -- /bin/bash -lc "node bin fs src/client/public/underpost --pull --recursive --deploy-id dd-cyberia --storage-file-path './engine-private/conf/dd-cyberia/storage.underpost.json'"
86
- CHANGES_CYBERIA=$(sudo -n -- /bin/bash -lc "node bin cmt src/client/public/cyberia --has-changes" | tr -d '\n')
87
- if [ "$CHANGES_CYBERIA" = "1" ]; then
88
- sudo -n -- /bin/bash -lc "node bin cmt src/client/public/cyberia feat 'Update cyberia public assets'"
89
- fi
90
- CHANGES_UNDERPOST=$(sudo -n -- /bin/bash -lc "node bin cmt src/client/public/underpost --has-changes" | tr -d '\n')
91
- if [ "$CHANGES_UNDERPOST" = "1" ]; then
92
- sudo -n -- /bin/bash -lc "node bin cmt src/client/public/underpost feat 'Update underpost public assets'"
93
- fi
94
- sudo -n -- /bin/bash -lc "node bin run sync 'dd-cyberia,1,,underpost/engine-cyberia:latest' \
95
- --kubeadm \
96
- --deploy-id-cron-jobs none \
97
- --timeout-response 300000ms \
98
- --node-name ${TARGET_NODE} \
99
- --ssh-key-path /home/dd/tmp/897as9dxhaskd9 \
100
- --image-pull-policy Always \
101
- --cmd 'cd /home/dd/engine, \
102
- underpost clone underpostnet/engine-cyberia, \
103
- mkdir -p /home/dd/engine/src/client/public/itemledger \
104
- /home/dd/engine/src/client/public/cryptokoyn \
105
- /home/dd/engine/src/client/components/cryptokoyn \
106
- /home/dd/engine/src/client/components/itemledger \
107
- /home/dd/engine/hardhat, \
108
- cp -a ./engine-cyberia/src/client/public/itemledger/. /home/dd/engine/src/client/public/itemledger/, \
109
- cp -a ./engine-cyberia/src/client/public/cryptokoyn/. /home/dd/engine/src/client/public/cryptokoyn/, \
110
- cp -a ./engine-cyberia/src/client/components/cryptokoyn/. /home/dd/engine/src/client/components/cryptokoyn/, \
111
- cp -a ./engine-cyberia/src/client/components/itemledger/. /home/dd/engine/src/client/components/itemledger/, \
112
- cp -a ./engine-cyberia/src/client/Itemledger.index.js /home/dd/engine/src/client/Itemledger.index.js, \
113
- cp -a ./engine-cyberia/src/client/Cryptokoyn.index.js /home/dd/engine/src/client/Cryptokoyn.index.js, \
114
- rm -rf ./engine-cyberia, \
115
- sudo rm -rf ./engine-private/, \
116
- node bin clone underpostnet/engine-cyberia-private, \
117
- sudo mv ./engine-cyberia-private ./engine-private, \
118
- node bin env dd-cyberia production, \
119
- node ./engine-private/itc-scripts/dd-cyberia-0.js, \
120
- sudo chown -R dd:dd /home/dd/engine/src/client/public/cyberia, \
121
- node bin/cyberia run-workflow import-default-items, \
122
- node bin env dd-cyberia production, \
123
- node bin client dd-cyberia, \
124
- node bin start dd-cyberia production --run'"
68
+ bash /home/dd/engine/deploy/dd-cyberia/sync-deploy.sh
125
69
  init:
126
70
  if: github.event.inputs.job == 'init'
127
71
  name: Remote SSH init deployment
@@ -146,12 +90,4 @@ jobs:
146
90
  script: |
147
91
  set -e
148
92
  set -o pipefail
149
- echo "Starting init deploy"
150
- cd /home/dd/engine
151
- sudo -n -- /bin/bash -lc "node bin run pull"
152
- sudo -n -- /bin/bash -lc "npm install"
153
- sudo -n -- /bin/bash -lc "node bin run secret"
154
- sudo -n -- /bin/bash -lc "node bin/build dd-cyberia --conf"
155
- sudo -n -- /bin/bash -lc "node bin deploy dd-cyberia production --kubeadm --sync --build-manifest --timeout-response 300000ms --versions green --replicas 1"
156
- sudo -n -- /bin/bash -lc "node bin deploy dd-cyberia production --kubeadm --disable-update-proxy --git-clean"
157
- sudo -n -- /bin/bash -lc "node bin monitor dd-cyberia production --ready-deployment --promote --timeout-response 300000ms --versions green --replicas 1"
93
+ bash /home/dd/engine/deploy/dd-cyberia/init.sh
@@ -20,7 +20,13 @@ permissions:
20
20
  id-token: write
21
21
  jobs:
22
22
  pwa-microservices-template-ghpk:
23
- if: github.repository == 'underpostnet/pwa-microservices-template' && startsWith(github.event.head_commit.message, 'ci(package-pwa-microservices-template-ghpkg)')
23
+ if: >-
24
+ github.repository == 'underpostnet/pwa-microservices-template' &&
25
+ (
26
+ startsWith(github.event.head_commit.message, 'ci(package-pwa-microservices-template-ghpkg)')
27
+ ||
28
+ github.event_name == 'workflow_dispatch'
29
+ )
24
30
  name: Update github repo package Jobs
25
31
  runs-on: ubuntu-latest
26
32
  container:
@@ -32,23 +32,8 @@ jobs:
32
32
  # - name: Checkout LFS objects
33
33
  # run: git lfs checkout
34
34
 
35
- - name: Install required packages
36
- run: |
37
- dnf install -y sudo tar gzip bzip2 git
38
- dnf install -y curl --allowerasing
39
-
40
- - name: Install Node.js
41
- run: |
42
- curl -fsSL https://rpm.nodesource.com/setup_24.x | bash -
43
- dnf install nodejs -y
44
-
45
35
  - name: Build the site
46
- run: |
47
- npm install
48
- node bin new --default-conf --conf-workflow-id dd-github-pages
49
- node bin new --deploy-id dd-github-pages
50
- node bin env dd-github-pages production
51
- NODE_ENV=production node bin client dd-github-pages '' underpostnet.github.io /pwa-microservices-template-ghpkg
36
+ run: bash deploy/pwa-microservices-template/deploy.sh
52
37
  # git lfs install
53
38
  # git lfs track
54
39
  # git lfs ls-files
@@ -30,4 +30,4 @@ jobs:
30
30
  run: npm install
31
31
 
32
32
  - name: Run test
33
- run: npm test
33
+ run: scripts/coverall-test.sh
@@ -35,12 +35,4 @@ jobs:
35
35
  script: |
36
36
  set -e
37
37
  set -o pipefail
38
- echo "Starting remote release deploy"
39
- cd /home/dd/engine
40
- sudo -n -- /bin/bash -lc "node bin run pull"
41
- sudo -n -- /bin/bash -lc "npm install"
42
- sudo -n -- /bin/bash -lc "node bin run secret"
43
- sudo -n -- /bin/bash -lc "npm install -g underpost"
44
- sudo -n -- /bin/bash -lc "node bin run secret"
45
- sudo -n -- /bin/bash -lc "node bin run --dev git-conf"
46
- sudo -n -- /bin/bash -lc "node bin run docker-image"
38
+ bash /home/dd/engine/deploy/release/deploy.sh