cyberia 3.2.5 → 3.2.12
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.github/workflows/engine-cyberia.cd.yml +8 -2
- package/.github/workflows/npmpkg.ci.yml +1 -0
- package/.github/workflows/pwa-microservices-template-test.ci.yml +1 -1
- package/.github/workflows/release.cd.yml +2 -2
- package/.vscode/extensions.json +9 -9
- package/.vscode/settings.json +20 -4
- package/CHANGELOG.md +563 -1
- package/CLI-HELP.md +130 -34
- package/Dockerfile +0 -4
- package/README.md +194 -607
- package/bin/build.js +42 -12
- package/bin/build.template.js +187 -0
- package/bin/cyberia.js +1367 -281
- package/bin/deploy.js +582 -3
- package/bin/index.js +1367 -281
- package/bump.config.js +26 -0
- package/conf.js +195 -111
- package/deployment.yaml +6 -222
- package/hardhat/package-lock.json +118 -149
- package/hardhat/package.json +5 -4
- package/jsconfig.json +1 -1
- package/manifests/cronjobs/dd-cron/dd-cron-backup.yaml +2 -2
- package/manifests/cronjobs/dd-cron/dd-cron-dns.yaml +2 -2
- package/manifests/deployment/dd-cyberia-development/deployment.yaml +6 -222
- package/manifests/deployment/dd-cyberia-development/proxy.yaml +10 -118
- package/manifests/deployment/dd-default-development/deployment.yaml +2 -6
- package/manifests/deployment/dd-test-development/deployment.yaml +138 -66
- package/manifests/deployment/dd-test-development/proxy.yaml +41 -5
- package/manifests/kind-config-dev.yaml +8 -0
- package/manifests/lxd/lxd-admin-profile.yaml +12 -3
- package/manifests/mongodb/pv-pvc.yaml +44 -8
- package/manifests/mongodb/statefulset.yaml +55 -68
- package/manifests/mongodb-4.4/headless-service.yaml +10 -0
- package/manifests/mongodb-4.4/kustomization.yaml +3 -1
- package/manifests/mongodb-4.4/mongodb-nodeport.yaml +17 -0
- package/manifests/mongodb-4.4/pv-pvc.yaml +10 -14
- package/manifests/mongodb-4.4/statefulset.yaml +79 -0
- package/manifests/mongodb-4.4/storage-class.yaml +9 -0
- package/manifests/valkey/statefulset.yaml +1 -1
- package/manifests/valkey/valkey-nodeport.yaml +17 -0
- package/package.json +45 -24
- package/proxy.yaml +10 -118
- package/scripts/ipxe-setup.sh +52 -49
- package/scripts/k3s-node-setup.sh +83 -48
- package/scripts/lxd-vm-setup.sh +193 -8
- package/scripts/maas-nat-firewalld.sh +145 -0
- package/scripts/nat-iptables.sh +103 -18
- package/src/api/atlas-sprite-sheet/atlas-sprite-sheet.controller.js +18 -18
- package/src/api/atlas-sprite-sheet/atlas-sprite-sheet.model.js +7 -14
- package/src/api/atlas-sprite-sheet/atlas-sprite-sheet.router.js +38 -33
- package/src/api/atlas-sprite-sheet/atlas-sprite-sheet.service.js +91 -36
- package/src/api/core/core.controller.js +10 -10
- package/src/api/core/core.router.js +19 -14
- package/src/api/core/core.service.js +15 -15
- package/src/api/crypto/crypto.controller.js +8 -8
- package/src/api/crypto/crypto.router.js +18 -12
- package/src/api/crypto/crypto.service.js +11 -11
- package/src/api/cyberia-action/cyberia-action.controller.js +74 -0
- package/src/api/cyberia-action/cyberia-action.model.js +87 -0
- package/src/api/cyberia-action/cyberia-action.router.js +31 -0
- package/src/api/cyberia-action/cyberia-action.service.js +42 -0
- package/src/api/cyberia-client-hints/cyberia-client-hints.controller.js +74 -0
- package/src/api/cyberia-client-hints/cyberia-client-hints.model.js +99 -0
- package/src/api/cyberia-client-hints/cyberia-client-hints.router.js +98 -0
- package/src/api/cyberia-client-hints/cyberia-client-hints.service.js +152 -0
- package/src/api/cyberia-dialogue/cyberia-dialogue.controller.js +13 -13
- package/src/api/cyberia-dialogue/cyberia-dialogue.model.js +11 -11
- package/src/api/cyberia-dialogue/cyberia-dialogue.router.js +25 -20
- package/src/api/cyberia-dialogue/cyberia-dialogue.service.js +22 -22
- package/src/api/cyberia-entity/cyberia-entity.controller.js +10 -10
- package/src/api/cyberia-entity/cyberia-entity.router.js +22 -18
- package/src/api/cyberia-entity/cyberia-entity.service.js +15 -15
- package/src/api/cyberia-instance/cyberia-fallback-world.js +83 -198
- package/src/api/cyberia-instance/cyberia-instance.controller.js +14 -14
- package/src/api/cyberia-instance/cyberia-instance.model.js +3 -0
- package/src/api/cyberia-instance/cyberia-instance.router.js +57 -52
- package/src/api/cyberia-instance/cyberia-instance.service.js +32 -67
- package/src/api/cyberia-instance/cyberia-portal-connector.js +20 -246
- package/src/api/cyberia-instance/cyberia-world-generator.js +505 -0
- package/src/api/cyberia-instance-conf/cyberia-instance-conf.controller.js +10 -10
- package/src/api/cyberia-instance-conf/cyberia-instance-conf.model.js +18 -49
- package/src/api/cyberia-instance-conf/cyberia-instance-conf.router.js +22 -18
- package/src/api/cyberia-instance-conf/cyberia-instance-conf.service.js +19 -15
- package/src/api/cyberia-map/cyberia-map.controller.js +10 -10
- package/src/api/cyberia-map/cyberia-map.router.js +35 -30
- package/src/api/cyberia-map/cyberia-map.service.js +17 -17
- package/src/api/cyberia-quest/cyberia-quest.controller.js +74 -0
- package/src/api/cyberia-quest/cyberia-quest.model.js +67 -0
- package/src/api/cyberia-quest/cyberia-quest.router.js +31 -0
- package/src/api/cyberia-quest/cyberia-quest.service.js +42 -0
- package/src/api/cyberia-quest-progress/cyberia-quest-progress.controller.js +74 -0
- package/src/api/cyberia-quest-progress/cyberia-quest-progress.model.js +49 -0
- package/src/api/cyberia-quest-progress/cyberia-quest-progress.router.js +31 -0
- package/src/api/cyberia-quest-progress/cyberia-quest-progress.service.js +42 -0
- package/src/api/cyberia-server-defaults/cyberia-server-defaults.js +451 -0
- package/src/api/default/default.controller.js +10 -10
- package/src/api/default/default.router.js +22 -18
- package/src/api/default/default.service.js +15 -15
- package/src/api/document/document.controller.js +12 -12
- package/src/api/document/document.model.js +10 -16
- package/src/api/document/document.router.js +28 -23
- package/src/api/document/document.service.js +100 -23
- package/src/api/file/file.controller.js +8 -8
- package/src/api/file/file.model.js +10 -10
- package/src/api/file/file.router.js +19 -13
- package/src/api/file/file.service.js +45 -43
- package/src/api/instance/instance.controller.js +10 -10
- package/src/api/instance/instance.model.js +4 -10
- package/src/api/instance/instance.router.js +29 -24
- package/src/api/instance/instance.service.js +16 -16
- package/src/api/ipfs/ipfs.controller.js +12 -12
- package/src/api/ipfs/ipfs.model.js +4 -13
- package/src/api/ipfs/ipfs.router.js +21 -16
- package/src/api/ipfs/ipfs.service.js +22 -36
- package/src/api/object-layer/object-layer.controller.js +12 -12
- package/src/api/object-layer/object-layer.model.js +4 -17
- package/src/api/object-layer/object-layer.router.js +512 -507
- package/src/api/object-layer/object-layer.service.js +29 -26
- package/src/api/object-layer-render-frames/object-layer-render-frames.controller.js +10 -10
- package/src/api/object-layer-render-frames/object-layer-render-frames.model.js +6 -16
- package/src/api/object-layer-render-frames/object-layer-render-frames.router.js +22 -18
- package/src/api/object-layer-render-frames/object-layer-render-frames.service.js +19 -15
- package/src/api/test/test.controller.js +8 -8
- package/src/api/test/test.router.js +17 -12
- package/src/api/test/test.service.js +8 -8
- package/src/api/types.js +24 -0
- package/src/api/user/guest.service.js +100 -0
- package/src/api/user/user.controller.js +6 -6
- package/src/api/user/user.model.js +8 -13
- package/src/api/user/user.router.js +297 -288
- package/src/api/user/user.service.js +103 -55
- package/src/cli/baremetal.js +132 -101
- package/src/cli/cluster.js +732 -217
- package/src/cli/db.js +106 -62
- package/src/cli/deploy.js +260 -149
- package/src/cli/fs.js +90 -9
- package/src/cli/image.js +43 -1
- package/src/cli/index.js +106 -16
- package/src/cli/ipfs.js +4 -6
- package/src/cli/kubectl.js +4 -1
- package/src/cli/lxd.js +1099 -223
- package/src/cli/monitor.js +9 -3
- package/src/cli/release.js +336 -86
- package/src/cli/repository.js +136 -53
- package/src/cli/run.js +599 -76
- package/src/cli/secrets.js +11 -2
- package/src/cli/ssh.js +1 -1
- package/src/cli/static.js +43 -115
- package/src/cli/test.js +9 -3
- package/src/client/Cryptokoyn.index.js +18 -21
- package/src/client/CyberiaPortal.index.js +19 -23
- package/src/client/Default.index.js +30 -36
- package/src/client/Itemledger.index.js +20 -26
- package/src/client/Underpost.index.js +19 -23
- package/src/client/components/core/404.js +4 -4
- package/src/client/components/core/500.js +4 -4
- package/src/client/components/core/Account.js +73 -60
- package/src/client/components/core/AgGrid.js +23 -33
- package/src/client/components/core/Alert.js +12 -13
- package/src/client/components/core/AppStore.js +1 -1
- package/src/client/components/core/Auth.js +40 -37
- package/src/client/components/core/Badge.js +7 -13
- package/src/client/components/core/BtnIcon.js +15 -17
- package/src/client/components/core/CalendarCore.js +42 -63
- package/src/client/components/core/Chat.js +13 -15
- package/src/client/components/core/ClientEvents.js +163 -0
- package/src/client/components/core/ColorPaletteElement.js +309 -0
- package/src/client/components/core/Content.js +17 -14
- package/src/client/components/core/Css.js +15 -71
- package/src/client/components/core/CssCore.js +12 -16
- package/src/client/components/core/D3Chart.js +4 -4
- package/src/client/components/core/Docs.js +64 -91
- package/src/client/components/core/DropDown.js +69 -91
- package/src/client/components/core/EventBus.js +96 -0
- package/src/client/components/core/EventsUI.js +14 -17
- package/src/client/components/core/FileExplorer.js +96 -228
- package/src/client/components/core/FullScreen.js +47 -75
- package/src/client/components/core/Input.js +24 -69
- package/src/client/components/core/Keyboard.js +25 -18
- package/src/client/components/core/KeyboardAvoidance.js +145 -0
- package/src/client/components/core/LoadingAnimation.js +25 -31
- package/src/client/components/core/LogIn.js +41 -41
- package/src/client/components/core/LogOut.js +23 -14
- package/src/client/components/core/Modal.js +544 -219
- package/src/client/components/core/NotificationManager.js +14 -18
- package/src/client/components/core/Panel.js +54 -50
- package/src/client/components/core/PanelForm.js +81 -177
- package/src/client/components/core/Polyhedron.js +110 -214
- package/src/client/components/core/PublicProfile.js +39 -32
- package/src/client/components/core/Recover.js +48 -44
- package/src/client/components/core/Responsive.js +88 -32
- package/src/client/components/core/RichText.js +9 -18
- package/src/client/components/core/Router.js +24 -3
- package/src/client/components/core/SearchBox.js +37 -37
- package/src/client/components/core/SignUp.js +39 -30
- package/src/client/components/core/SocketIo.js +31 -2
- package/src/client/components/core/SocketIoHandler.js +6 -6
- package/src/client/components/core/ToggleSwitch.js +8 -20
- package/src/client/components/core/ToolTip.js +5 -17
- package/src/client/components/core/Translate.js +56 -59
- package/src/client/components/core/Validator.js +26 -16
- package/src/client/components/core/Wallet.js +15 -26
- package/src/client/components/core/Worker.js +211 -276
- package/src/client/components/core/windowGetDimensions.js +7 -7
- package/src/client/components/cryptokoyn/{MenuCryptokoyn.js → AppShellCryptokoyn.js} +57 -57
- package/src/client/components/cryptokoyn/CssCryptokoyn.js +15 -15
- package/src/client/components/cryptokoyn/LogInCryptokoyn.js +6 -4
- package/src/client/components/cryptokoyn/LogOutCryptokoyn.js +6 -4
- package/src/client/components/cryptokoyn/RouterCryptokoyn.js +37 -0
- package/src/client/components/cryptokoyn/SettingsCryptokoyn.js +4 -4
- package/src/client/components/cryptokoyn/SignUpCryptokoyn.js +6 -4
- package/src/client/components/cyberia/InstanceEngineCyberia.js +141 -60
- package/src/client/components/cyberia/MapEngineCyberia.js +691 -214
- package/src/client/components/cyberia/ObjectLayerEngine.js +19 -0
- package/src/client/components/cyberia/ObjectLayerEngineModal.js +1204 -94
- package/src/client/components/cyberia/ObjectLayerEngineViewer.js +196 -298
- package/src/client/components/cyberia/SharedDefaultsCyberia.js +330 -0
- package/src/client/components/cyberia-portal/{MenuCyberiaPortal.js → AppShellCyberiaPortal.js} +102 -102
- package/src/client/components/cyberia-portal/CssCyberiaPortal.js +15 -15
- package/src/client/components/cyberia-portal/LogInCyberiaPortal.js +6 -4
- package/src/client/components/cyberia-portal/LogOutCyberiaPortal.js +6 -4
- package/src/client/components/cyberia-portal/MainBodyCyberiaPortal.js +4 -4
- package/src/client/components/cyberia-portal/RouterCyberiaPortal.js +60 -0
- package/src/client/components/cyberia-portal/SettingsCyberiaPortal.js +4 -4
- package/src/client/components/cyberia-portal/SignUpCyberiaPortal.js +6 -4
- package/src/client/components/cyberia-portal/TranslateCyberiaPortal.js +4 -4
- package/src/client/components/default/{MenuDefault.js → AppShellDefault.js} +87 -87
- package/src/client/components/default/CssDefault.js +12 -12
- package/src/client/components/default/LogInDefault.js +6 -4
- package/src/client/components/default/LogOutDefault.js +6 -4
- package/src/client/components/default/RouterDefault.js +47 -0
- package/src/client/components/default/SettingsDefault.js +4 -4
- package/src/client/components/default/SignUpDefault.js +6 -4
- package/src/client/components/default/TranslateDefault.js +3 -3
- package/src/client/components/itemledger/{MenuItemledger.js → AppShellItemledger.js} +57 -57
- package/src/client/components/itemledger/CssItemledger.js +15 -15
- package/src/client/components/itemledger/LogInItemledger.js +6 -4
- package/src/client/components/itemledger/LogOutItemledger.js +6 -4
- package/src/client/components/itemledger/RouterItemledger.js +38 -0
- package/src/client/components/itemledger/SettingsItemledger.js +4 -4
- package/src/client/components/itemledger/SignUpItemledger.js +6 -4
- package/src/client/components/itemledger/TranslateItemledger.js +3 -3
- package/src/client/components/underpost/{MenuUnderpost.js → AppShellUnderpost.js} +88 -88
- package/src/client/components/underpost/CssUnderpost.js +14 -14
- package/src/client/components/underpost/CyberpunkBloggerUnderpost.js +4 -4
- package/src/client/components/underpost/DocumentSearchProvider.js +1 -1
- package/src/client/components/underpost/LabGalleryUnderpost.js +12 -15
- package/src/client/components/underpost/LogInUnderpost.js +6 -4
- package/src/client/components/underpost/LogOutUnderpost.js +6 -4
- package/src/client/components/underpost/RouterUnderpost.js +45 -0
- package/src/client/components/underpost/SettingsUnderpost.js +4 -4
- package/src/client/components/underpost/SignUpUnderpost.js +6 -4
- package/src/client/components/underpost/TranslateUnderpost.js +4 -4
- package/src/client/public/cyberia-docs/ACTION-SYSTEM.md +235 -0
- package/src/client/public/cyberia-docs/ARCHITECTURE.md +83 -0
- package/src/client/public/cyberia-docs/CYBERIA-CLI.md +204 -0
- package/src/client/public/cyberia-docs/CYBERIA-CLIENT.md +291 -0
- package/src/client/public/cyberia-docs/CYBERIA-SERVER.md +278 -0
- package/src/client/public/cyberia-docs/CYBERIA.md +259 -0
- package/src/client/public/cyberia-docs/ENTITY-PROFILE.md +241 -0
- package/src/client/public/cyberia-docs/HARDHAT-MODULE.md +300 -0
- package/src/client/public/cyberia-docs/OFF-CHAIN-ECONOMY.md +279 -0
- package/src/client/public/cyberia-docs/QUEST-SYSTEM.md +206 -0
- package/src/client/public/cyberia-docs/ROADMAP.md +240 -0
- package/src/client/public/cyberia-docs/UNDERPOST-PLATFORM.md +106 -0
- package/src/client/public/cyberia-docs/WHITE-PAPER.md +732 -0
- package/src/client/services/atlas-sprite-sheet/atlas-sprite-sheet.service.js +14 -20
- package/src/client/services/core/core.service.js +17 -49
- package/src/client/services/crypto/crypto.service.js +8 -13
- package/src/client/services/cyberia-action/cyberia-action.service.js +99 -0
- package/src/client/services/cyberia-client-hints/cyberia-client-hints.service.js +99 -0
- package/src/client/services/cyberia-dialogue/cyberia-dialogue.service.js +10 -16
- package/src/client/services/cyberia-entity/cyberia-entity.management.js +5 -5
- package/src/client/services/cyberia-entity/cyberia-entity.service.js +10 -16
- package/src/client/services/cyberia-instance/cyberia-instance.management.js +6 -6
- package/src/client/services/cyberia-instance/cyberia-instance.service.js +12 -18
- package/src/client/services/cyberia-instance-conf/cyberia-instance-conf.service.js +10 -16
- package/src/client/services/cyberia-map/cyberia-map.management.js +6 -6
- package/src/client/services/cyberia-map/cyberia-map.service.js +12 -18
- package/src/client/services/cyberia-quest/cyberia-quest.service.js +99 -0
- package/src/client/services/cyberia-quest-progress/cyberia-quest-progress.service.js +99 -0
- package/src/client/services/default/default.management.js +159 -267
- package/src/client/services/default/default.service.js +10 -16
- package/src/client/services/document/document.service.js +14 -19
- package/src/client/services/file/file.service.js +8 -13
- package/src/client/services/instance/instance.management.js +5 -5
- package/src/client/services/instance/instance.service.js +10 -15
- package/src/client/services/ipfs/ipfs.service.js +12 -18
- package/src/client/services/object-layer/object-layer.management.js +12 -12
- package/src/client/services/object-layer/object-layer.service.js +20 -26
- package/src/client/services/object-layer-render-frames/object-layer-render-frames.service.js +10 -16
- package/src/client/services/test/test.service.js +8 -13
- package/src/client/services/user/guest.service.js +86 -0
- package/src/client/services/user/user.management.js +5 -5
- package/src/client/services/user/user.service.js +14 -20
- package/src/client/ssr/body/404.js +3 -3
- package/src/client/ssr/body/500.js +3 -3
- package/src/client/ssr/body/CacheControl.js +5 -2
- package/src/client/ssr/body/DefaultSplashScreen.js +19 -12
- package/src/client/ssr/body/UnderpostDefaultSplashScreen.js +13 -6
- package/src/client/ssr/head/PwaItemledger.js +197 -60
- package/src/client/ssr/mailer/DefaultRecoverEmail.js +19 -20
- package/src/client/ssr/mailer/DefaultVerifyEmail.js +15 -16
- package/src/client/ssr/views/CyberiaServerMetrics.js +982 -0
- package/src/client/ssr/{offline → views}/Maintenance.js +12 -11
- package/src/client/ssr/{offline → views}/NoNetworkConnection.js +3 -3
- package/src/client/ssr/{pages → views}/Test.js +2 -2
- package/src/client/sw/core.sw.js +274 -0
- package/src/db/DataBaseProvider.js +115 -15
- package/src/db/mariadb/MariaDB.js +2 -1
- package/src/db/mongo/MongoBootstrap.js +657 -0
- package/src/db/mongo/MongooseDB.js +129 -21
- package/src/grpc/cyberia/grpc-server.js +185 -105
- package/src/index.js +1 -1
- package/src/runtime/cyberia-client/Dockerfile +101 -0
- package/src/runtime/cyberia-client/Dockerfile.dev +82 -0
- package/src/runtime/cyberia-server/Dockerfile +62 -0
- package/src/runtime/cyberia-server/Dockerfile.dev +71 -0
- package/src/runtime/express/Dockerfile +4 -4
- package/src/runtime/express/Express.js +2 -2
- package/src/runtime/lampp/Dockerfile +8 -7
- package/src/runtime/wp/Dockerfile +11 -17
- package/src/runtime/wp/Wp.js +8 -5
- package/src/server/atlas-sprite-sheet-generator.js +4 -2
- package/src/server/auth.js +2 -2
- package/src/server/client-build-docs.js +46 -47
- package/src/server/client-build.js +371 -132
- package/src/server/client-formatted.js +47 -16
- package/src/server/conf.js +91 -87
- package/src/server/data-query.js +32 -20
- package/src/server/dns.js +22 -0
- package/src/server/ipfs-client.js +232 -91
- package/src/server/object-layer.js +1 -6
- package/src/server/process.js +192 -45
- package/src/server/proxy.js +9 -2
- package/src/server/runtime.js +1 -1
- package/src/server/semantic-layer-generator-floor.js +11 -51
- package/src/server/semantic-layer-generator-resource.js +259 -0
- package/src/server/semantic-layer-generator-skin.js +41 -171
- package/src/server/semantic-layer-generator.js +122 -14
- package/src/server/shape-generator.js +108 -0
- package/src/server/start.js +34 -8
- package/src/server/valkey.js +143 -235
- package/src/ws/IoInterface.js +16 -16
- package/src/ws/core/channels/core.ws.chat.js +11 -11
- package/src/ws/core/channels/core.ws.mailer.js +29 -29
- package/src/ws/core/channels/core.ws.stream.js +19 -19
- package/src/ws/core/core.ws.connection.js +8 -8
- package/src/ws/core/core.ws.server.js +6 -5
- package/src/ws/default/channels/default.ws.main.js +10 -10
- package/src/ws/default/default.ws.connection.js +4 -4
- package/src/ws/default/default.ws.server.js +4 -3
- package/tsconfig.docs.json +15 -0
- package/typedoc.dd-cyberia.json +29 -0
- package/typedoc.json +29 -0
- package/WHITE-PAPER.md +0 -1540
- package/bin/file.js +0 -196
- package/bin/vs.js +0 -74
- package/bin/zed.js +0 -84
- package/hardhat/README.md +0 -531
- package/hardhat/WHITE-PAPER.md +0 -1540
- package/jsdoc.dd-cyberia.json +0 -68
- package/jsdoc.json +0 -68
- package/src/api/cyberia-instance-conf/cyberia-instance-conf.defaults.js +0 -413
- package/src/api/object-layer/README.md +0 -672
- package/src/client/components/core/ColorPalette.js +0 -5267
- package/src/client/components/core/JoyStick.js +0 -80
- package/src/client/components/cryptokoyn/RoutesCryptokoyn.js +0 -39
- package/src/client/components/cyberia-portal/CommonCyberiaPortal.js +0 -223
- package/src/client/components/cyberia-portal/RoutesCyberiaPortal.js +0 -62
- package/src/client/components/cyberia-portal/ServerCyberiaPortal.js +0 -136
- package/src/client/components/default/RoutesDefault.js +0 -49
- package/src/client/components/itemledger/RoutesItemledger.js +0 -40
- package/src/client/components/underpost/RoutesUnderpost.js +0 -47
- package/src/client/ssr/email/DefaultRecoverEmail.js +0 -21
- package/src/client/ssr/email/DefaultVerifyEmail.js +0 -17
- package/src/client/ssr/pages/CyberiaServerMetrics.js +0 -461
- package/src/client/sw/default.sw.js +0 -127
- package/src/client/sw/template.sw.js +0 -84
- package/src/grpc/cyberia/OFF_CHAIN_ECONOMY.md +0 -305
- package/src/grpc/cyberia/README.md +0 -326
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
# BUILD_MODE: RELEASE | DEBUG
|
|
2
|
+
ARG BUILD_MODE=RELEASE
|
|
3
|
+
|
|
4
|
+
# --- Build Image
|
|
5
|
+
FROM rockylinux/rockylinux:9 AS builder
|
|
6
|
+
# Re-declare ARG after FROM so it is in scope for RUN
|
|
7
|
+
ARG BUILD_MODE=RELEASE
|
|
8
|
+
|
|
9
|
+
RUN dnf -y update && \
|
|
10
|
+
dnf -y install epel-release && \
|
|
11
|
+
dnf -y install --allowerasing \
|
|
12
|
+
git \
|
|
13
|
+
curl \
|
|
14
|
+
wget \
|
|
15
|
+
openssl-devel \
|
|
16
|
+
libnsl \
|
|
17
|
+
perl \
|
|
18
|
+
gnupg2 \
|
|
19
|
+
bzip2 && \
|
|
20
|
+
dnf clean all
|
|
21
|
+
|
|
22
|
+
# System packages (raylib gfx + build dependencies)
|
|
23
|
+
RUN dnf groupinstall -y "Development Tools" && \
|
|
24
|
+
dnf install -y \
|
|
25
|
+
cmake \
|
|
26
|
+
unzip \
|
|
27
|
+
python3 \
|
|
28
|
+
python3.11 \
|
|
29
|
+
alsa-lib-devel \
|
|
30
|
+
mesa-libGL-devel \
|
|
31
|
+
mesa-libGLU-devel \
|
|
32
|
+
libX11-devel \
|
|
33
|
+
libXrandr-devel \
|
|
34
|
+
libXi-devel \
|
|
35
|
+
libXcursor-devel \
|
|
36
|
+
libXinerama-devel \
|
|
37
|
+
libXfixes-devel \
|
|
38
|
+
freeglut-devel \
|
|
39
|
+
glfw-devel \
|
|
40
|
+
libatomic.x86_64 && \
|
|
41
|
+
dnf clean all && \
|
|
42
|
+
alternatives --install /usr/bin/python3 python3 /usr/bin/python3.11 2 && \
|
|
43
|
+
alternatives --set python3 /usr/bin/python3.11
|
|
44
|
+
ENV EMSDK=/opt/emsdk
|
|
45
|
+
ENV PATH="${EMSDK}:${EMSDK}/upstream/emscripten:${PATH}"
|
|
46
|
+
|
|
47
|
+
# Pin emsdk version for reproducible builds
|
|
48
|
+
ARG EMSDK_VERSION=5.0.6
|
|
49
|
+
WORKDIR /opt
|
|
50
|
+
RUN git clone https://github.com/emscripten-core/emsdk.git ${EMSDK}
|
|
51
|
+
WORKDIR ${EMSDK}
|
|
52
|
+
RUN ./emsdk install ${EMSDK_VERSION} && \
|
|
53
|
+
./emsdk activate ${EMSDK_VERSION}
|
|
54
|
+
|
|
55
|
+
WORKDIR /cyberia-client
|
|
56
|
+
# Build context is the cyberia-client project repo root (the workflow
|
|
57
|
+
# in .github/workflows/docker-image.cyberia-client.ci.yml sets
|
|
58
|
+
# context: . from the cyberia-client checkout). The legacy
|
|
59
|
+
# engine-context layout (COPY cyberia-client/ .) is no longer used.
|
|
60
|
+
COPY . .
|
|
61
|
+
|
|
62
|
+
# `make clean` first so stale bin/ or build/ artefacts copied in from a
|
|
63
|
+
# developer's local checkout (or a previous Docker layer cache hit)
|
|
64
|
+
# can't shadow a fresh BUILD_MODE rebuild — e.g. mixing a DEBUG-mode
|
|
65
|
+
# index.wasm with a RELEASE-mode index.js once produced the
|
|
66
|
+
# "corrupted heap memory area" panic that masked the real Closure bug.
|
|
67
|
+
RUN make -f Web.mk clean && make -f Web.mk all BUILD_MODE=${BUILD_MODE} OUTPUT_DIR=bin/
|
|
68
|
+
|
|
69
|
+
# --- Runtime Image
|
|
70
|
+
FROM rockylinux/rockylinux:9 AS runtime
|
|
71
|
+
|
|
72
|
+
# Runtime needs:
|
|
73
|
+
# - python3 (serves the built /bin/ static files via server.py)
|
|
74
|
+
# - nodejs + the underpost CLI globally, for the container-status
|
|
75
|
+
# lifecycle hooks invoked from conf.instances.json before / after
|
|
76
|
+
# launching server.py. Installing it at build time avoids the slow
|
|
77
|
+
# `npm install -g` startup the K8S cmd would otherwise repeat.
|
|
78
|
+
ARG UNDERPOST_VERSION=3.2.9
|
|
79
|
+
RUN dnf -y update && \
|
|
80
|
+
dnf -y install epel-release && \
|
|
81
|
+
dnf -y install --allowerasing curl git python3 && \
|
|
82
|
+
curl -fsSL https://rpm.nodesource.com/setup_24.x | bash - && \
|
|
83
|
+
dnf install -y nodejs && \
|
|
84
|
+
npm install -g underpost@${UNDERPOST_VERSION} && \
|
|
85
|
+
dnf clean all && \
|
|
86
|
+
npm cache clean --force
|
|
87
|
+
|
|
88
|
+
WORKDIR /home/dd/engine/cyberia-client
|
|
89
|
+
|
|
90
|
+
COPY --from=builder /cyberia-client/server.py ./server.py
|
|
91
|
+
COPY --from=builder /cyberia-client/bin ./bin/
|
|
92
|
+
|
|
93
|
+
ENV CYBERIA_PORT=8081
|
|
94
|
+
ENV CYBERIA_MODE=production
|
|
95
|
+
|
|
96
|
+
EXPOSE 8081 8082
|
|
97
|
+
|
|
98
|
+
# Default CMD when the image is run directly (not via K8S cmd).
|
|
99
|
+
# In K8S deploys conf.instances.json supplies its own cmd that wraps
|
|
100
|
+
# container-status hooks + this same server.py invocation.
|
|
101
|
+
CMD ["sh", "-c", "exec python3 server.py ${CYBERIA_PORT} bin ${CYBERIA_MODE}"]
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
# cyberia-client DEV runtime image.
|
|
2
|
+
#
|
|
3
|
+
# Differences vs the production Dockerfile in this same directory:
|
|
4
|
+
# - Builds the C/WASM bundle with BUILD_MODE=DEBUG (raylib + emcc keep
|
|
5
|
+
# symbols, asserts, and DWARF info; the bundle is larger but
|
|
6
|
+
# debuggable in the browser devtools).
|
|
7
|
+
# - Default CYBERIA_MODE is `development` instead of `production`.
|
|
8
|
+
# - Default CYBERIA_PORT is `8082` (debug port) instead of `8081`.
|
|
9
|
+
# - Keeps `vim-minimal`, `lsof`, `strace`, `procps-ng` in the runtime
|
|
10
|
+
# image so the operator can attach and inspect a misbehaving pod.
|
|
11
|
+
# - Does NOT clean the npm cache.
|
|
12
|
+
#
|
|
13
|
+
# Selected automatically by `node bin run instance-build-manifest`
|
|
14
|
+
# whenever the `--dev` flag is set; the production Dockerfile in the
|
|
15
|
+
# same directory is used otherwise.
|
|
16
|
+
|
|
17
|
+
ARG BUILD_MODE=DEBUG
|
|
18
|
+
|
|
19
|
+
# --- Build Image
|
|
20
|
+
FROM rockylinux/rockylinux:9 AS builder
|
|
21
|
+
ARG BUILD_MODE=DEBUG
|
|
22
|
+
|
|
23
|
+
RUN dnf -y update && \
|
|
24
|
+
dnf -y install epel-release && \
|
|
25
|
+
dnf -y install --allowerasing \
|
|
26
|
+
git curl wget openssl-devel libnsl perl gnupg2 bzip2 && \
|
|
27
|
+
dnf clean all
|
|
28
|
+
|
|
29
|
+
RUN dnf groupinstall -y "Development Tools" && \
|
|
30
|
+
dnf install -y \
|
|
31
|
+
cmake unzip python3 python3.11 \
|
|
32
|
+
alsa-lib-devel mesa-libGL-devel mesa-libGLU-devel \
|
|
33
|
+
libX11-devel libXrandr-devel libXi-devel libXcursor-devel \
|
|
34
|
+
libXinerama-devel libXfixes-devel \
|
|
35
|
+
freeglut-devel glfw-devel libatomic.x86_64 && \
|
|
36
|
+
dnf clean all && \
|
|
37
|
+
alternatives --install /usr/bin/python3 python3 /usr/bin/python3.11 2 && \
|
|
38
|
+
alternatives --set python3 /usr/bin/python3.11
|
|
39
|
+
|
|
40
|
+
ENV EMSDK=/opt/emsdk
|
|
41
|
+
ENV PATH="${EMSDK}:${EMSDK}/upstream/emscripten:${PATH}"
|
|
42
|
+
|
|
43
|
+
ARG EMSDK_VERSION=5.0.6
|
|
44
|
+
WORKDIR /opt
|
|
45
|
+
RUN git clone https://github.com/emscripten-core/emsdk.git ${EMSDK}
|
|
46
|
+
WORKDIR ${EMSDK}
|
|
47
|
+
RUN ./emsdk install ${EMSDK_VERSION} && \
|
|
48
|
+
./emsdk activate ${EMSDK_VERSION}
|
|
49
|
+
|
|
50
|
+
WORKDIR /cyberia-client
|
|
51
|
+
# Build context is the cyberia-client project repo root (see the
|
|
52
|
+
# production Dockerfile in this directory for the rationale).
|
|
53
|
+
COPY . .
|
|
54
|
+
|
|
55
|
+
# Dev build: BUILD_MODE=DEBUG keeps symbols, asserts, source maps.
|
|
56
|
+
RUN make -f Web.mk all BUILD_MODE=${BUILD_MODE} OUTPUT_DIR=bin/
|
|
57
|
+
|
|
58
|
+
# --- Runtime Image
|
|
59
|
+
FROM rockylinux/rockylinux:9 AS runtime
|
|
60
|
+
|
|
61
|
+
ARG UNDERPOST_VERSION=3.2.9
|
|
62
|
+
RUN dnf -y update && \
|
|
63
|
+
dnf -y install epel-release && \
|
|
64
|
+
dnf -y install --allowerasing \
|
|
65
|
+
curl git python3 \
|
|
66
|
+
procps-ng strace lsof vim-minimal && \
|
|
67
|
+
curl -fsSL https://rpm.nodesource.com/setup_24.x | bash - && \
|
|
68
|
+
dnf install -y nodejs && \
|
|
69
|
+
npm install -g underpost@${UNDERPOST_VERSION} && \
|
|
70
|
+
dnf clean all
|
|
71
|
+
|
|
72
|
+
WORKDIR /home/dd/engine/cyberia-client
|
|
73
|
+
|
|
74
|
+
COPY --from=builder /cyberia-client/server.py ./server.py
|
|
75
|
+
COPY --from=builder /cyberia-client/bin ./bin/
|
|
76
|
+
|
|
77
|
+
ENV CYBERIA_PORT=8082
|
|
78
|
+
ENV CYBERIA_MODE=development
|
|
79
|
+
|
|
80
|
+
EXPOSE 8081 8082
|
|
81
|
+
|
|
82
|
+
CMD ["sh", "-c", "exec python3 server.py ${CYBERIA_PORT} bin ${CYBERIA_MODE}"]
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
# --- Build Image
|
|
2
|
+
FROM rockylinux/rockylinux:9 AS builder
|
|
3
|
+
|
|
4
|
+
RUN dnf -y update && \
|
|
5
|
+
dnf -y install epel-release && \
|
|
6
|
+
dnf -y install --allowerasing \
|
|
7
|
+
git \
|
|
8
|
+
make \
|
|
9
|
+
golang && \
|
|
10
|
+
dnf clean all
|
|
11
|
+
|
|
12
|
+
WORKDIR /build
|
|
13
|
+
|
|
14
|
+
# Build context is the cyberia-server project repo root (the workflow
|
|
15
|
+
# in .github/workflows/docker-image.cyberia-server.ci.yml sets
|
|
16
|
+
# context: . from the cyberia-server checkout). The legacy
|
|
17
|
+
# engine-context layout (COPY cyberia-server/ .) is no longer used.
|
|
18
|
+
COPY go.mod go.sum ./
|
|
19
|
+
RUN go mod download
|
|
20
|
+
|
|
21
|
+
COPY . ./
|
|
22
|
+
RUN chmod +x build.sh && ./build.sh
|
|
23
|
+
|
|
24
|
+
# --- Runtime Image
|
|
25
|
+
FROM rockylinux/rockylinux:9 AS runtime
|
|
26
|
+
|
|
27
|
+
# Runtime needs:
|
|
28
|
+
# - the compiled Go binary (cyberia-server itself)
|
|
29
|
+
# - nodejs + the underpost CLI globally, for the container-status
|
|
30
|
+
# lifecycle hooks (`underpost config set container-status ...`) that
|
|
31
|
+
# the conf.instances.json cmd invokes before / after launching the
|
|
32
|
+
# server binary. Installing it at build time avoids the slow
|
|
33
|
+
# `npm install -g` startup the K8S cmd would otherwise have to do
|
|
34
|
+
# on every pod boot.
|
|
35
|
+
ARG UNDERPOST_VERSION=3.2.9
|
|
36
|
+
RUN dnf -y update && \
|
|
37
|
+
dnf -y install epel-release && \
|
|
38
|
+
dnf -y install --allowerasing curl git && \
|
|
39
|
+
curl -fsSL https://rpm.nodesource.com/setup_24.x | bash - && \
|
|
40
|
+
dnf install -y nodejs && \
|
|
41
|
+
npm install -g underpost@${UNDERPOST_VERSION} && \
|
|
42
|
+
dnf clean all && \
|
|
43
|
+
npm cache clean --force
|
|
44
|
+
|
|
45
|
+
WORKDIR /home/dd/engine/cyberia-server
|
|
46
|
+
|
|
47
|
+
COPY --from=builder /build/server ./server
|
|
48
|
+
|
|
49
|
+
# Static SSR dashboard rendered by `node bin/cyberia run-workflow
|
|
50
|
+
# build-server-dashboard --output-path <project-root>/public/index.html`
|
|
51
|
+
# from inside the engine repo checkout. The Go server's findPublicDir()
|
|
52
|
+
# hard-requires public/index.html at boot and log.Fatalf's without it.
|
|
53
|
+
# CI writes the dashboard into ./public/ at the cyberia-server repo root
|
|
54
|
+
# before docker build picks it up here.
|
|
55
|
+
COPY public/ ./public/
|
|
56
|
+
|
|
57
|
+
EXPOSE 8081
|
|
58
|
+
|
|
59
|
+
# Default entrypoint when the image is run directly (not via K8S cmd).
|
|
60
|
+
# In K8S deploys conf.instances.json supplies its own cmd that wraps env
|
|
61
|
+
# sourcing + container-status hooks + this same binary.
|
|
62
|
+
ENTRYPOINT ["/home/dd/engine/cyberia-server/server"]
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
# cyberia-server DEV runtime image.
|
|
2
|
+
#
|
|
3
|
+
# Differences vs the production Dockerfile in this same directory:
|
|
4
|
+
# - Builds the Go binary WITHOUT `-trimpath -ldflags="-s -w"` so symbols
|
|
5
|
+
# and source paths survive into the binary for stack traces and pprof.
|
|
6
|
+
# - Keeps -race (CGO-free race detector is not available; we still pass
|
|
7
|
+
# `-gcflags="all=-N -l"` to disable inlining + optimisations so the
|
|
8
|
+
# dlv debugger and live profilers can attach predictably).
|
|
9
|
+
# - Keeps `git`, `procps-ng`, `strace`, `lsof`, `vim`, `curl` in the
|
|
10
|
+
# runtime image so the operator can attach and inspect a misbehaving
|
|
11
|
+
# pod without re-baking the image. Production keeps the runtime
|
|
12
|
+
# layer minimal.
|
|
13
|
+
# - Does NOT strip the npm cache after `npm install -g underpost@…` so
|
|
14
|
+
# `npm upgrade -g underpost` works in a running container.
|
|
15
|
+
#
|
|
16
|
+
# Selected automatically by `node bin run instance-build-manifest`
|
|
17
|
+
# whenever the `--dev` flag is set; the production Dockerfile in the
|
|
18
|
+
# same directory is used otherwise.
|
|
19
|
+
|
|
20
|
+
# --- Build Image
|
|
21
|
+
FROM rockylinux/rockylinux:9 AS builder
|
|
22
|
+
|
|
23
|
+
RUN dnf -y update && \
|
|
24
|
+
dnf -y install epel-release && \
|
|
25
|
+
dnf -y install --allowerasing \
|
|
26
|
+
git \
|
|
27
|
+
make \
|
|
28
|
+
golang && \
|
|
29
|
+
dnf clean all
|
|
30
|
+
|
|
31
|
+
WORKDIR /build
|
|
32
|
+
|
|
33
|
+
# Build context is the cyberia-server project repo root (see the
|
|
34
|
+
# production Dockerfile in this directory for the rationale).
|
|
35
|
+
COPY go.mod go.sum ./
|
|
36
|
+
RUN go mod download
|
|
37
|
+
|
|
38
|
+
COPY . ./
|
|
39
|
+
# Dev build: keep source paths, disable inlining + optimisations.
|
|
40
|
+
RUN CGO_ENABLED=0 GOOS=linux GOARCH=amd64 \
|
|
41
|
+
go build -gcflags="all=-N -l" -o server ./cmd/cyberia-server/ && \
|
|
42
|
+
echo "DEV build complete: $(pwd)/server"
|
|
43
|
+
|
|
44
|
+
# --- Runtime Image
|
|
45
|
+
FROM rockylinux/rockylinux:9 AS runtime
|
|
46
|
+
|
|
47
|
+
ARG UNDERPOST_VERSION=3.2.9
|
|
48
|
+
RUN dnf -y update && \
|
|
49
|
+
dnf -y install epel-release && \
|
|
50
|
+
dnf -y install --allowerasing \
|
|
51
|
+
curl git \
|
|
52
|
+
procps-ng strace lsof vim-minimal && \
|
|
53
|
+
curl -fsSL https://rpm.nodesource.com/setup_24.x | bash - && \
|
|
54
|
+
dnf install -y nodejs && \
|
|
55
|
+
npm install -g underpost@${UNDERPOST_VERSION} && \
|
|
56
|
+
dnf clean all
|
|
57
|
+
|
|
58
|
+
WORKDIR /home/dd/engine/cyberia-server
|
|
59
|
+
|
|
60
|
+
COPY --from=builder /build/server ./server
|
|
61
|
+
|
|
62
|
+
# Static SSR dashboard — required by the Go server's findPublicDir() at boot.
|
|
63
|
+
# See the production Dockerfile in this directory for the full rationale.
|
|
64
|
+
# The same `node bin/cyberia run-workflow build-server-dashboard --dev
|
|
65
|
+
# --output-path <project-root>/public/index.html` command is executed by
|
|
66
|
+
# the CI workflow before docker build.
|
|
67
|
+
COPY public/ ./public/
|
|
68
|
+
|
|
69
|
+
EXPOSE 8081
|
|
70
|
+
|
|
71
|
+
ENTRYPOINT ["/home/dd/engine/cyberia-server/server"]
|
|
@@ -30,11 +30,11 @@ RUN dnf clean all
|
|
|
30
30
|
RUN node --version
|
|
31
31
|
RUN npm --version
|
|
32
32
|
|
|
33
|
-
#
|
|
34
|
-
|
|
35
|
-
RUN
|
|
33
|
+
# Install underpost ci/cd cli
|
|
34
|
+
RUN npm install -g underpost
|
|
35
|
+
RUN underpost --version
|
|
36
36
|
|
|
37
|
-
#
|
|
37
|
+
# Create working directory
|
|
38
38
|
WORKDIR /home/dd
|
|
39
39
|
|
|
40
40
|
# Expose necessary ports
|
|
@@ -15,7 +15,7 @@ import { createServer } from 'http';
|
|
|
15
15
|
import { loggerFactory, loggerMiddleware } from '../../server/logger.js';
|
|
16
16
|
import { getCapVariableName, newInstance } from '../../client/components/core/CommonJs.js';
|
|
17
17
|
import { MailerProvider } from '../../mailer/MailerProvider.js';
|
|
18
|
-
import {
|
|
18
|
+
import { DataBaseProviderService } from '../../db/DataBaseProvider.js';
|
|
19
19
|
import { createPeerServer } from '../../server/peer.js';
|
|
20
20
|
import { createValkeyConnection } from '../../server/valkey.js';
|
|
21
21
|
import { applySecurity, authMiddlewareFactory } from '../../server/auth.js';
|
|
@@ -192,7 +192,7 @@ class ExpressService {
|
|
|
192
192
|
}
|
|
193
193
|
|
|
194
194
|
// Database and Valkey connections
|
|
195
|
-
if (db && apis) await
|
|
195
|
+
if (db && apis) await DataBaseProviderService.load({ apis, host, path, db });
|
|
196
196
|
|
|
197
197
|
if (valkey) await createValkeyConnection({ host, path }, valkey);
|
|
198
198
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
FROM rockylinux:9
|
|
2
2
|
|
|
3
|
-
#
|
|
3
|
+
# System packages
|
|
4
4
|
RUN dnf -y update && \
|
|
5
5
|
dnf -y install epel-release && \
|
|
6
6
|
dnf -y install --allowerasing \
|
|
@@ -20,13 +20,14 @@ RUN dnf -y update && \
|
|
|
20
20
|
perl && \
|
|
21
21
|
dnf clean all
|
|
22
22
|
|
|
23
|
-
|
|
23
|
+
|
|
24
|
+
# Download and install XAMPP (PHP 8.2)
|
|
24
25
|
RUN curl -L -o /tmp/xampp-linux-installer.run "https://sourceforge.net/projects/xampp/files/XAMPP%20Linux/8.2.12/xampp-linux-x64-8.2.12-0-installer.run" && \
|
|
25
26
|
chmod +x /tmp/xampp-linux-installer.run && \
|
|
26
27
|
bash -c "/tmp/xampp-linux-installer.run --mode unattended" && \
|
|
27
28
|
ln -sf /opt/lampp/lampp /usr/bin/lampp
|
|
28
29
|
|
|
29
|
-
#
|
|
30
|
+
# Create /xampp/htdocs (static root) and set permissions
|
|
30
31
|
RUN mkdir -p /opt/lampp/htdocs && \
|
|
31
32
|
chown -R root:root /opt/lampp/htdocs && \
|
|
32
33
|
chmod -R a+rX /opt/lampp/htdocs
|
|
@@ -47,11 +48,11 @@ RUN dnf clean all
|
|
|
47
48
|
RUN node --version
|
|
48
49
|
RUN npm --version
|
|
49
50
|
|
|
50
|
-
#
|
|
51
|
-
|
|
52
|
-
RUN
|
|
51
|
+
# Install underpost CLI
|
|
52
|
+
RUN npm install -g underpost
|
|
53
|
+
RUN underpost --version
|
|
53
54
|
|
|
54
|
-
#
|
|
55
|
+
# Runtime root expected by startup/build scripts.
|
|
55
56
|
WORKDIR /home/dd
|
|
56
57
|
|
|
57
58
|
EXPOSE 22
|
|
@@ -1,13 +1,12 @@
|
|
|
1
1
|
FROM rockylinux:9
|
|
2
2
|
|
|
3
|
-
#
|
|
3
|
+
# System packages
|
|
4
4
|
RUN dnf -y update && \
|
|
5
5
|
dnf -y install epel-release && \
|
|
6
6
|
dnf -y install --allowerasing \
|
|
7
7
|
bzip2 \
|
|
8
8
|
sudo \
|
|
9
9
|
curl \
|
|
10
|
-
unzip \
|
|
11
10
|
net-tools \
|
|
12
11
|
openssh-server \
|
|
13
12
|
nano \
|
|
@@ -21,13 +20,13 @@ RUN dnf -y update && \
|
|
|
21
20
|
perl && \
|
|
22
21
|
dnf clean all
|
|
23
22
|
|
|
24
|
-
#
|
|
23
|
+
# Download and install XAMPP (PHP 8.2)
|
|
25
24
|
RUN curl -L -o /tmp/xampp-linux-installer.run "https://sourceforge.net/projects/xampp/files/XAMPP%20Linux/8.2.12/xampp-linux-x64-8.2.12-0-installer.run" && \
|
|
26
25
|
chmod +x /tmp/xampp-linux-installer.run && \
|
|
27
26
|
bash -c "/tmp/xampp-linux-installer.run --mode unattended" && \
|
|
28
27
|
ln -sf /opt/lampp/lampp /usr/bin/lampp
|
|
29
28
|
|
|
30
|
-
#
|
|
29
|
+
# Create /xampp/htdocs (static root) and set permissions
|
|
31
30
|
RUN mkdir -p /opt/lampp/htdocs && \
|
|
32
31
|
chown -R root:root /opt/lampp/htdocs && \
|
|
33
32
|
chmod -R a+rX /opt/lampp/htdocs
|
|
@@ -39,25 +38,20 @@ RUN echo 'export PATH="/opt/lampp/bin:/usr/local/bin:${PATH}"' > /etc/profile.d/
|
|
|
39
38
|
# Provide a no-op sendmail so WP plugins don't error on mail calls
|
|
40
39
|
RUN printf '#!/bin/sh\ncat > /dev/null\n' > /usr/sbin/sendmail && chmod +x /usr/sbin/sendmail
|
|
41
40
|
|
|
41
|
+
# Install Node.js (includes npm)
|
|
42
|
+
RUN curl -fsSL https://rpm.nodesource.com/setup_24.x | bash - && \
|
|
43
|
+
dnf install -y nodejs && \
|
|
44
|
+
dnf clean all
|
|
45
|
+
|
|
42
46
|
# Install WP-CLI
|
|
43
47
|
RUN curl -sL https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar -o /usr/local/bin/wp && \
|
|
44
48
|
chmod +x /usr/local/bin/wp && \
|
|
45
49
|
wp --info --allow-root
|
|
46
50
|
|
|
47
|
-
# Install
|
|
48
|
-
RUN
|
|
49
|
-
RUN dnf install nodejs -y
|
|
50
|
-
RUN dnf clean all
|
|
51
|
-
|
|
52
|
-
# Verify Node.js and npm versions
|
|
53
|
-
RUN node --version
|
|
54
|
-
RUN npm --version
|
|
55
|
-
|
|
56
|
-
# Create non-root user for secure container execution (cron jobs, init containers)
|
|
57
|
-
# Deployment containers override to root via securityContext when npm install -g is needed
|
|
58
|
-
RUN useradd -m -u 1000 -s /bin/bash dd
|
|
51
|
+
# Install underpost CLI
|
|
52
|
+
RUN npm install -g underpost
|
|
59
53
|
|
|
60
|
-
#
|
|
54
|
+
# Runtime root expected by startup/build scripts.
|
|
61
55
|
WORKDIR /home/dd
|
|
62
56
|
|
|
63
57
|
EXPOSE 22
|
package/src/runtime/wp/Wp.js
CHANGED
|
@@ -56,10 +56,11 @@ class WpService {
|
|
|
56
56
|
* to `/usr/local/bin/wp` if it is not already present.
|
|
57
57
|
*/
|
|
58
58
|
static ensureWpCli() {
|
|
59
|
-
const existing = shellExec(`PATH="${LAMPP_BIN}:$PATH" which wp
|
|
59
|
+
const existing = shellExec(`PATH="${LAMPP_BIN}:$PATH" which wp`, {
|
|
60
60
|
stdout: true,
|
|
61
61
|
silent: true,
|
|
62
62
|
disableLog: true,
|
|
63
|
+
silentOnError: true,
|
|
63
64
|
});
|
|
64
65
|
if (existing && existing.trim()) return;
|
|
65
66
|
logger.info('WP-CLI not found — installing to /usr/local/bin/wp');
|
|
@@ -76,10 +77,11 @@ class WpService {
|
|
|
76
77
|
*/
|
|
77
78
|
static ensureSendmail() {
|
|
78
79
|
const sendmailPath = '/usr/sbin/sendmail';
|
|
79
|
-
const existing = shellExec(`test -x "${sendmailPath}" && echo ok
|
|
80
|
+
const existing = shellExec(`test -x "${sendmailPath}" && echo ok`, {
|
|
80
81
|
stdout: true,
|
|
81
82
|
silent: true,
|
|
82
83
|
disableLog: true,
|
|
84
|
+
silentOnError: true,
|
|
83
85
|
});
|
|
84
86
|
if (existing && existing.trim() === 'ok') return;
|
|
85
87
|
logger.info('sendmail stub missing — creating no-op at /usr/sbin/sendmail');
|
|
@@ -494,7 +496,7 @@ Thumbs.db
|
|
|
494
496
|
* `git clone` yields a fully working site without needing a fresh install.
|
|
495
497
|
*
|
|
496
498
|
* Safe to call repeatedly — `git commit` is a no-op when the working tree
|
|
497
|
-
* is clean (
|
|
499
|
+
* is clean (`silentOnError: true` swallows the non-zero exit gracefully).
|
|
498
500
|
*
|
|
499
501
|
* @param {object} opts
|
|
500
502
|
* @param {string} opts.siteRoot - Absolute path to the WordPress root.
|
|
@@ -514,7 +516,8 @@ Thumbs.db
|
|
|
514
516
|
|
|
515
517
|
logger.info(`${host}: persisting site to repository`);
|
|
516
518
|
shellExec(
|
|
517
|
-
`cd "${siteRoot}" && git add -A && git commit -m "wp provision ${host} $(date -u +%Y-%m-%dT%H:%M:%SZ)"
|
|
519
|
+
`cd "${siteRoot}" && git add -A && git commit -m "wp provision ${host} $(date -u +%Y-%m-%dT%H:%M:%SZ)"`,
|
|
520
|
+
{ silentOnError: true },
|
|
518
521
|
);
|
|
519
522
|
shellExec(`cd "${siteRoot}" && underpost push . ${githubOrg}/${repoName} -f`);
|
|
520
523
|
logger.info(`${host}: initial commit pushed to ${githubOrg}/${repoName}`);
|
|
@@ -627,7 +630,7 @@ if (isset($_SERVER['HTTP_X_FORWARDED_PROTO']) && $_SERVER['HTTP_X_FORWARDED_PROT
|
|
|
627
630
|
|
|
628
631
|
// MariaDB export is handled by the shared db.js backup flow — no duplicate dump here.
|
|
629
632
|
if (fs.existsSync(path.join(siteRoot, '.git'))) {
|
|
630
|
-
shellExec(`cd "${siteRoot}" && git add -A && git commit -m "wp backup $(date -u +%Y-%m-%dT%H:%M:%SZ)"
|
|
633
|
+
shellExec(`cd "${siteRoot}" && git add -A && git commit -m "wp backup $(date -u +%Y-%m-%dT%H:%M:%SZ)"`, { silentOnError: true });
|
|
631
634
|
shellExec(`cd "${siteRoot}" && underpost push . ${githubOrg}/${repository.split('/').pop().split('.')[0]}`);
|
|
632
635
|
logger.info(`backup: git push done for ${siteRoot}`);
|
|
633
636
|
} else {
|
|
@@ -133,6 +133,7 @@ export class AtlasSpriteSheetGenerator {
|
|
|
133
133
|
*/
|
|
134
134
|
static async generateAtlas(objectLayerRenderFrames, itemKey, cellPixelDim = 20, maxAtlasDim = null) {
|
|
135
135
|
const { frames, colors } = objectLayerRenderFrames;
|
|
136
|
+
const frameDuration = Number(objectLayerRenderFrames?.frame_duration);
|
|
136
137
|
|
|
137
138
|
// Direction order for consistent packing
|
|
138
139
|
const directionOrder = [
|
|
@@ -255,13 +256,13 @@ export class AtlasSpriteSheetGenerator {
|
|
|
255
256
|
frameMetadata[direction] = [];
|
|
256
257
|
}
|
|
257
258
|
|
|
258
|
-
frameMetadata[direction]
|
|
259
|
+
frameMetadata[direction][frameIndex] = {
|
|
259
260
|
x,
|
|
260
261
|
y,
|
|
261
262
|
width: image.bitmap.width,
|
|
262
263
|
height: image.bitmap.height,
|
|
263
264
|
frameIndex,
|
|
264
|
-
}
|
|
265
|
+
};
|
|
265
266
|
}
|
|
266
267
|
|
|
267
268
|
// Convert to PNG buffer
|
|
@@ -272,6 +273,7 @@ export class AtlasSpriteSheetGenerator {
|
|
|
272
273
|
atlasWidth,
|
|
273
274
|
atlasHeight,
|
|
274
275
|
cellPixelDim,
|
|
276
|
+
frame_duration: Number.isFinite(frameDuration) ? frameDuration : 100,
|
|
275
277
|
frames: frameMetadata,
|
|
276
278
|
};
|
|
277
279
|
|
package/src/server/auth.js
CHANGED
|
@@ -20,7 +20,7 @@ import rateLimit from 'express-rate-limit';
|
|
|
20
20
|
import slowDown from 'express-slow-down';
|
|
21
21
|
import cors from 'cors';
|
|
22
22
|
import cookieParser from 'cookie-parser';
|
|
23
|
-
import {
|
|
23
|
+
import { DataBaseProviderService } from '../db/DataBaseProvider.js';
|
|
24
24
|
import { isDevProxyContext } from './conf.js';
|
|
25
25
|
|
|
26
26
|
const logger = loggerFactory(import.meta);
|
|
@@ -229,7 +229,7 @@ const authMiddlewareFactory = (options = { host: '', path: '' }) => {
|
|
|
229
229
|
|
|
230
230
|
// Non-guest verify session exists
|
|
231
231
|
if (payload.jwtid && payload.role !== 'guest') {
|
|
232
|
-
const User =
|
|
232
|
+
const User = DataBaseProviderService.getModel('user', { host: payload.host, path: payload.path });
|
|
233
233
|
const user = await User.findOne({ _id: payload._id, 'activeSessions._id': payload.jwtid }).lean();
|
|
234
234
|
|
|
235
235
|
if (!user) {
|