cyberia 3.2.22 → 3.2.70

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 (185) hide show
  1. package/.env.example +127 -68
  2. package/.github/workflows/cyberia-client.cd.yml +40 -0
  3. package/.github/workflows/cyberia-server.cd.yml +40 -0
  4. package/.github/workflows/docker-image.cyberia-client.ci.yml +49 -0
  5. package/.github/workflows/docker-image.cyberia-client.dev.ci.yml +48 -0
  6. package/.github/workflows/docker-image.cyberia-server.ci.yml +69 -0
  7. package/.github/workflows/docker-image.cyberia-server.dev.ci.yml +69 -0
  8. package/.github/workflows/docker-image.engine-cyberia.ci.yml +52 -0
  9. package/.github/workflows/docker-image.engine-cyberia.dev.ci.yml +52 -0
  10. package/.github/workflows/engine-cyberia.cd.yml +33 -24
  11. package/.github/workflows/engine-cyberia.ci.yml +13 -3
  12. package/.github/workflows/ghpkg.ci.yml +88 -1
  13. package/.github/workflows/gitlab.ci.yml +1 -1
  14. package/.github/workflows/hardhat.ci.yml +1 -1
  15. package/.github/workflows/npmpkg.ci.yml +10 -7
  16. package/.github/workflows/publish.ci.yml +2 -2
  17. package/.github/workflows/publish.cyberia.ci.yml +5 -16
  18. package/.github/workflows/pwa-microservices-template-page.cd.yml +1 -8
  19. package/.github/workflows/pwa-microservices-template-test.ci.yml +1 -1
  20. package/CHANGELOG.md +301 -1
  21. package/CLI-HELP.md +71 -6
  22. package/Dockerfile +141 -43
  23. package/Dockerfile.dev +143 -0
  24. package/Dockerfile.test +165 -0
  25. package/README.md +1 -1
  26. package/baremetal/commission-workflows.json +1 -0
  27. package/bin/build.js +31 -0
  28. package/bin/cyberia.js +1080 -184
  29. package/bin/deploy.js +2 -2
  30. package/bin/index.js +1080 -184
  31. package/bump.config.js +1 -0
  32. package/compose.env +131 -0
  33. package/conf.js +18 -1
  34. package/deployment.yaml +2 -2
  35. package/docker-compose.yml +316 -0
  36. package/hardhat/hardhat.config.js +2 -2
  37. package/hardhat/package-lock.json +620 -2041
  38. package/hardhat/package.json +7 -5
  39. package/hardhat/scripts/deployObjectLayerToken.js +18 -18
  40. package/hardhat/test/ObjectLayerToken.js +378 -274
  41. package/ipfs/configure-ipfs.sh +13 -0
  42. package/manifests/cronjobs/dd-cron/dd-cron-backup.yaml +1 -1
  43. package/manifests/cronjobs/dd-cron/dd-cron-dns.yaml +1 -1
  44. package/manifests/deployment/dd-cyberia-development/deployment.yaml +2 -2
  45. package/manifests/deployment/dd-cyberia-development/grpc-service.yaml +17 -0
  46. package/manifests/deployment/dd-cyberia-development/pv-pvc.yaml +32 -0
  47. package/manifests/deployment/dd-default-development/deployment.yaml +2 -2
  48. package/mongodb/entrypoint.sh +76 -0
  49. package/nginx.conf +87 -0
  50. package/package.json +31 -19
  51. package/pv-pvc.yaml +32 -0
  52. package/scripts/disk-clean.sh +85 -60
  53. package/scripts/kubeadm-node-setup.sh +317 -0
  54. package/scripts/rocky-kickstart.sh +877 -185
  55. package/scripts/rpmfusion-ffmpeg-setup.sh +26 -50
  56. package/scripts/test-monitor.sh +3 -5
  57. package/src/api/atlas-sprite-sheet/atlas-sprite-sheet.router.js +43 -7
  58. package/src/api/atlas-sprite-sheet/atlas-sprite-sheet.service.js +17 -25
  59. package/src/api/cyberia-action/cyberia-action.controller.js +19 -0
  60. package/src/api/cyberia-action/cyberia-action.model.js +21 -29
  61. package/src/api/cyberia-action/cyberia-action.router.js +42 -7
  62. package/src/api/cyberia-action/cyberia-action.service.js +20 -4
  63. package/src/api/cyberia-client-hints/cyberia-client-hints.model.js +58 -57
  64. package/src/api/cyberia-dialogue/cyberia-dialogue.router.js +37 -6
  65. package/src/api/cyberia-dialogue/cyberia-dialogue.service.js +8 -2
  66. package/src/api/cyberia-entity/cyberia-entity.router.js +39 -7
  67. package/src/api/cyberia-entity-type-default/cyberia-entity-type-default.controller.js +74 -0
  68. package/src/api/cyberia-entity-type-default/cyberia-entity-type-default.model.js +67 -0
  69. package/src/api/cyberia-entity-type-default/cyberia-entity-type-default.router.js +63 -0
  70. package/src/api/cyberia-entity-type-default/cyberia-entity-type-default.service.js +46 -0
  71. package/src/api/cyberia-instance/cyberia-fallback-world.js +62 -10
  72. package/src/api/cyberia-instance/cyberia-instance.model.js +32 -2
  73. package/src/api/cyberia-instance/cyberia-instance.router.js +6 -6
  74. package/src/api/cyberia-instance/cyberia-world-generator.js +116 -3
  75. package/src/api/cyberia-instance-conf/cyberia-instance-conf.model.js +3 -0
  76. package/src/api/cyberia-instance-conf/cyberia-instance-conf.router.js +39 -7
  77. package/src/api/cyberia-map/cyberia-map.router.js +21 -6
  78. package/src/api/cyberia-quest/cyberia-quest.controller.js +38 -0
  79. package/src/api/cyberia-quest/cyberia-quest.router.js +47 -7
  80. package/src/api/cyberia-quest/cyberia-quest.service.js +59 -4
  81. package/src/api/cyberia-saga/cyberia-saga.controller.js +74 -0
  82. package/src/api/cyberia-saga/cyberia-saga.model.js +59 -0
  83. package/src/api/cyberia-saga/cyberia-saga.router.js +63 -0
  84. package/src/api/cyberia-saga/cyberia-saga.service.js +42 -0
  85. package/src/api/cyberia-server-defaults/cyberia-server-defaults.js +551 -129
  86. package/src/api/cyberia-skill/cyberia-skill.controller.js +74 -0
  87. package/src/api/cyberia-skill/cyberia-skill.model.js +50 -0
  88. package/src/api/cyberia-skill/cyberia-skill.router.js +63 -0
  89. package/src/api/cyberia-skill/cyberia-skill.service.js +42 -0
  90. package/src/api/ipfs/ipfs.service.js +28 -15
  91. package/src/api/object-layer/object-layer.router.js +25 -15
  92. package/src/api/object-layer/object-layer.service.js +15 -20
  93. package/src/api/object-layer-render-frames/object-layer-render-frames.router.js +39 -7
  94. package/src/cli/baremetal.js +717 -16
  95. package/src/cli/cluster.js +80 -5
  96. package/src/cli/deploy.js +127 -11
  97. package/src/cli/docker-compose.js +648 -0
  98. package/src/cli/env.js +11 -2
  99. package/src/cli/fs.js +75 -30
  100. package/src/cli/image.js +129 -51
  101. package/src/cli/index.js +110 -6
  102. package/src/cli/kickstart.js +142 -20
  103. package/src/cli/release.js +46 -4
  104. package/src/cli/repository.js +238 -33
  105. package/src/cli/run.js +520 -114
  106. package/src/cli/secrets.js +82 -48
  107. package/src/cli/ssh.js +234 -0
  108. package/src/cli/static.js +2 -2
  109. package/src/client/components/cyberia/ActionEngineCyberia.js +1867 -0
  110. package/src/client/components/cyberia/EntityEngineCyberia.js +585 -0
  111. package/src/client/components/cyberia/InstanceEngineCyberia.js +219 -13
  112. package/src/client/components/cyberia/MapEngineCyberia.js +154 -71
  113. package/src/client/components/cyberia/ObjectLayerEngineModal.js +40 -63
  114. package/src/client/components/cyberia/ObjectLayerEngineViewer.js +34 -20
  115. package/src/client/components/cyberia/SharedDefaultsCyberia.js +195 -4
  116. package/src/client/components/cyberia-portal/AppShellCyberiaPortal.js +66 -0
  117. package/src/client/components/cyberia-portal/RouterCyberiaPortal.js +8 -0
  118. package/src/client/components/cyberia-portal/TranslateCyberiaPortal.js +8 -0
  119. package/src/client/public/cyberia-docs/ACTION-SYSTEM.md +45 -27
  120. package/src/client/public/cyberia-docs/CYBERIA-CLI.md +3 -3
  121. package/src/client/public/cyberia-docs/CYBERIA-CLIENT.md +39 -22
  122. package/src/client/public/cyberia-docs/CYBERIA-LORE.md +88 -0
  123. package/src/client/public/cyberia-docs/CYBERIA-SAGA.md +394 -0
  124. package/src/client/public/cyberia-docs/CYBERIA-SERVER.md +8 -1
  125. package/src/client/public/cyberia-docs/CYBERIA.md +1 -1
  126. package/src/client/public/cyberia-docs/QUEST-SYSTEM.md +5 -5
  127. package/src/client/public/cyberia-docs/ROADMAP.md +1 -1
  128. package/src/client/public/cyberia-docs/WHITE-PAPER.md +1 -1
  129. package/src/client/services/cyberia-entity-type-default/cyberia-entity-type-default.service.js +99 -0
  130. package/src/client/services/cyberia-instance/cyberia-instance.management.js +2 -2
  131. package/src/client/services/cyberia-map/cyberia-map.management.js +2 -2
  132. package/src/client/services/cyberia-saga/cyberia-saga.service.js +99 -0
  133. package/src/client/services/cyberia-skill/cyberia-skill.service.js +99 -0
  134. package/src/client/services/object-layer/object-layer.management.js +6 -6
  135. package/src/{server → client-builder}/client-build-docs.js +15 -5
  136. package/src/{server → client-builder}/client-build-live.js +3 -3
  137. package/src/{server → client-builder}/client-build.js +25 -22
  138. package/src/{server → client-builder}/client-dev-server.js +3 -3
  139. package/src/{server → client-builder}/client-icons.js +2 -2
  140. package/src/{server → client-builder}/ssr.js +5 -5
  141. package/src/client.build.js +1 -3
  142. package/src/client.dev.js +1 -1
  143. package/src/db/mongo/MongoBootstrap.js +12 -12
  144. package/src/grpc/cyberia/grpc-server.js +255 -70
  145. package/src/index.js +12 -1
  146. package/src/mailer/EmailRender.js +1 -1
  147. package/src/{server → projects/cyberia}/atlas-sprite-sheet-generator.js +2 -2
  148. package/src/{server → projects/cyberia}/besu-genesis-generator.js +3 -3
  149. package/src/projects/cyberia/catalog-cyberia.js +81 -0
  150. package/src/projects/cyberia/gemini-client.js +175 -0
  151. package/src/projects/cyberia/generate-saga.js +2107 -0
  152. package/src/{server → projects/cyberia}/ipfs-client.js +2 -2
  153. package/src/{server → projects/cyberia}/object-layer.js +12 -108
  154. package/src/{server → projects/cyberia}/semantic-layer-generator-floor.js +1 -1
  155. package/src/{server → projects/cyberia}/semantic-layer-generator-resource.js +1 -1
  156. package/src/{server → projects/cyberia}/semantic-layer-generator-skin.js +1 -1
  157. package/src/{server → projects/cyberia}/semantic-layer-generator.js +2 -2
  158. package/src/{server → projects/cyberia}/shape-generator.js +2 -2
  159. package/src/{server → projects/underpost}/catalog-underpost.js +1 -2
  160. package/src/runtime/cyberia-client/Dockerfile +27 -61
  161. package/src/runtime/cyberia-client/Dockerfile.dev +20 -12
  162. package/src/runtime/cyberia-server/Dockerfile +21 -20
  163. package/src/runtime/cyberia-server/Dockerfile.dev +17 -8
  164. package/src/runtime/engine-cyberia/Dockerfile +143 -0
  165. package/src/runtime/engine-cyberia/Dockerfile.dev +143 -0
  166. package/src/runtime/engine-cyberia/Dockerfile.test +165 -0
  167. package/src/runtime/engine-cyberia/compose.env +131 -0
  168. package/src/runtime/engine-cyberia/docker-compose.yml +316 -0
  169. package/src/runtime/engine-cyberia/ipfs/configure-ipfs.sh +13 -0
  170. package/src/runtime/engine-cyberia/mongodb/entrypoint.sh +76 -0
  171. package/src/runtime/engine-cyberia/nginx.conf +87 -0
  172. package/src/runtime/express/Express.js +2 -2
  173. package/src/runtime/nginx/Nginx.js +250 -0
  174. package/src/server/catalog.js +9 -14
  175. package/src/server/conf.js +3 -6
  176. package/src/server/runtime-status.js +18 -1
  177. package/src/server/start.js +12 -2
  178. package/src/server.js +6 -2
  179. package/test/cyberia-instance-conf-defaults.test.js +140 -0
  180. package/test/deploy-monitor.test.js +26 -10
  181. package/test/shape-generator.test.js +7 -1
  182. package/typedoc.dd-cyberia.json +3 -1
  183. package/typedoc.json +3 -1
  184. /package/src/client/ssr/{Render.js → RootDocument.js} +0 -0
  185. /package/src/{server → client-builder}/client-formatted.js +0 -0
@@ -0,0 +1,13 @@
1
+ #!/bin/sh
2
+ # Kubo /container-init.d hook — runs after `ipfs init`, before the daemon starts.
3
+ # Compose equivalent of the Addresses/Datastore config in manifests/ipfs
4
+ # configmap.yaml (configure-ipfs.sh). Binds the RPC API (5001) and gateway
5
+ # (8080) to all interfaces so the engine and ipfs-cluster containers can reach
6
+ # the daemon at http://ipfs:5001 (ipfs-client.js IPFS_API_URL).
7
+ set -e
8
+
9
+ ipfs config Addresses.API /ip4/0.0.0.0/tcp/5001
10
+ ipfs config Addresses.Gateway /ip4/0.0.0.0/tcp/8080
11
+ ipfs config --json Swarm.ConnMgr.HighWater 2000
12
+ ipfs config --json Datastore.BloomFilterSize 1048576
13
+ ipfs config Datastore.StorageMax 100GB
@@ -23,7 +23,7 @@ spec:
23
23
  spec:
24
24
  containers:
25
25
  - name: dd-cron-backup
26
- image: underpost/underpost-engine:v3.2.22
26
+ image: underpost/underpost-engine:v3.2.70
27
27
  command:
28
28
  - /bin/sh
29
29
  - -c
@@ -23,7 +23,7 @@ spec:
23
23
  spec:
24
24
  containers:
25
25
  - name: dd-cron-dns
26
- image: underpost/underpost-engine:v3.2.22
26
+ image: underpost/underpost-engine:v3.2.70
27
27
  command:
28
28
  - /bin/sh
29
29
  - -c
@@ -20,7 +20,7 @@ spec:
20
20
  spec:
21
21
  containers:
22
22
  - name: dd-cyberia-development-blue
23
- image: underpost/underpost-engine:v3.2.22
23
+ image: underpost/underpost-engine:v3.2.70
24
24
  imagePullPolicy: IfNotPresent
25
25
  envFrom:
26
26
  - secretRef:
@@ -229,7 +229,7 @@ spec:
229
229
  spec:
230
230
  containers:
231
231
  - name: dd-cyberia-development-green
232
- image: underpost/underpost-engine:v3.2.22
232
+ image: underpost/underpost-engine:v3.2.70
233
233
  imagePullPolicy: IfNotPresent
234
234
  envFrom:
235
235
  - secretRef:
@@ -0,0 +1,17 @@
1
+ ---
2
+ apiVersion: v1
3
+ kind: Service
4
+ metadata:
5
+ name: dd-cyberia-grpc-service-development-blue
6
+ namespace: default
7
+ labels:
8
+ app: dd-cyberia-grpc-service-development-blue
9
+ spec:
10
+ type: ClusterIP
11
+ selector:
12
+ app: dd-cyberia-development-blue
13
+ ports:
14
+ - name: grpc-50051
15
+ protocol: TCP
16
+ port: 50051
17
+ targetPort: 50051
@@ -10,6 +10,14 @@ spec:
10
10
  - ReadWriteOnce
11
11
  persistentVolumeReclaimPolicy: Retain
12
12
  storageClassName: manual
13
+ nodeAffinity:
14
+ required:
15
+ nodeSelectorTerms:
16
+ - matchExpressions:
17
+ - key: kubernetes.io/hostname
18
+ operator: In
19
+ values:
20
+ - kind-worker
13
21
  claimRef:
14
22
  apiVersion: v1
15
23
  kind: PersistentVolumeClaim
@@ -43,6 +51,14 @@ spec:
43
51
  - ReadWriteOnce
44
52
  persistentVolumeReclaimPolicy: Retain
45
53
  storageClassName: manual
54
+ nodeAffinity:
55
+ required:
56
+ nodeSelectorTerms:
57
+ - matchExpressions:
58
+ - key: kubernetes.io/hostname
59
+ operator: In
60
+ values:
61
+ - kind-worker
46
62
  claimRef:
47
63
  apiVersion: v1
48
64
  kind: PersistentVolumeClaim
@@ -76,6 +92,14 @@ spec:
76
92
  - ReadWriteOnce
77
93
  persistentVolumeReclaimPolicy: Retain
78
94
  storageClassName: manual
95
+ nodeAffinity:
96
+ required:
97
+ nodeSelectorTerms:
98
+ - matchExpressions:
99
+ - key: kubernetes.io/hostname
100
+ operator: In
101
+ values:
102
+ - kind-worker
79
103
  claimRef:
80
104
  apiVersion: v1
81
105
  kind: PersistentVolumeClaim
@@ -109,6 +133,14 @@ spec:
109
133
  - ReadWriteOnce
110
134
  persistentVolumeReclaimPolicy: Retain
111
135
  storageClassName: manual
136
+ nodeAffinity:
137
+ required:
138
+ nodeSelectorTerms:
139
+ - matchExpressions:
140
+ - key: kubernetes.io/hostname
141
+ operator: In
142
+ values:
143
+ - kind-worker
112
144
  claimRef:
113
145
  apiVersion: v1
114
146
  kind: PersistentVolumeClaim
@@ -17,7 +17,7 @@ spec:
17
17
  spec:
18
18
  containers:
19
19
  - name: dd-default-development-blue
20
- image: underpost/underpost-engine:v3.2.22
20
+ image: underpost/underpost-engine:v3.2.70
21
21
  # resources:
22
22
  # requests:
23
23
  # memory: "124Ki"
@@ -98,7 +98,7 @@ spec:
98
98
  spec:
99
99
  containers:
100
100
  - name: dd-default-development-green
101
- image: underpost/underpost-engine:v3.2.22
101
+ image: underpost/underpost-engine:v3.2.70
102
102
  # resources:
103
103
  # requests:
104
104
  # memory: "124Ki"
@@ -0,0 +1,76 @@
1
+ #!/usr/bin/env bash
2
+ # Generated by 'underpost docker-compose --generate' — do not hand-edit.
3
+ set -e
4
+
5
+ KEYFILE=/opt/keyfile/mongodb-keyfile
6
+ RS="${DB_REPLICA_SET:-rs0}"
7
+ MEMBER_HOST="mongodb:27017"
8
+
9
+ if [ ! -s "$KEYFILE" ]; then
10
+ openssl rand -base64 756 > "$KEYFILE"
11
+ fi
12
+ chmod 400 "$KEYFILE"
13
+ chown 999:999 "$KEYFILE"
14
+ mkdir -p /data/db
15
+ chown -R 999:999 /data/db
16
+
17
+ # One-time replica-set + root-user bootstrap via the localhost exception,
18
+ # performed in the background once mongod accepts loopback connections.
19
+ (
20
+ for i in $(seq 1 60); do
21
+ if mongosh --quiet --host 127.0.0.1 --eval 'db.adminCommand({ ping: 1 })' >/dev/null 2>&1; then
22
+ break
23
+ fi
24
+ sleep 1
25
+ done
26
+
27
+ cat > /tmp/mongo-bootstrap.js <<JS
28
+ var RS = "$RS";
29
+ var HOST = "$MEMBER_HOST";
30
+ var U = "$MONGO_INITDB_ROOT_USERNAME";
31
+ var P = "$MONGO_INITDB_ROOT_PASSWORD";
32
+ function waitPrimary() {
33
+ for (var i = 0; i < 60; i++) {
34
+ var h = db.hello();
35
+ if (h.isWritablePrimary) return true;
36
+ sleep(1000);
37
+ }
38
+ return false;
39
+ }
40
+ var initialized = false;
41
+ try {
42
+ var s = rs.status();
43
+ if (s && s.ok === 1) initialized = true;
44
+ } catch (e) {
45
+ var m = String(e);
46
+ if (m.indexOf("requires authentication") >= 0 || m.indexOf("not authorized") >= 0 || m.indexOf("Unauthorized") >= 0) {
47
+ initialized = true;
48
+ } else if (m.indexOf("NotYetInitialized") < 0 && m.indexOf("no replset config") < 0) {
49
+ throw e;
50
+ }
51
+ }
52
+ if (!initialized) {
53
+ rs.initiate({ _id: RS, members: [{ _id: 0, host: HOST }] });
54
+ waitPrimary();
55
+ var admin = db.getSiblingDB("admin");
56
+ try {
57
+ admin.createUser({ user: U, pwd: P, roles: [{ role: "root", db: "admin" }] });
58
+ print("BOOTSTRAP_USER_CREATED");
59
+ } catch (e) {
60
+ var s2 = String(e);
61
+ if (s2.indexOf("already exists") < 0 && s2.indexOf("not authorized") < 0 && s2.indexOf("requires authentication") < 0) {
62
+ throw e;
63
+ }
64
+ print("BOOTSTRAP_USER_SKIP");
65
+ }
66
+ print("BOOTSTRAP_DONE");
67
+ } else {
68
+ print("BOOTSTRAP_ALREADY_INITIALIZED");
69
+ }
70
+ JS
71
+
72
+ mongosh --quiet --host 127.0.0.1 /tmp/mongo-bootstrap.js > /tmp/mongo-bootstrap.log 2>&1 || true
73
+ ) &
74
+
75
+ exec gosu mongodb mongod \
76
+ --replSet "$RS" --auth --clusterAuthMode keyFile --keyFile "$KEYFILE" --bind_ip_all
package/nginx.conf ADDED
@@ -0,0 +1,87 @@
1
+ # Reverse proxy for the Cyberia ecosystem compose stack (custom workflow:
2
+ # --deploy-id dd-cyberia --docker-compose-id cyberia). Hand-authored source of
3
+ # truth for this stack — used as-is (not generated). Mirrors the render format
4
+ # of src/runtime/nginx/Nginx.js (websocket upgrade map, named upstreams,
5
+ # proxy_http_version 1.1, per-host servers).
6
+ #
7
+ # Host -> upstream mapping (matches engine-private/conf/dd-cyberia hosts):
8
+ # www.cyberiaonline.com -> engine-cyberia:4005 (portal + REST + WS authority)
9
+ # server.cyberiaonline.com -> cyberia-server:8081 (Go MMO simulation / websocket)
10
+ # client.cyberiaonline.com -> cyberia-client:8081 (WASM presentation bundle)
11
+
12
+ map $http_upgrade $connection_upgrade {
13
+ default upgrade;
14
+ '' close;
15
+ }
16
+
17
+ upstream up_engine_cyberia { server engine-cyberia:4005; }
18
+ upstream up_cyberia_server { server cyberia-server:8081; }
19
+ upstream up_cyberia_client { server cyberia-client:8081; }
20
+
21
+ proxy_http_version 1.1;
22
+
23
+ server {
24
+ listen 80 default_server;
25
+ server_name _ cyberiaonline.com www.cyberiaonline.com;
26
+
27
+ location = /healthz {
28
+ access_log off;
29
+ return 200 "ok\n";
30
+ add_header Content-Type text/plain;
31
+ }
32
+
33
+ location / {
34
+ proxy_pass http://up_engine_cyberia;
35
+ proxy_set_header Host $host;
36
+ proxy_set_header X-Real-IP $remote_addr;
37
+ proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
38
+ proxy_set_header X-Forwarded-Proto $scheme;
39
+ proxy_set_header Upgrade $http_upgrade;
40
+ proxy_set_header Connection $connection_upgrade;
41
+ proxy_read_timeout 3600s;
42
+ }
43
+ }
44
+
45
+ server {
46
+ listen 80;
47
+ server_name server.cyberiaonline.com;
48
+
49
+ location = /healthz {
50
+ access_log off;
51
+ return 200 "ok\n";
52
+ add_header Content-Type text/plain;
53
+ }
54
+
55
+ location / {
56
+ proxy_pass http://up_cyberia_server;
57
+ proxy_set_header Host $host;
58
+ proxy_set_header X-Real-IP $remote_addr;
59
+ proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
60
+ proxy_set_header X-Forwarded-Proto $scheme;
61
+ proxy_set_header Upgrade $http_upgrade;
62
+ proxy_set_header Connection $connection_upgrade;
63
+ proxy_read_timeout 3600s;
64
+ }
65
+ }
66
+
67
+ server {
68
+ listen 80;
69
+ server_name client.cyberiaonline.com;
70
+
71
+ location = /healthz {
72
+ access_log off;
73
+ return 200 "ok\n";
74
+ add_header Content-Type text/plain;
75
+ }
76
+
77
+ location / {
78
+ proxy_pass http://up_cyberia_client;
79
+ proxy_set_header Host $host;
80
+ proxy_set_header X-Real-IP $remote_addr;
81
+ proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
82
+ proxy_set_header X-Forwarded-Proto $scheme;
83
+ proxy_set_header Upgrade $http_upgrade;
84
+ proxy_set_header Connection $connection_upgrade;
85
+ proxy_read_timeout 3600s;
86
+ }
87
+ }
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "type": "module",
3
3
  "main": "src/index.js",
4
4
  "name": "cyberia",
5
- "version": "3.2.22",
5
+ "version": "3.2.70",
6
6
  "description": "Cyberia CLI — toolchain for the Cyberia MMO data layer, content pipeline, persistence, gRPC services, and ERC-1155 lifecycle on Hyperledger Besu.",
7
7
  "scripts": {
8
8
  "start": "node --max-old-space-size=8192 src/server",
@@ -26,7 +26,18 @@
26
26
  "security:secrets:ci": "gitleaks detect --source . --config .gitleaks.toml --redact=1",
27
27
  "security:deps": "npm audit",
28
28
  "security": "npm run security:secrets:ci && npm run security:deps",
29
- "clean": "node bin env clean && node bin run clean"
29
+ "clean": "node bin env clean && node bin run clean",
30
+ "docker:generate": "node bin docker-compose --generate",
31
+ "docker:up": "node bin docker-compose --up",
32
+ "docker:up:build": "node bin docker-compose --up --build",
33
+ "docker:down": "node bin docker-compose --down",
34
+ "docker:down:volumes": "node bin docker-compose --down --volumes",
35
+ "docker:restart": "node bin docker-compose --restart",
36
+ "docker:build": "node bin docker-compose --build",
37
+ "docker:pull": "node bin docker-compose --pull",
38
+ "docker:logs": "node bin docker-compose --logs",
39
+ "docker:status": "node bin docker-compose --status",
40
+ "docker:shell": "node bin docker-compose --shell"
30
41
  },
31
42
  "bin": {
32
43
  "cyberia": "bin/index.js"
@@ -60,14 +71,14 @@
60
71
  },
61
72
  "homepage": "https://github.com/underpostnet/engine-cyberia#readme",
62
73
  "dependencies": {
63
- "@fortawesome/fontawesome-free": "^7.2.0",
64
- "@fullcalendar/rrule": "^6.1.20",
74
+ "@fortawesome/fontawesome-free": "^7.3.0",
75
+ "@fullcalendar/rrule": "^6.1.21",
65
76
  "@grpc/grpc-js": "^1.14.4",
66
77
  "@grpc/proto-loader": "^0.8.1",
67
78
  "@neodrag/vanilla": "^2.3.1",
68
- "adm-zip": "^0.5.17",
69
- "ag-grid-community": "^35.3.0",
70
- "axios": "^1.16.1",
79
+ "adm-zip": "^0.5.18",
80
+ "ag-grid-community": "^36.0.0",
81
+ "axios": "^1.18.1",
71
82
  "bumpp": "^11.1.0",
72
83
  "chai": "^6.2.2",
73
84
  "clipboardy": "^5.3.1",
@@ -78,10 +89,10 @@
78
89
  "cookie-parser": "^1.4.7",
79
90
  "cors": "^2.8.6",
80
91
  "d3": "^7.9.0",
81
- "dexie": "^4.4.3",
92
+ "dexie": "^4.4.4",
82
93
  "dotenv": "^17.4.2",
83
94
  "easymde": "^2.21.0",
84
- "esbuild": "^0.28.0",
95
+ "esbuild": "^0.28.1",
85
96
  "escape-string-regexp": "^5.0.0",
86
97
  "express": "^5.2.1",
87
98
  "express-fileupload": "^1.4.3",
@@ -89,21 +100,21 @@
89
100
  "express-slow-down": "^3.1.0",
90
101
  "fast-json-stable-stringify": "^2.1.0",
91
102
  "favicons": "^7.3.0",
92
- "fs-extra": "^11.3.5",
93
- "fullcalendar": "^6.1.15",
103
+ "fs-extra": "^11.3.6",
104
+ "fullcalendar": "^6.1.21",
94
105
  "helmet": "^8.2.0",
95
106
  "html-minifier-terser": "^7.2.0",
96
- "http-proxy-middleware": "^4.0.0",
107
+ "http-proxy-middleware": "^4.2.0",
97
108
  "ignore-walk": "^9.0.0",
98
109
  "iovalkey": "^0.3.3",
99
110
  "json-colorizer": "^3.0.1",
100
111
  "jsonwebtoken": "^9.0.3",
101
- "mariadb": "^3.2.2",
112
+ "mariadb": "^3.5.3",
113
+ "marked": "^18.0.5",
102
114
  "mocha": "^11.7.6",
103
- "marked": "^18.0.4",
104
- "mongoose": "^9.6.3",
105
- "morgan": "^1.10.0",
106
- "nodemailer": "^8.0.10",
115
+ "mongoose": "^9.7.3",
116
+ "morgan": "^1.11.0",
117
+ "nodemailer": "^9.0.3",
107
118
  "nodemon": "^3.0.1",
108
119
  "peer": "^1.0.2",
109
120
  "peerjs": "^1.5.5",
@@ -117,7 +128,7 @@
117
128
  "split-file": "^2.3.0",
118
129
  "swagger-autogen": "^2.23.7",
119
130
  "swagger-ui-express": "^5.0.0",
120
- "typedoc": "^0.28.19",
131
+ "typedoc": "^0.28.20",
121
132
  "typescript": "^6.0.3",
122
133
  "validator": "^13.15.35",
123
134
  "vanilla-jsoneditor": "^3.12.0",
@@ -150,6 +161,7 @@
150
161
  "serialize-javascript": ">=7.0.5",
151
162
  "router": {
152
163
  "path-to-regexp": ">=8.4.0"
153
- }
164
+ },
165
+ "ws": "^8.20.2"
154
166
  }
155
167
  }
package/pv-pvc.yaml CHANGED
@@ -10,6 +10,14 @@ spec:
10
10
  - ReadWriteOnce
11
11
  persistentVolumeReclaimPolicy: Retain
12
12
  storageClassName: manual
13
+ nodeAffinity:
14
+ required:
15
+ nodeSelectorTerms:
16
+ - matchExpressions:
17
+ - key: kubernetes.io/hostname
18
+ operator: In
19
+ values:
20
+ - kind-worker
13
21
  claimRef:
14
22
  apiVersion: v1
15
23
  kind: PersistentVolumeClaim
@@ -43,6 +51,14 @@ spec:
43
51
  - ReadWriteOnce
44
52
  persistentVolumeReclaimPolicy: Retain
45
53
  storageClassName: manual
54
+ nodeAffinity:
55
+ required:
56
+ nodeSelectorTerms:
57
+ - matchExpressions:
58
+ - key: kubernetes.io/hostname
59
+ operator: In
60
+ values:
61
+ - kind-worker
46
62
  claimRef:
47
63
  apiVersion: v1
48
64
  kind: PersistentVolumeClaim
@@ -76,6 +92,14 @@ spec:
76
92
  - ReadWriteOnce
77
93
  persistentVolumeReclaimPolicy: Retain
78
94
  storageClassName: manual
95
+ nodeAffinity:
96
+ required:
97
+ nodeSelectorTerms:
98
+ - matchExpressions:
99
+ - key: kubernetes.io/hostname
100
+ operator: In
101
+ values:
102
+ - kind-worker
79
103
  claimRef:
80
104
  apiVersion: v1
81
105
  kind: PersistentVolumeClaim
@@ -109,6 +133,14 @@ spec:
109
133
  - ReadWriteOnce
110
134
  persistentVolumeReclaimPolicy: Retain
111
135
  storageClassName: manual
136
+ nodeAffinity:
137
+ required:
138
+ nodeSelectorTerms:
139
+ - matchExpressions:
140
+ - key: kubernetes.io/hostname
141
+ operator: In
142
+ values:
143
+ - kind-worker
112
144
  claimRef:
113
145
  apiVersion: v1
114
146
  kind: PersistentVolumeClaim