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
package/.env.example CHANGED
@@ -1,72 +1,131 @@
1
- DEPLOY_ID=dd-default
2
- NODE_ENV=production
3
- PORT=3000
4
- JWT_SECRET=changethis
5
- REFRESH_EXPIRE_MINUTES=5
6
- ACCESS_EXPIRE_MINUTES=1440
7
- NODE_OPTIONS=--max-old-space-size=8192
8
- TIME_ZONE=changethis
9
- GITHUB_TOKEN=changethis
10
- GITHUB_USERNAME=changethis
11
- GITHUB_BACKUP_REPO=changethis
12
- GITHUB_DNS_REPO=changethis
13
- GITHUB_EMAIL=admin@default.net
14
- DEFAULT_DEPLOY_ID=dd-default
15
- DEFAULT_DEPLOY_HOST=default.net
16
- DEFAULT_DEPLOY_PATH=/
17
- MARIADB_HOST=changethis
18
- MARIADB_PORT=3306
19
- MARIADB_USER=changethis
20
- MARIADB_PASSWORD=changethis
1
+ # Working env-file for the Cyberia ecosystem compose stack (custom workflow).
2
+ # Used as-is by the CLI (not generated). Set real credentials here, then run:
3
+ # underpost docker-compose --up --deploy-id dd-cyberia --docker-compose-id cyberia
4
+ #
5
+ # Loaded explicitly via --env-file so container service-discovery values (the
6
+ # Docker network hostnames below) are not overridden by any host-local .env.
7
+
8
+ # --- Ecosystem images (dev variants, published by docker-image.*.dev.ci.yml) --
9
+ # This stack is development-only, so it uses the `-dev` images built from the
10
+ # Dockerfile.dev variants (debug builds + live-inspection tooling).
11
+ MONGO_IMAGE=mongo:latest
12
+ VALKEY_IMAGE=valkey/valkey:latest
13
+ ENGINE_CYBERIA_IMAGE=underpost/engine-cyberia-dev
14
+ ENGINE_CYBERIA_TAG=v3.2.70
15
+ CYBERIA_SERVER_IMAGE=underpost/cyberia-server-dev
16
+ CYBERIA_SERVER_TAG=v3.2.70
17
+ CYBERIA_CLIENT_IMAGE=underpost/cyberia-client-dev
18
+ CYBERIA_CLIENT_TAG=v3.2.70
19
+ PROXY_IMAGE=nginx:stable-alpine
20
+ IPFS_IMAGE=ipfs/kubo:latest
21
+ IPFS_CLUSTER_IMAGE=ipfs/ipfs-cluster:latest
22
+
23
+ # --- Private-repo bootstrap (engine-cyberia clones the private dd-cyberia conf) -
24
+ # The engine-cyberia image ships only the underpost CLI; at start it runs the
25
+ # `underpost start --build` bootstrap, which clones ${GITHUB_USERNAME}/engine-cyberia.
26
+ GITHUB_USERNAME=underpostnet
27
+ GITHUB_TOKEN=change_me_private_repo_token
28
+
29
+ # --- MongoDB (translation of Secret mongodb-secret) --------------------------
30
+ MONGO_INITDB_ROOT_USERNAME=admin
31
+ MONGO_INITDB_ROOT_PASSWORD=change_me_dev_password
32
+
33
+ # --- Application DB / cache connection (Docker service discovery, not localhost)
34
+ NODE_ENV=development
21
35
  DB_PROVIDER=mongoose
22
- DB_HOST=mongodb://127.0.0.1:27017
23
- DB_NAME=default
24
- SMTP_HOST=changethis
25
- SMTP_PORT=465
26
- SMTP_SECURE=true
27
- SMTP_AUTH_USER=changethis
28
- SMTP_AUTH_PASS=changethis
29
- MAILER_SENDER_EMAIL=noreply@default.net
30
- MAILER_SENDER_NAME=Default
31
- DDNS_HOST=changethis
32
- DDNS_PROVIDER=dondominio
33
- DDNS_API_KEY=changethis
34
- DDNS_USER=changethis
35
- VALKEY_HOST=127.0.0.1
36
+ DB_HOST=mongodb://mongodb:27017
37
+ DB_REPLICA_SET=rs0
38
+ DB_AUTH_SOURCE=admin
39
+ VALKEY_HOST=valkey-service
36
40
  VALKEY_PORT=6379
37
- WIFI_PASSWORD=changethis
38
- CLOUDINARY_CLOUD_NAME=changethis
39
- CLOUDINARY_API_KEY=changethis
40
- CLOUDINARY_API_SECRET=changethis
41
- CLOUDINARY_PASSWORD=changethis
42
- CLOUDINARY_EMAIL=admin@default.net
43
- DB_PG_MAAS_NAME=changethis
44
- DB_PG_MAAS_PASS=changethis
45
- DB_PG_MAAS_USER=changethis
46
- DB_PG_MAAS_HOST=127.0.0.1
47
- DB_PG_MAAS_PORT=5432
48
- MAAS_ADMIN_USERNAME=changethis
49
- MAAS_API_KEY=changethis
50
- MAAS_ADMIN_EMAIL=admin@default.net
51
- MAAS_ADMIN_PASS=changethis
52
- TFTP_ROOT=changethis
53
- NETMASK=255.255.255.0
54
- MAAS_DNS=8.8.8.8
55
- MAAS_NTP_SERVER=changethis
56
- NFS_EXPORT_PATH=changethis
57
- NVIDIA_API_KEY=changethis
58
- DEFAULT_ADMIN_EMAIL=admin@default.net
59
- DEFAULT_ADMIN_PASSWORD=changethis
60
- DEFAULT_SSH_USER=changethis
61
- DEFAULT_SSH_HOST=changethis
62
- DEFAULT_SSH_KEY_PATH=changethis
63
- NPM_TOKEN=changethis
64
- NPM_USER=changethis
65
- NPM_PASSWORD=changethis
66
- POSTMAN_EMAIL=admin@default.net
67
- POSTMAN_PASSWORD=changethis
68
- DEFAULT_SSH_PORT=22
69
- ENABLE_FILE_LOGS=false
41
+
42
+ # --- Cyberia instance wiring (compose service DNS) ---------------------------
43
+ # cyberia-server -> engine-cyberia authority endpoints. INTERNAL only: these use
44
+ # the docker service DNS (engine-cyberia) and must never leak to browser clients.
45
+ INSTANCE_CODE=amethyst-strata-expansion
46
+ ENGINE_API_BASE_URL=http://engine-cyberia:4005
47
+ ENGINE_GRPC_ADDRESS=engine-cyberia:50051
48
+
49
+ # Client-visible Content Authority origin, forwarded to browser/Raylib clients
50
+ # for every engine-cyberia content/asset/metadata request. Host-reachable
51
+ # (docker publishes engine-cyberia :4005). Distinct from ENGINE_API_BASE_URL:
52
+ # the two responsibilities must never overwrite each other.
53
+ ENGINE_PUBLIC_URL=http://localhost:4005
54
+ ENGINE_GRPC_RELOAD_INTERVAL_SEC=300
55
+
56
+ # cyberia-server logging. This is the dev stack, so default to DEBUG. Set
57
+ # CYBERIA_SERVER_LOG_LEVEL (debug|info|warn|error) to override the APP_ENV
58
+ # fallback without touching APP_ENV.
59
+ CYBERIA_SERVER_APP_ENV=development
60
+ CYBERIA_SERVER_LOG_LEVEL=
61
+
62
+ # --- engine-cyberia runtime env (loaded into the container via env_file) -----
63
+ # The dd-cyberia engine (engine-private/conf/dd-cyberia/conf.server.json) needs
64
+ # these to boot: DB auth + per-site DB names, the base PORT (the cyberia host is
65
+ # assigned PORT+1 = 4005, which the healthcheck/nginx target), JWT, and mailer.
66
+ # Secrets are DEV PLACEHOLDERS — no real credentials ship in the public image.
67
+ PORT=4004
68
+ NODE_OPTIONS=--max-old-space-size=8192
70
69
  BASE_API=api
71
- DEV_PROXY_PORT_OFFSET=200
70
+ DEFAULT_DEPLOY_ID=dd-cyberia
71
+ DEPLOY_ID=dd-cyberia
72
+ DEFAULT_DEPLOY_HOST=www.cyberiaonline.com
73
+ DEFAULT_DEPLOY_PATH=/
74
+ DISABLE_API_RATE_LIMIT=true
72
75
  DOTENV_CONFIG_QUIET=true
76
+ ACCESS_EXPIRE_MINUTES=1440
77
+ REFRESH_EXPIRE_MINUTES=5
78
+ DEV_PROXY_PORT_OFFSET=0
79
+ JWT_SECRET=change_me_dev_jwt_secret
80
+
81
+ # DB auth (must match the MONGO_INITDB_ROOT_* creds above) + per-site DB names.
82
+ DB_USER=admin
83
+ DB_PASSWORD=change_me_dev_password
84
+
85
+ DB_NAME_CYBERIA=cyberia
86
+
87
+ # Mailer / SMTP (dev placeholders — mailer stays inert without real creds).
88
+ MAILER_SENDER_NAME=CYBERIA
89
+ MAILER_SENDER_EMAIL=noreply@example.com
90
+ SMTP_HOST=smtp.example.com
91
+ SMTP_PORT=465
92
+ SMTP_AUTH_USER=change_me
93
+ SMTP_AUTH_PASS=change_me
94
+ MAILER_SENDER_NAME_CYBERIA=CYBERIA
95
+ MAILER_SENDER_EMAIL_CYBERIA=noreply@example.com
96
+ SMTP_HOST_CYBERIA=smtp.example.com
97
+ SMTP_PORT_CYBERIA=465
98
+ SMTP_AUTH_USER_CYBERIA=change_me
99
+ SMTP_AUTH_PASS_CYBERIA=change_me
100
+
101
+ # Third-party integrations (dev placeholders).
102
+ CLOUDINARY_CLOUD_NAME=change_me
103
+ CLOUDINARY_API_KEY=change_me
104
+ CLOUDINARY_API_SECRET=change_me
105
+ GEMINI_API_KEY=change_me
106
+ HUGGINGFACE_API_KEY=change_me
107
+ DEFAULT_ADMIN_EMAIL=admin@example.com
108
+ DEFAULT_ADMIN_PASSWORD=change_me
109
+
110
+ # --- IPFS endpoints ----------------------------------------------------------
111
+ # Kubo (content plane) is the `ipfs` service; the Cluster REST API (:9094, pin
112
+ # replication) is the `ipfs-cluster` service. Override only to target a
113
+ # different node.
114
+ IPFS_API_URL=http://ipfs:5001
115
+ IPFS_GATEWAY_URL=http://ipfs:8080
116
+ IPFS_CLUSTER_API_URL=http://ipfs-cluster:9094
117
+ # 32-byte hex shared secret for the ipfs-cluster consensus (dev default is set
118
+ # in docker-compose.yml). Override for a real/shared cluster.
119
+ # CLUSTER_SECRET=
120
+
121
+ # --- Host-published ports ----------------------------------------------------
122
+ PROXY_HTTP_PORT=80
123
+ IPFS_API_PORT=5001
124
+ IPFS_GATEWAY_PORT=8080
125
+ IPFS_CLUSTER_API_PORT=9094
126
+ MONGO_HOST_PORT=27017
127
+ VALKEY_NODEPORT=32079
128
+ ENGINE_CYBERIA_REST_PORT=4005
129
+ ENGINE_CYBERIA_GRPC_PORT=50051
130
+ CYBERIA_SERVER_PORT=8081
131
+ CYBERIA_CLIENT_PORT=8082
@@ -0,0 +1,40 @@
1
+ name: CD | Cyberia mmo client | remote ssh
2
+ on:
3
+ workflow_dispatch:
4
+ inputs:
5
+ job:
6
+ description: 'Job to run (deploy)'
7
+ required: true
8
+ type: choice
9
+ options:
10
+ - deploy
11
+ permissions:
12
+ contents: write
13
+ packages: write
14
+ id-token: write
15
+
16
+ jobs:
17
+ deploy:
18
+ if: >-
19
+ github.repository == 'underpostnet/cyberia-client'
20
+ && github.event.inputs.job == 'deploy'
21
+ name: Remote SSH deployment
22
+ runs-on: ubuntu-latest
23
+ steps:
24
+ - name: Run remote deploy via SSH
25
+ uses: appleboy/ssh-action@v1.2.5
26
+ with:
27
+ host: ${{ secrets.SSH_HOST }}
28
+ username: ${{ secrets.SSH_USERNAME }}
29
+ key: ${{ secrets.SSH_PRIV_KEY }}
30
+ port: ${{ secrets.SSH_PORT }}
31
+ command_timeout: 60m
32
+ script: |
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 --node-name $HOSTNAME --kubeadm 'dd-cyberia,mmo-client' --node-name ${TARGET_NODE} --ssh-key-path /home/dd/tmp/897as9dxhaskd9"
@@ -0,0 +1,40 @@
1
+ name: CD | Cyberia mmo server | remote ssh
2
+ on:
3
+ workflow_dispatch:
4
+ inputs:
5
+ job:
6
+ description: 'Job to run (deploy)'
7
+ required: true
8
+ type: choice
9
+ options:
10
+ - deploy
11
+ permissions:
12
+ contents: write
13
+ packages: write
14
+ id-token: write
15
+
16
+ jobs:
17
+ deploy:
18
+ if: >-
19
+ github.repository == 'underpostnet/cyberia-server'
20
+ && github.event.inputs.job == 'deploy'
21
+ name: Remote SSH deployment
22
+ runs-on: ubuntu-latest
23
+ steps:
24
+ - name: Run remote deploy via SSH
25
+ uses: appleboy/ssh-action@v1.2.5
26
+ with:
27
+ host: ${{ secrets.SSH_HOST }}
28
+ username: ${{ secrets.SSH_USERNAME }}
29
+ key: ${{ secrets.SSH_PRIV_KEY }}
30
+ port: ${{ secrets.SSH_PORT }}
31
+ command_timeout: 60m
32
+ script: |
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 --node-name $HOSTNAME --kubeadm 'dd-cyberia,mmo-server' --node-name ${TARGET_NODE} --ssh-key-path /home/dd/tmp/897as9dxhaskd9"
@@ -0,0 +1,49 @@
1
+ name: CI | Docker Image cyberia-client
2
+
3
+ on:
4
+ workflow_dispatch:
5
+
6
+ env:
7
+ UNDERPOST_VERSION: '3.2.70'
8
+
9
+ jobs:
10
+ build-and-push:
11
+ runs-on: ubuntu-latest
12
+ permissions:
13
+ contents: read
14
+ packages: write
15
+
16
+ steps:
17
+ - uses: actions/checkout@v7
18
+
19
+ - name: Set up Docker Buildx
20
+ uses: docker/setup-buildx-action@v4
21
+
22
+ - name: Login to Docker Hub
23
+ uses: docker/login-action@v4
24
+ with:
25
+ username: ${{ secrets.DOCKER_HUB_USERNAME }}
26
+ password: ${{ secrets.DOCKER_HUB_ACCESS_TOKEN }}
27
+
28
+ - name: Extract Docker metadata
29
+ id: meta
30
+ uses: docker/metadata-action@v6
31
+ with:
32
+ images: underpost/cyberia-client
33
+ tags: |
34
+ type=raw,value=v${{ env.UNDERPOST_VERSION }}
35
+ type=ref,event=branch
36
+ type=sha,prefix=sha-
37
+
38
+ - name: Build and push image
39
+ uses: docker/build-push-action@v7
40
+ with:
41
+ context: .
42
+ file: ./Dockerfile
43
+ push: true
44
+ tags: ${{ steps.meta.outputs.tags }}
45
+ labels: ${{ steps.meta.outputs.labels }}
46
+
47
+ build-args: |
48
+ UNDERPOST_VERSION=${{ env.UNDERPOST_VERSION }}
49
+ BUILD_MODE=RELEASE
@@ -0,0 +1,48 @@
1
+ name: CI | Docker Image cyberia-client (dev)
2
+
3
+ on:
4
+ workflow_dispatch:
5
+
6
+ env:
7
+ UNDERPOST_VERSION: '3.2.70'
8
+
9
+ jobs:
10
+ build-and-push:
11
+ runs-on: ubuntu-latest
12
+ permissions:
13
+ contents: read
14
+ packages: write
15
+
16
+ steps:
17
+ - uses: actions/checkout@v7
18
+
19
+ - name: Set up Docker Buildx
20
+ uses: docker/setup-buildx-action@v4
21
+
22
+ - name: Login to Docker Hub
23
+ uses: docker/login-action@v4
24
+ with:
25
+ username: ${{ secrets.DOCKER_HUB_USERNAME }}
26
+ password: ${{ secrets.DOCKER_HUB_ACCESS_TOKEN }}
27
+
28
+ - name: Extract Docker metadata
29
+ id: meta
30
+ uses: docker/metadata-action@v6
31
+ with:
32
+ images: underpost/cyberia-client-dev
33
+ tags: |
34
+ type=raw,value=v${{ env.UNDERPOST_VERSION }}
35
+ type=ref,event=branch
36
+ type=sha,prefix=sha-
37
+
38
+ - name: Build and push image
39
+ uses: docker/build-push-action@v7
40
+ with:
41
+ context: .
42
+ file: ./Dockerfile.dev
43
+ push: true
44
+ tags: ${{ steps.meta.outputs.tags }}
45
+ labels: ${{ steps.meta.outputs.labels }}
46
+ build-args: |
47
+ UNDERPOST_VERSION=${{ env.UNDERPOST_VERSION }}
48
+ BUILD_MODE=DEBUG
@@ -0,0 +1,69 @@
1
+ name: CI | Docker Image cyberia-server
2
+
3
+ on:
4
+ workflow_dispatch:
5
+
6
+ env:
7
+ UNDERPOST_VERSION: '3.2.70'
8
+
9
+ jobs:
10
+ build-and-push:
11
+ runs-on: ubuntu-latest
12
+ permissions:
13
+ contents: read
14
+ packages: write
15
+
16
+ steps:
17
+ - uses: actions/checkout@v7
18
+
19
+ - name: Checkout engine
20
+ uses: actions/checkout@v7
21
+ with:
22
+ repository: underpostnet/engine
23
+ path: engine
24
+
25
+ - name: Setup Node.js
26
+ uses: actions/setup-node@v6
27
+ with:
28
+ node-version: '24.x'
29
+
30
+ - name: Install engine dependencies
31
+ working-directory: engine
32
+ run: npm ci --ignore-scripts
33
+
34
+ - name: Build cyberia-server SSR dashboard
35
+ working-directory: engine
36
+ run: |
37
+ node bin/deploy cyberia
38
+ node bin/cyberia run-workflow build-server-dashboard --output-path ../public/index.html
39
+
40
+ - name: Set up Docker Buildx
41
+ uses: docker/setup-buildx-action@v4
42
+
43
+ - name: Login to Docker Hub
44
+ uses: docker/login-action@v4
45
+ with:
46
+ username: ${{ secrets.DOCKER_HUB_USERNAME }}
47
+ password: ${{ secrets.DOCKER_HUB_ACCESS_TOKEN }}
48
+
49
+ - name: Extract Docker metadata
50
+ id: meta
51
+ uses: docker/metadata-action@v6
52
+ with:
53
+ images: underpost/cyberia-server
54
+ tags: |
55
+ type=raw,value=v${{ env.UNDERPOST_VERSION }}
56
+ type=ref,event=branch
57
+ type=sha,prefix=sha-
58
+
59
+ - name: Build and push image
60
+ uses: docker/build-push-action@v7
61
+ with:
62
+ context: .
63
+ file: ./Dockerfile
64
+ push: true
65
+ tags: ${{ steps.meta.outputs.tags }}
66
+ labels: ${{ steps.meta.outputs.labels }}
67
+
68
+ build-args: |
69
+ UNDERPOST_VERSION=${{ env.UNDERPOST_VERSION }}
@@ -0,0 +1,69 @@
1
+ name: CI | Docker Image cyberia-server (dev)
2
+
3
+ on:
4
+ workflow_dispatch:
5
+
6
+ env:
7
+ UNDERPOST_VERSION: '3.2.70'
8
+
9
+ jobs:
10
+ build-and-push:
11
+ runs-on: ubuntu-latest
12
+ permissions:
13
+ contents: read
14
+ packages: write
15
+
16
+ steps:
17
+ - uses: actions/checkout@v7
18
+
19
+ - name: Checkout engine
20
+ uses: actions/checkout@v7
21
+ with:
22
+ repository: underpostnet/engine
23
+ path: engine
24
+
25
+ - name: Setup Node.js
26
+ uses: actions/setup-node@v6
27
+ with:
28
+ node-version: '24.x'
29
+
30
+ - name: Install engine dependencies
31
+ working-directory: engine
32
+ run: npm ci --ignore-scripts
33
+
34
+ - name: Build cyberia-server SSR dashboard (dev)
35
+ working-directory: engine
36
+ run: |
37
+ node bin/deploy cyberia
38
+ node bin/cyberia run-workflow build-server-dashboard --dev --output-path ../public/index.html
39
+
40
+ - name: Set up Docker Buildx
41
+ uses: docker/setup-buildx-action@v4
42
+
43
+ - name: Login to Docker Hub
44
+ uses: docker/login-action@v4
45
+ with:
46
+ username: ${{ secrets.DOCKER_HUB_USERNAME }}
47
+ password: ${{ secrets.DOCKER_HUB_ACCESS_TOKEN }}
48
+
49
+ - name: Extract Docker metadata
50
+ id: meta
51
+ uses: docker/metadata-action@v6
52
+ with:
53
+ images: underpost/cyberia-server-dev
54
+ tags: |
55
+ type=raw,value=v${{ env.UNDERPOST_VERSION }}
56
+ type=ref,event=branch
57
+ type=sha,prefix=sha-
58
+
59
+ - name: Build and push image
60
+ uses: docker/build-push-action@v7
61
+ with:
62
+ context: .
63
+ file: ./Dockerfile.dev
64
+ push: true
65
+ tags: ${{ steps.meta.outputs.tags }}
66
+ labels: ${{ steps.meta.outputs.labels }}
67
+
68
+ build-args: |
69
+ UNDERPOST_VERSION=${{ env.UNDERPOST_VERSION }}
@@ -0,0 +1,52 @@
1
+ name: CI | Docker Image engine-cyberia
2
+
3
+ on:
4
+ workflow_dispatch:
5
+
6
+ env:
7
+ UNDERPOST_VERSION: '3.2.70'
8
+
9
+ jobs:
10
+ build-and-push:
11
+ runs-on: ubuntu-latest
12
+ permissions:
13
+ contents: read
14
+ packages: write
15
+
16
+ steps:
17
+ - uses: actions/checkout@v7
18
+
19
+ - name: Set up Docker Buildx
20
+ uses: docker/setup-buildx-action@v4
21
+
22
+ - name: Login to Docker Hub
23
+ uses: docker/login-action@v4
24
+ with:
25
+ username: ${{ secrets.DOCKER_HUB_USERNAME }}
26
+ password: ${{ secrets.DOCKER_HUB_ACCESS_TOKEN }}
27
+
28
+ - name: Extract Docker metadata
29
+ id: meta
30
+ uses: docker/metadata-action@v6
31
+ with:
32
+ images: underpost/engine-cyberia
33
+ tags: |
34
+ type=raw,value=v${{ env.UNDERPOST_VERSION }}
35
+ type=ref,event=branch
36
+ type=sha,prefix=sha-
37
+
38
+ - name: Build and push image
39
+ uses: docker/build-push-action@v7
40
+ with:
41
+ context: .
42
+ file: ./src/runtime/engine-cyberia/Dockerfile
43
+ push: true
44
+ tags: ${{ steps.meta.outputs.tags }}
45
+ labels: ${{ steps.meta.outputs.labels }}
46
+
47
+ build-args: |
48
+ UNDERPOST_VERSION=${{ env.UNDERPOST_VERSION }}
49
+
50
+ secrets: |
51
+ github_token=${{ secrets.GITHUB_TOKEN }}
52
+ github_username=${{ github.actor }}
@@ -0,0 +1,52 @@
1
+ name: CI | Docker Image engine-cyberia (dev)
2
+
3
+ on:
4
+ workflow_dispatch:
5
+
6
+ env:
7
+ UNDERPOST_VERSION: '3.2.70'
8
+
9
+ jobs:
10
+ build-and-push:
11
+ runs-on: ubuntu-latest
12
+ permissions:
13
+ contents: read
14
+ packages: write
15
+
16
+ steps:
17
+ - uses: actions/checkout@v7
18
+
19
+ - name: Set up Docker Buildx
20
+ uses: docker/setup-buildx-action@v4
21
+
22
+ - name: Login to Docker Hub
23
+ uses: docker/login-action@v4
24
+ with:
25
+ username: ${{ secrets.DOCKER_HUB_USERNAME }}
26
+ password: ${{ secrets.DOCKER_HUB_ACCESS_TOKEN }}
27
+
28
+ - name: Extract Docker metadata
29
+ id: meta
30
+ uses: docker/metadata-action@v6
31
+ with:
32
+ images: underpost/engine-cyberia-dev
33
+ tags: |
34
+ type=raw,value=v${{ env.UNDERPOST_VERSION }}
35
+ type=ref,event=branch
36
+ type=sha,prefix=sha-
37
+
38
+ - name: Build and push image
39
+ uses: docker/build-push-action@v7
40
+ with:
41
+ context: .
42
+ file: ./src/runtime/engine-cyberia/Dockerfile.dev
43
+ push: true
44
+ tags: ${{ steps.meta.outputs.tags }}
45
+ labels: ${{ steps.meta.outputs.labels }}
46
+
47
+ build-args: |
48
+ UNDERPOST_VERSION=${{ env.UNDERPOST_VERSION }}
49
+
50
+ secrets: |
51
+ github_token=${{ secrets.GITHUB_TOKEN }}
52
+ github_username=${{ github.actor }}