@underpostnet/cyberia 3.3.0 → 3.3.76
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/.dockerignore +1 -0
- package/.env.example +17 -5
- package/.github/workflows/coverall.cyberia.ci.yml +39 -14
- package/.github/workflows/cyberia-client.cd.yml +5 -0
- package/.github/workflows/cyberia-server.cd.yml +5 -0
- package/.github/workflows/docker-image.cyberia-client.ci.yml +8 -5
- package/.github/workflows/docker-image.cyberia-client.dev.ci.yml +8 -3
- package/.github/workflows/docker-image.cyberia-server.ci.yml +8 -5
- package/.github/workflows/docker-image.cyberia-server.dev.ci.yml +8 -5
- package/.github/workflows/docker-image.engine-cyberia.ci.yml +15 -1
- package/.github/workflows/docker-image.engine-cyberia.dev.ci.yml +15 -1
- package/.github/workflows/engine-cyberia.cd.yml +3 -0
- package/.github/workflows/engine-cyberia.ci.yml +4 -5
- package/.github/workflows/ghpkg.ci.yml +35 -20
- package/.github/workflows/hardhat.ci.yml +12 -11
- package/.github/workflows/npmpkg.ci.yml +17 -15
- package/.github/workflows/publish.cyberia.ci.yml +44 -0
- package/.github/workflows/pwa-microservices-template-test.ci.yml +2 -2
- package/.github/workflows/release.cd.yml +1 -0
- package/.prettierignore +1 -0
- package/AGENTS.md +96 -0
- package/CHANGELOG.md +653 -2513
- package/CLI-HELP.md +323 -157
- package/Dockerfile +25 -9
- package/Dockerfile.dev +25 -9
- package/Dockerfile.test +5 -5
- package/README.md +48 -28
- package/bin/build.js +86 -41
- package/bin/build.template.js +8 -3
- package/bin/cyberia.js +1494 -1403
- package/bin/deploy.js +18 -104
- package/bin/index.js +1494 -1403
- package/compose.env +17 -5
- package/conf.js +98 -7
- package/deploy/cyberia-client/deploy.sh +46 -0
- package/deploy/cyberia-client/package.sh +17 -0
- package/deploy/cyberia-client/state.sh +15 -0
- package/deploy/cyberia-server/deploy.sh +46 -0
- package/deploy/cyberia-server/package.sh +17 -0
- package/deploy/cyberia-server/state.sh +15 -0
- package/deploy/dd-cyberia/deploy.sh +9 -29
- package/deploy/dd-cyberia/init.sh +38 -45
- package/deploy/dd-cyberia/package.sh +16 -0
- package/deploy/dd-cyberia/state.sh +14 -0
- package/deploy/dd-cyberia/sync-deploy.sh +133 -147
- package/deploy/lib/config.sh +29 -0
- package/deploy/lib/github-actions-logging.sh +610 -0
- package/deploy/lib/host.sh +194 -0
- package/deploy/lib/state.sh +65 -0
- package/deploy/pwa-microservices-template/deploy.sh +17 -42
- package/deploy/release/deploy.sh +9 -41
- package/deployment.yaml +7 -2
- package/docker-compose.yml +23 -17
- package/examples/static-page/README.md +19 -19
- package/examples/static-page/ssr-components/CustomPage.js +2 -2
- package/hardhat/hardhat.config.js +1 -6
- package/hardhat/package-lock.json +101 -40
- package/hardhat/package.json +2 -2
- package/manifests/alertmanager/deployment.yaml +81 -0
- package/manifests/blackbox-exporter/deployment.yaml +75 -0
- package/manifests/cronjobs/dd-cron/dd-cron-backup.yaml +32 -7
- package/manifests/cronjobs/dd-cron/dd-cron-vultr.yaml +32 -7
- package/manifests/deployment/dd-cyberia-development/deployment.yaml +7 -2
- package/manifests/deployment/dd-default-development/deployment.yaml +2 -2
- package/manifests/deployment/mongo-express/deployment.yaml +46 -27
- package/manifests/deployment/mongo-express/kustomization.yaml +9 -0
- package/manifests/deployment/mongo-express/mongo-express-nodeport.yaml +18 -0
- package/manifests/deployment/mongo-express/service.yaml +16 -0
- package/manifests/deployment/mongo-express-no-auth/disable-mongodb-auth.yaml +16 -0
- package/manifests/deployment/mongo-express-no-auth/kustomization.yaml +16 -0
- package/manifests/grafana/deployment.yaml +26 -7
- package/manifests/grafana/kustomization.yaml +1 -0
- package/manifests/grafana/service.yaml +6 -1
- package/manifests/mariadb/pv.yaml +1 -0
- package/manifests/mongodb/statefulset.yaml +9 -2
- package/manifests/mysql/pv-pvc.yaml +14 -1
- package/manifests/postgresql/pv.yaml +12 -1
- package/manifests/postgresql/pvc.yaml +1 -0
- package/manifests/prometheus/deployment.yaml +18 -22
- package/package.json +87 -12
- package/scripts/event-monitor.sh +56 -0
- package/scripts/k3s-node-setup.sh +27 -14
- package/scripts/kubeadm-node-setup.sh +31 -11
- package/scripts/maas-setup.sh +8 -8
- package/scripts/selinux-normalize.sh +907 -0
- package/scripts/shutdown-machine.sh +843 -0
- package/scripts/test-monitor.sh +5 -5
- package/src/api/atlas-sprite-sheet/atlas-sprite-sheet.controller.js +15 -10
- package/src/api/atlas-sprite-sheet/atlas-sprite-sheet.model.js +36 -5
- package/src/api/atlas-sprite-sheet/atlas-sprite-sheet.router.js +7 -2
- package/src/api/atlas-sprite-sheet/atlas-sprite-sheet.service.js +90 -186
- package/src/api/core/core.controller.js +1 -1
- package/src/api/core/core.router.js +2 -2
- package/src/api/core/core.service.js +2 -2
- package/src/api/crypto/crypto.controller.js +1 -1
- package/src/api/crypto/crypto.service.js +1 -1
- package/src/api/cyberia-action/cyberia-action.controller.js +1 -1
- package/src/api/cyberia-action/cyberia-action.router.js +3 -3
- package/src/api/cyberia-action/cyberia-action.service.js +5 -6
- package/src/api/cyberia-audio/cyberia-audio.controller.js +6 -0
- package/src/api/cyberia-audio/cyberia-audio.model.js +61 -0
- package/src/api/cyberia-audio/cyberia-audio.router.js +21 -0
- package/src/api/cyberia-audio/cyberia-audio.service.js +220 -0
- package/src/api/cyberia-client-hints/cyberia-client-hints.controller.js +2 -4
- package/src/api/cyberia-client-hints/cyberia-client-hints.model.js +10 -19
- package/src/api/cyberia-client-hints/cyberia-client-hints.router.js +13 -35
- package/src/api/cyberia-client-hints/cyberia-client-hints.service.js +17 -34
- package/src/api/cyberia-dialogue/cyberia-dialogue.controller.js +1 -1
- package/src/api/cyberia-dialogue/cyberia-dialogue.model.js +1 -1
- package/src/api/cyberia-dialogue/cyberia-dialogue.router.js +2 -2
- package/src/api/cyberia-dialogue/cyberia-dialogue.service.js +2 -2
- package/src/api/cyberia-entity/cyberia-entity.controller.js +1 -1
- package/src/api/cyberia-entity/cyberia-entity.model.js +2 -0
- package/src/api/cyberia-entity/cyberia-entity.router.js +1 -1
- package/src/api/cyberia-entity/cyberia-entity.service.js +3 -3
- package/src/api/cyberia-entity-type-default/cyberia-entity-type-default.controller.js +8 -2
- package/src/api/cyberia-entity-type-default/cyberia-entity-type-default.model.js +31 -20
- package/src/api/cyberia-entity-type-default/cyberia-entity-type-default.router.js +17 -2
- package/src/api/cyberia-entity-type-default/cyberia-entity-type-default.service.js +468 -5
- package/src/api/cyberia-instance/cyberia-fallback-capture.js +502 -0
- package/src/api/cyberia-instance/cyberia-fallback-world.js +29 -40
- package/src/api/cyberia-instance/cyberia-instance-boot.service.js +5 -5
- package/src/api/cyberia-instance/cyberia-instance-items.js +98 -0
- package/src/api/cyberia-instance/cyberia-instance-map.service.js +35 -142
- package/src/api/cyberia-instance/cyberia-instance.controller.js +2 -5
- package/src/api/cyberia-instance/cyberia-instance.model.js +0 -14
- package/src/api/cyberia-instance/cyberia-instance.router.js +5 -18
- package/src/api/cyberia-instance/cyberia-instance.service.js +5 -45
- package/src/api/cyberia-instance/cyberia-world-generator.js +8 -13
- package/src/api/cyberia-instance-conf/cyberia-instance-conf.controller.js +1 -1
- package/src/api/cyberia-instance-conf/cyberia-instance-conf.model.js +49 -75
- package/src/api/cyberia-instance-conf/cyberia-instance-conf.router.js +1 -1
- package/src/api/cyberia-instance-conf/cyberia-instance-conf.service.js +76 -3
- package/src/api/cyberia-map/cyberia-map.controller.js +1 -1
- package/src/api/cyberia-map/cyberia-map.router.js +1 -1
- package/src/api/cyberia-map/cyberia-map.service.js +8 -4
- package/src/api/cyberia-map-audio-conf/cyberia-map-audio-conf.controller.js +31 -0
- package/src/api/cyberia-map-audio-conf/cyberia-map-audio-conf.model.js +56 -0
- package/src/api/cyberia-map-audio-conf/cyberia-map-audio-conf.router.js +33 -0
- package/src/api/cyberia-map-audio-conf/cyberia-map-audio-conf.service.js +189 -0
- package/src/api/cyberia-quest/cyberia-quest.controller.js +1 -1
- package/src/api/cyberia-quest/cyberia-quest.router.js +4 -4
- package/src/api/cyberia-quest/cyberia-quest.service.js +5 -5
- package/src/api/cyberia-quest-progress/cyberia-quest-progress.controller.js +1 -1
- package/src/api/cyberia-quest-progress/cyberia-quest-progress.model.js +1 -1
- package/src/api/cyberia-quest-progress/cyberia-quest-progress.router.js +1 -1
- package/src/api/cyberia-quest-progress/cyberia-quest-progress.service.js +2 -2
- package/src/api/cyberia-saga/cyberia-saga.controller.js +1 -1
- package/src/api/cyberia-saga/cyberia-saga.router.js +1 -1
- package/src/api/cyberia-saga/cyberia-saga.service.js +2 -2
- package/src/api/cyberia-server-defaults/cyberia-server-defaults.js +403 -214
- package/src/api/cyberia-skill/cyberia-skill.controller.js +1 -1
- package/src/api/cyberia-skill/cyberia-skill.model.js +6 -6
- package/src/api/cyberia-skill/cyberia-skill.router.js +1 -1
- package/src/api/cyberia-skill/cyberia-skill.service.js +2 -2
- package/src/api/default/default.controller.js +1 -1
- package/src/api/default/default.router.js +1 -1
- package/src/api/default/default.service.js +2 -2
- package/src/api/document/document.controller.js +1 -1
- package/src/api/document/document.router.js +1 -1
- package/src/api/document/document.service.js +2 -2
- package/src/api/file/file.controller.js +1 -1
- package/src/api/file/file.ref.js +153 -0
- package/src/api/file/file.ref.json +11 -2
- package/src/api/file/file.router.js +1 -1
- package/src/api/file/file.service.js +2 -2
- package/src/api/instance/instance.controller.js +1 -1
- package/src/api/instance/instance.router.js +1 -1
- package/src/api/instance/instance.service.js +2 -2
- package/src/api/ipfs/ipfs.controller.js +1 -1
- package/src/api/ipfs/ipfs.router.js +2 -2
- package/src/api/ipfs/ipfs.service.js +2 -2
- package/src/api/object-layer/object-layer.controller.js +1 -1
- package/src/api/object-layer/object-layer.model.js +47 -12
- package/src/api/object-layer/object-layer.router.js +12 -5
- package/src/api/object-layer/object-layer.service.js +116 -123
- package/src/api/object-layer-render-frames/object-layer-render-frames.controller.js +1 -1
- package/src/api/object-layer-render-frames/object-layer-render-frames.router.js +1 -1
- package/src/api/object-layer-render-frames/object-layer-render-frames.service.js +2 -2
- package/src/api/test/test.controller.js +1 -1
- package/src/api/test/test.service.js +1 -1
- package/src/api/user/guest.service.js +3 -3
- package/src/api/user/user.controller.js +1 -1
- package/src/api/user/user.router.js +2 -2
- package/src/api/user/user.service.js +4 -4
- package/src/api.js +5 -9
- package/src/cli/app.js +402 -0
- package/src/cli/baremetal.js +30 -35
- package/src/cli/client.js +306 -0
- package/src/cli/cloud-init.js +3 -3
- package/src/cli/cluster.js +191 -82
- package/src/cli/db.js +120 -68
- package/src/cli/deploy.js +157 -75
- package/src/cli/docker-compose.js +5 -5
- package/src/cli/domains.js +184 -0
- package/src/cli/dotenv-store.js +143 -0
- package/src/cli/event.js +2281 -0
- package/src/cli/fs-selection.js +115 -0
- package/src/cli/fs.js +159 -343
- package/src/cli/host.js +672 -0
- package/src/cli/image.js +4 -6
- package/src/cli/index.js +343 -151
- package/src/cli/ipfs.js +34 -30
- package/src/cli/kickstart.js +1 -1
- package/src/cli/kubectl.js +218 -41
- package/src/cli/lxd.js +3 -3
- package/src/cli/monitor.js +1359 -26
- package/src/cli/package.js +90 -0
- package/src/cli/release.js +16 -12
- package/src/cli/repository.js +586 -363
- package/src/cli/run.js +398 -843
- package/src/cli/secrets.js +2158 -964
- package/src/cli/ssh.js +478 -279
- package/src/cli/state.js +394 -0
- package/src/cli/static.js +2 -2
- package/src/cli/system.js +1 -1
- package/src/cli/test.js +203 -125
- package/src/cli/vultr.js +61 -21
- package/src/cli/wireguard.js +1112 -306
- package/src/client/components/core/CalendarCore.js +53 -96
- package/src/client/components/core/Docs.js +327 -303
- package/src/client/components/core/FileExplorer.js +0 -21
- package/src/client/components/core/Modal.js +56 -1
- package/src/client/components/core/PanelForm.js +4 -4
- package/src/client/components/core/Repository.js +56 -0
- package/src/client/components/core/Translate.js +7 -0
- package/src/client/components/core/{FullScreen.js → ViewModeController.js} +42 -39
- package/src/client/components/core/Wallet.js +0 -11
- package/src/client/components/core/Worker.js +7 -1
- package/src/client/components/cryptokoyn/SettingsCryptokoyn.js +2 -2
- package/src/client/components/cyberia/ActionEngineCyberia.js +12 -36
- package/src/client/components/cyberia/EntityEngineCyberia.js +492 -121
- package/src/client/components/cyberia/InstanceEngineCyberia.js +129 -160
- package/src/client/components/cyberia/InstanceSelectionView.js +7 -1
- package/src/client/components/cyberia/MapEngineCyberia.js +175 -69
- package/src/client/components/cyberia/ObjectLayerEngine.js +1011 -97
- package/src/client/components/cyberia/ObjectLayerEngineModal.js +81 -155
- package/src/client/components/cyberia/ObjectLayerEngineViewer.js +113 -98
- package/src/client/components/cyberia/SharedDefaultsCyberia.js +215 -56
- package/src/client/components/cyberia-portal/AppShellCyberiaPortal.js +2 -35
- package/src/client/components/cyberia-portal/CssCyberiaPortal.js +1 -1
- package/src/client/components/cyberia-portal/MainBodyCyberiaPortal.js +712 -76
- package/src/client/components/cyberia-portal/SettingsCyberiaPortal.js +2 -2
- package/src/client/components/cyberia-portal/TranslateCyberiaPortal.js +0 -4
- package/src/client/components/default/AppShellDefault.js +1 -1
- package/src/client/components/default/SettingsDefault.js +2 -2
- package/src/client/components/itemledger/SettingsItemledger.js +2 -2
- package/src/client/components/underpost/AppShellUnderpost.js +3 -2
- package/src/client/components/underpost/SettingsUnderpost.js +2 -2
- package/src/client/public/cyberia-docs/ARCHITECTURE.md +15 -15
- package/src/client/public/cyberia-docs/CYBERIA-CLI.md +313 -30
- package/src/client/public/cyberia-docs/CYBERIA-CLIENT.md +51 -29
- package/src/client/public/cyberia-docs/CYBERIA-SAGA.md +52 -53
- package/src/client/public/cyberia-docs/CYBERIA-SERVER.md +16 -11
- package/src/client/public/cyberia-docs/CYBERIA.md +48 -28
- package/src/client/public/cyberia-docs/ENTITY-PROFILE.md +11 -5
- package/src/client/public/cyberia-docs/HARDHAT-MODULE.md +23 -6
- package/src/client/public/cyberia-docs/ROADMAP.md +1 -1
- package/src/client/public/cyberia-docs/STATS-PROGRESSION.md +217 -0
- package/src/client/public/cyberia-docs/WHITE-PAPER.md +20 -12
- package/src/client/public/default/android-chrome-144x144.png +0 -0
- package/src/client/public/default/android-chrome-192x192.png +0 -0
- package/src/client/public/default/android-chrome-256x256.png +0 -0
- package/src/client/public/default/android-chrome-36x36.png +0 -0
- package/src/client/public/default/android-chrome-384x384.png +0 -0
- package/src/client/public/default/android-chrome-48x48.png +0 -0
- package/src/client/public/default/android-chrome-512x512.png +0 -0
- package/src/client/public/default/android-chrome-72x72.png +0 -0
- package/src/client/public/default/android-chrome-96x96.png +0 -0
- package/src/client/public/default/apple-touch-icon-1024x1024.png +0 -0
- package/src/client/public/default/apple-touch-icon-114x114.png +0 -0
- package/src/client/public/default/apple-touch-icon-120x120.png +0 -0
- package/src/client/public/default/apple-touch-icon-144x144.png +0 -0
- package/src/client/public/default/apple-touch-icon-152x152.png +0 -0
- package/src/client/public/default/apple-touch-icon-167x167.png +0 -0
- package/src/client/public/default/apple-touch-icon-180x180.png +0 -0
- package/src/client/public/default/apple-touch-icon-57x57.png +0 -0
- package/src/client/public/default/apple-touch-icon-60x60.png +0 -0
- package/src/client/public/default/apple-touch-icon-72x72.png +0 -0
- package/src/client/public/default/apple-touch-icon-76x76.png +0 -0
- package/src/client/public/default/apple-touch-icon-precomposed.png +0 -0
- package/src/client/public/default/apple-touch-icon.png +0 -0
- package/src/client/public/default/apple-touch-startup-image-1125x2436.png +0 -0
- package/src/client/public/default/apple-touch-startup-image-1136x640.png +0 -0
- package/src/client/public/default/apple-touch-startup-image-1170x2532.png +0 -0
- package/src/client/public/default/apple-touch-startup-image-1179x2556.png +0 -0
- package/src/client/public/default/apple-touch-startup-image-1242x2208.png +0 -0
- package/src/client/public/default/apple-touch-startup-image-1242x2688.png +0 -0
- package/src/client/public/default/apple-touch-startup-image-1284x2778.png +0 -0
- package/src/client/public/default/apple-touch-startup-image-1290x2796.png +0 -0
- package/src/client/public/default/apple-touch-startup-image-1334x750.png +0 -0
- package/src/client/public/default/apple-touch-startup-image-1488x2266.png +0 -0
- package/src/client/public/default/apple-touch-startup-image-1536x2048.png +0 -0
- package/src/client/public/default/apple-touch-startup-image-1620x2160.png +0 -0
- package/src/client/public/default/apple-touch-startup-image-1640x2160.png +0 -0
- package/src/client/public/default/apple-touch-startup-image-1668x2224.png +0 -0
- package/src/client/public/default/apple-touch-startup-image-1668x2388.png +0 -0
- package/src/client/public/default/apple-touch-startup-image-1792x828.png +0 -0
- package/src/client/public/default/apple-touch-startup-image-2048x1536.png +0 -0
- package/src/client/public/default/apple-touch-startup-image-2048x2732.png +0 -0
- package/src/client/public/default/apple-touch-startup-image-2160x1620.png +0 -0
- package/src/client/public/default/apple-touch-startup-image-2160x1640.png +0 -0
- package/src/client/public/default/apple-touch-startup-image-2208x1242.png +0 -0
- package/src/client/public/default/apple-touch-startup-image-2224x1668.png +0 -0
- package/src/client/public/default/apple-touch-startup-image-2266x1488.png +0 -0
- package/src/client/public/default/apple-touch-startup-image-2388x1668.png +0 -0
- package/src/client/public/default/apple-touch-startup-image-2436x1125.png +0 -0
- package/src/client/public/default/apple-touch-startup-image-2532x1170.png +0 -0
- package/src/client/public/default/apple-touch-startup-image-2556x1179.png +0 -0
- package/src/client/public/default/apple-touch-startup-image-2688x1242.png +0 -0
- package/src/client/public/default/apple-touch-startup-image-2732x2048.png +0 -0
- package/src/client/public/default/apple-touch-startup-image-2778x1284.png +0 -0
- package/src/client/public/default/apple-touch-startup-image-2796x1290.png +0 -0
- package/src/client/public/default/apple-touch-startup-image-640x1136.png +0 -0
- package/src/client/public/default/apple-touch-startup-image-750x1334.png +0 -0
- package/src/client/public/default/apple-touch-startup-image-828x1792.png +0 -0
- package/src/client/public/default/assets/background/white.jpg +0 -0
- package/src/client/public/default/browserconfig.xml +1 -1
- package/src/client/public/default/favicon-16x16.png +0 -0
- package/src/client/public/default/favicon-32x32.png +0 -0
- package/src/client/public/default/favicon-48x48.png +0 -0
- package/src/client/public/default/favicon.ico +0 -0
- package/src/client/public/default/manifest.webmanifest +5 -5
- package/src/client/public/default/mstile-144x144.png +0 -0
- package/src/client/public/default/mstile-150x150.png +0 -0
- package/src/client/public/default/mstile-310x150.png +0 -0
- package/src/client/public/default/mstile-310x310.png +0 -0
- package/src/client/public/default/mstile-70x70.png +0 -0
- package/src/client/public/default/yandex-browser-50x50.png +0 -0
- package/src/client/public/default/yandex-browser-manifest.json +1 -1
- package/src/client/services/cyberia-audio/cyberia-audio.service.js +99 -0
- package/src/client/services/cyberia-entity-type-default/cyberia-entity-type-default.service.js +38 -0
- package/src/client/services/cyberia-instance/cyberia-instance.management.js +5 -4
- package/src/client/services/cyberia-instance/cyberia-instance.service.js +0 -40
- package/src/client/services/cyberia-map/cyberia-map.management.js +5 -4
- package/src/client/services/cyberia-map-audio-conf/cyberia-map-audio-conf.service.js +138 -0
- package/src/client/services/object-layer/object-layer.management.js +6 -10
- package/src/client/services/object-layer/object-layer.service.js +3 -1
- package/src/client/ssr/RootDocument.js +1 -1
- package/src/client/ssr/body/404.js +1 -1
- package/src/client/ssr/body/500.js +1 -1
- package/src/client/ssr/body/CacheControl.js +1 -1
- package/src/client/ssr/body/CyberiaDefaultSplashScreen.js +1 -1
- package/src/client/ssr/body/DefaultSplashScreen.js +1 -1
- package/src/client/ssr/body/SwaggerDarkMode.js +1 -1
- package/src/client/ssr/body/UnderpostDefaultSplashScreen.js +1 -1
- package/src/client/ssr/head/CryptokoynScripts.js +1 -1
- package/src/client/ssr/head/Css.js +1 -1
- package/src/client/ssr/head/CyberiaPortalScripts.js +1 -1
- package/src/client/ssr/head/DefaultScripts.js +1 -1
- package/src/client/ssr/head/ItemledgerScripts.js +1 -1
- package/src/client/ssr/head/Microdata.js +1 -1
- package/src/client/ssr/head/Production.js +1 -1
- package/src/client/ssr/head/Pwa.js +1 -1
- package/src/client/ssr/head/PwaItemledger.js +1 -1
- package/src/client/ssr/head/Seo.js +1 -1
- package/src/client/ssr/head/UnderpostScripts.js +1 -1
- package/src/client/ssr/mailer/DefaultRecoverEmail.js +1 -1
- package/src/client/ssr/mailer/DefaultVerifyEmail.js +1 -1
- package/src/client/ssr/views/Cyberia404.js +7 -5
- package/src/client/ssr/views/CyberiaServerMetrics.js +1 -1
- package/src/client/ssr/views/Maintenance.js +1 -1
- package/src/client/ssr/views/NoNetworkConnection.js +1 -1
- package/src/client/ssr/views/Test.js +1 -1
- package/src/client/sw/core.sw.js +20 -14
- package/src/client-builder/client-build-docs.js +92 -77
- package/src/client-builder/client-build-live.js +2 -2
- package/src/client-builder/client-build.js +105 -74
- package/src/client-builder/client-bundle.js +347 -0
- package/src/client-builder/client-dev-server.js +3 -3
- package/src/client-builder/client-icons.js +2 -2
- package/src/client-builder/ssr.js +3 -3
- package/src/client.build.js +3 -6
- package/src/client.dev.js +3 -6
- package/src/db/DataBaseProvider.js +186 -3
- package/src/db/mariadb/MariaDB.js +3 -2
- package/src/db/mongo/MongoBootstrap.js +273 -101
- package/src/db/mongo/MongoExpress.js +187 -0
- package/src/db/mongo/MongooseDB.js +7 -8
- package/src/{server/valkey.js → db/valkey/Valkey.js} +5 -4
- package/src/grpc/cyberia/grpc-server.js +6 -8
- package/src/index.js +79 -23
- package/src/mailer/EmailRender.js +2 -2
- package/src/mailer/MailerInterceptor.js +87 -0
- package/src/mailer/MailerProvider.js +50 -6
- package/src/projects/cyberia/atlas-sprite-sheet-generator.js +144 -147
- package/src/projects/cyberia/atlas-sprite-sheet-store.js +391 -0
- package/src/projects/cyberia/besu-genesis-generator.js +8 -17
- package/src/projects/cyberia/boot-contract-fixtures.js +32 -0
- package/src/projects/cyberia/catalog-cyberia.js +54 -10
- package/src/projects/cyberia/gemini-client.js +4 -4
- package/src/projects/cyberia/generate-saga.js +5 -12
- package/src/projects/cyberia/hot-reload-trigger.js +18 -29
- package/src/projects/cyberia/instance-backup.js +210 -0
- package/src/projects/cyberia/instance-data.js +178 -258
- package/src/projects/cyberia/ipfs-client.js +4 -4
- package/src/projects/cyberia/map-preview-generator.js +33 -69
- package/src/projects/cyberia/object-layer.js +153 -320
- package/src/projects/cyberia/seed-audio.js +139 -0
- package/src/projects/cyberia/semantic-layer-generator-skin.js +2 -8
- package/src/projects/cyberia/semantic-layer-generator.js +3 -19
- package/src/projects/cyberia/stat-balance.js +81 -0
- package/src/projects/cyberia/stat-commands.js +23 -0
- package/src/projects/cyberia/stat-contract-generator.js +101 -0
- package/src/projects/underpost/catalog-underpost.js +9 -1
- package/src/proxy.js +4 -7
- package/src/runtime/cyberia-client/Dockerfile +17 -8
- package/src/runtime/cyberia-client/Dockerfile.dev +13 -4
- package/src/runtime/cyberia-server/Dockerfile +18 -6
- package/src/runtime/cyberia-server/Dockerfile.dev +16 -3
- package/src/runtime/engine-cyberia/Dockerfile +25 -9
- package/src/runtime/engine-cyberia/Dockerfile.dev +25 -9
- package/src/runtime/engine-cyberia/Dockerfile.test +5 -5
- package/src/runtime/engine-cyberia/compose.env +17 -5
- package/src/runtime/engine-cyberia/docker-compose.yml +23 -17
- package/src/runtime/express/Express.js +32 -27
- package/src/runtime/lampp/Lampp.js +22 -70
- package/src/runtime/nginx/Nginx.js +1 -1
- package/src/runtime/wp/Wp.js +16 -48
- package/src/server/{catalog.js → build/catalog.js} +15 -5
- package/src/server/build/coverage.js +188 -0
- package/src/server/build/execution.js +402 -0
- package/src/server/build/package.js +508 -0
- package/src/server/build/testing.js +578 -0
- package/src/server/{dns.js → network/dns.js} +144 -11
- package/src/server/{forward-proxy.js → network/forward-proxy.js} +10 -18
- package/src/server/{middlewares.js → network/middlewares.js} +11 -5
- package/src/server/network/node-capability.js +98 -0
- package/src/server/{peer.js → network/peer.js} +3 -3
- package/src/server/{proxy.js → network/proxy.js} +7 -13
- package/src/server/network/router.js +356 -0
- package/src/server/{tls.js → network/tls.js} +2 -2
- package/src/server/{underpost-compression.js → network/underpost-compression.js} +1 -1
- package/src/server/{underpost-gateway.js → network/underpost-gateway.js} +7 -7
- package/src/server/{underpost-ingress.js → network/underpost-ingress.js} +2 -2
- package/src/server/{cri.js → ops/cri.js} +2 -2
- package/src/server/{cron.js → ops/cron.js} +349 -74
- package/src/server/ops/event-notification.js +284 -0
- package/src/server/{logger.js → ops/logger.js} +143 -23
- package/src/server/ops/monitoring.js +1724 -0
- package/src/server/{systemd.js → ops/systemd.js} +55 -1
- package/src/server/{conf.js → runtime/conf.js} +516 -423
- package/src/server/runtime/config-scope.js +215 -0
- package/src/server/runtime/environment.js +149 -0
- package/src/server/{process.js → runtime/process.js} +153 -12
- package/src/server/{runtime-status.js → runtime/runtime-status.js} +155 -16
- package/src/server/{runtime.js → runtime/runtime.js} +12 -8
- package/src/server/{start.js → runtime/start.js} +128 -39
- package/src/server/{auth.js → security/auth.js} +7 -8
- package/src/server/security/container-storage.js +382 -0
- package/src/server/{crypto.js → security/crypto.js} +1 -1
- package/src/server/{selinux.js → security/selinux.js} +1 -1
- package/src/server/{backup.js → storage/backup.js} +17 -8
- package/src/server/{data-query.js → storage/data-query.js} +17 -1
- package/src/server/storage/downloader.js +121 -0
- package/src/server/storage/repository.js +68 -0
- package/src/server/storage/zip.js +153 -0
- package/src/server.js +4 -7
- package/src/ws/IoInterface.js +1 -1
- package/src/ws/IoServer.js +1 -1
- package/src/ws/core/core.ws.connection.js +1 -1
- package/src/ws/core/core.ws.emit.js +1 -1
- package/src/ws/core/core.ws.server.js +1 -1
- package/src/ws/default/default.ws.connection.js +1 -1
- package/src/ws/default/default.ws.emit.js +1 -1
- package/src/ws/default/default.ws.server.js +1 -1
- package/test/e2e/event-e2e-public-ingress-down.js +45 -0
- package/test/e2e/event-e2e-wireguard-server-down.js +38 -0
- package/test/e2e/event-e2e-wireguard-spoke-down.js +40 -0
- package/test/{api.test.js → integration/app/api.test.js} +33 -14
- package/test/integration/app/cyberia/atlas-sprite-sheet-store.test.js +402 -0
- package/test/integration/app/cyberia/atlas-sprite-sheet.test.js +86 -0
- package/test/integration/app/cyberia/cyberia-cli-plain-reads.test.js +64 -0
- package/test/integration/app/cyberia/cyberia-entity-type-default.test.js +842 -0
- package/test/integration/app/cyberia/cyberia-instance-conf-coerce.test.js +53 -0
- package/test/{cyberia-instance-conf-defaults.test.js → integration/app/cyberia/cyberia-instance-conf-defaults.test.js} +17 -23
- package/test/integration/app/cyberia/cyberia-instance-items.test.js +90 -0
- package/test/integration/app/cyberia/cyberia-load.test.js +466 -0
- package/test/integration/app/cyberia/cyberia-map-audio-conf.test.js +256 -0
- package/test/integration/app/cyberia/cyberia-stats.test.js +150 -0
- package/test/integration/app/cyberia/fallback-world-capture.test.js +338 -0
- package/test/integration/app/cyberia/object-layer-item-id.test.js +327 -0
- package/test/integration/app/cyberia/object-layer-item-selection.test.js +56 -0
- package/test/integration/app/cyberia/object-layer-natural-key.test.js +32 -0
- package/test/integration/app/cyberia/seed-audio.test.js +275 -0
- package/test/{shape-generator.test.js → integration/app/cyberia/shape-generator.test.js} +1 -1
- package/test/integration/infra/1-security/config-scope.test.js +305 -0
- package/test/integration/infra/1-security/container-storage.test.js +356 -0
- package/test/integration/infra/1-security/in-pod-cli-surface.test.js +86 -0
- package/test/integration/infra/1-security/secret-onboarding.test.js +930 -0
- package/test/{selinux.test.js → integration/infra/1-security/selinux.test.js} +2 -4
- package/test/{sops-secret-store.test.js → integration/infra/1-security/sops-secret-store.test.js} +415 -61
- package/test/integration/infra/1-security/systemd-service.test.js +70 -0
- package/test/integration/infra/1-security/underpost-config-secret.test.js +367 -0
- package/test/integration/infra/2-network/dns-firewall.test.js +566 -0
- package/test/integration/infra/2-network/node-capability.test.js +182 -0
- package/test/integration/infra/2-network/wireguard-cli.test.js +1187 -0
- package/test/{wireguard-edge.test.js → integration/infra/2-network/wireguard-edge.test.js} +649 -55
- package/test/{cluster-instances.test.js → integration/infra/3-cluster/cluster-instances.test.js} +11 -15
- package/test/{deploy-node-placement.test.js → integration/infra/3-cluster/deploy-node-placement.test.js} +3 -3
- package/test/integration/infra/3-cluster/docker-compose-stack.test.js +313 -0
- package/test/integration/infra/3-cluster/mongo-express-deploy.test.js +156 -0
- package/test/integration/infra/4-ingress/api-cross-origin.test.js +79 -0
- package/test/integration/infra/4-ingress/deploy-routes.test.js +379 -0
- package/test/integration/infra/4-ingress/gateway-static-assets.test.js +453 -0
- package/test/{instance-traffic-plan.test.js → integration/infra/4-ingress/instance-traffic-plan.test.js} +10 -6
- package/test/{underpost-gateway.test.js → integration/infra/4-ingress/underpost-gateway.test.js} +6 -6
- package/test/{underpost-ingress.test.js → integration/infra/4-ingress/underpost-ingress.test.js} +4 -4
- package/test/integration/infra/5-observability/cron-jobs.test.js +652 -0
- package/test/{deploy-monitor.test.js → integration/infra/5-observability/deploy-monitor.test.js} +29 -31
- package/test/integration/infra/5-observability/event-notification.test.js +197 -0
- package/test/integration/infra/5-observability/event-remediation.test.js +502 -0
- package/test/integration/infra/5-observability/event-targets.test.js +1174 -0
- package/test/integration/infra/5-observability/monitoring-stack.test.js +902 -0
- package/test/support/shell-harness.js +73 -0
- package/test/unit/build-template.test.js +97 -0
- package/test/unit/build-workflow-offline.test.js +132 -0
- package/test/unit/catalog.test.js +71 -0
- package/test/unit/client-build-docs.test.js +361 -0
- package/test/unit/client-bundle.test.js +313 -0
- package/test/unit/conf-loading.test.js +303 -0
- package/test/unit/conf-resolution.test.js +996 -0
- package/test/unit/coverage-artifact.test.js +221 -0
- package/test/{crypto.test.js → unit/crypto.test.js} +1 -1
- package/test/unit/cyberia/instance-backup.test.js +183 -0
- package/test/unit/cyberia/instance-object-layer-items.test.js +46 -0
- package/test/unit/cyberia/publish-workflow.test.js +22 -0
- package/test/unit/cyberia/stat-balance.test.js +69 -0
- package/test/unit/deploy-env-resolution.test.js +38 -0
- package/test/unit/deploy-log-table.test.js +518 -0
- package/test/unit/downloader-integrity.test.js +98 -0
- package/test/unit/execution-profiles.test.js +219 -0
- package/test/unit/file-reference-registry.test.js +141 -0
- package/test/unit/fleet-sync-source.test.js +149 -0
- package/test/unit/fs-storage-paths.test.js +596 -0
- package/test/unit/logger-redaction.test.js +141 -0
- package/test/unit/package.test.js +457 -0
- package/test/unit/prepare-host.test.js +382 -0
- package/test/unit/process-environment.test.js +18 -0
- package/test/unit/propagation-message.test.js +78 -0
- package/test/unit/redeploy-plan.test.js +24 -0
- package/test/unit/release-bump.test.js +474 -0
- package/test/unit/ssh-output-redaction.test.js +28 -0
- package/test/unit/start-options.test.js +46 -0
- package/test/unit/test-tiers.test.js +220 -0
- package/test/unit/zip-archive.test.js +142 -0
- package/vitest.config.js +66 -0
- package/.nycrc +0 -9
- package/deploy/lib/logging.sh +0 -96
- package/manifests/cronjobs/dd-cron/dd-cron-dns.yaml +0 -48
- package/manifests/mongodb/pv-pvc.yaml +0 -59
- package/scripts/coverall-test-cyberia.sh +0 -24
- package/scripts/coverall-test.sh +0 -24
- package/scripts/link-local-underpost-cli.sh +0 -6
- package/src/api/cyberia-instance/cyberia-fallback-default-items.js +0 -63
- package/src/api/user/user.build.js +0 -16
- package/src/cli/env.js +0 -177
- package/src/client/components/core/Blockchain.js +0 -41
- package/src/client/components/core/Blog.js +0 -9
- package/src/client/components/core/KeyboardAvoidance.js +0 -145
- package/src/client/components/cyberia/FallbackWorldEngineCyberia.js +0 -368
- package/src/client/public/default/assets/background/dark.jpg +0 -0
- package/src/client/public/default/assets/background/white0-min.jpg +0 -0
- package/src/client/public/default/assets/background/white0.jpg +0 -0
- package/src/client/public/doc/favicon.ico +0 -0
- package/src/client/public/doc/sitemap +0 -148
- package/src/server/downloader.js +0 -73
- package/src/server/environment.js +0 -98
|
@@ -2,193 +2,179 @@
|
|
|
2
2
|
set -euo pipefail
|
|
3
3
|
|
|
4
4
|
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
5
|
-
source "$SCRIPT_DIR/../lib/logging.sh"
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
#
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
5
|
+
source "$SCRIPT_DIR/../lib/github-actions-logging.sh"
|
|
6
|
+
source "$SCRIPT_DIR/../lib/host.sh"
|
|
7
|
+
|
|
8
|
+
DEPLOY_ID=dd-cyberia
|
|
9
|
+
DEPLOY_ENV="${DEPLOY_ENV:-production}"
|
|
10
|
+
TARGET_NODE="${TARGET_NODE:-$HOST_NODE}"
|
|
11
|
+
DEPLOY_IMAGE="${DEPLOY_IMAGE:-underpost/engine-cyberia:latest}"
|
|
12
|
+
# The source the pod bootstraps from, and the private configuration each side reads: the host
|
|
13
|
+
# takes the monorepo conf, the pod takes this deploy's own conf repository.
|
|
14
|
+
ENGINE_SRC_REPO="${ENGINE_SRC_REPO:-underpostnet/engine-test-cyberia}"
|
|
15
|
+
ENGINE_SRC_PRIVATE_REPO="${ENGINE_SRC_PRIVATE_REPO:-underpostnet/engine-private}"
|
|
16
|
+
POD_SRC_PRIVATE_REPO="${POD_SRC_PRIVATE_REPO:-underpostnet/engine-cyberia-private}"
|
|
17
|
+
|
|
18
|
+
CYBERIA_ASSETS=src/client/public/cyberia
|
|
19
|
+
UNDERPOST_ASSETS=src/client/public/underpost
|
|
20
|
+
|
|
21
|
+
# Bundle mode: the host builds the client once and uploads the zip parts, and the pod restores
|
|
22
|
+
# that artifact instead of compiling the client itself. Set BUNDLE_MODE=0 to have the pod build
|
|
23
|
+
# from source, which is the behaviour this script had before bundle mode existed.
|
|
24
|
+
BUNDLE_MODE="${BUNDLE_MODE:-1}"
|
|
25
|
+
BUNDLE_SPLIT="${BUNDLE_SPLIT:-8}"
|
|
26
|
+
# Where push-bundle records the uploaded keys, relative to a conf checkout root.
|
|
27
|
+
BUNDLE_MANIFEST_PATH="conf/$DEPLOY_ID/storage.bundle.json"
|
|
28
|
+
# `mv` into a directory that already exists nests the checkout inside it rather than replacing
|
|
29
|
+
# it, and the pod would then load whatever conf the image carried.
|
|
30
|
+
POD_SRC_PRIVATE_DIR="${POD_SRC_PRIVATE_REPO##*/}"
|
|
31
|
+
# Sibling of the engine checkout, so the publish work tree is never part of it.
|
|
32
|
+
POD_PRIVATE_CHECKOUT="../$POD_SRC_PRIVATE_DIR"
|
|
19
33
|
|
|
20
34
|
main() {
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
run_quiet \
|
|
24
|
-
"Pull repository" \
|
|
25
|
-
"Target pod:" \
|
|
26
|
-
14 \
|
|
27
|
-
sudo -n -- /bin/bash -lc \
|
|
28
|
-
"cd $ENGINE_ROOT && node bin run pull"
|
|
35
|
+
deploy_start "Starting remote sync and deploy"
|
|
29
36
|
|
|
30
|
-
|
|
31
|
-
"Install dependencies" \
|
|
32
|
-
"Target pod:" \
|
|
33
|
-
14 \
|
|
34
|
-
sudo -n -- /bin/bash -lc \
|
|
35
|
-
"cd $ENGINE_ROOT && npm install"
|
|
36
|
-
|
|
37
|
-
run_quiet \
|
|
38
|
-
"Sync secrets" \
|
|
39
|
-
"Target pod:" \
|
|
40
|
-
14 \
|
|
41
|
-
sudo -n -- /bin/bash -lc \
|
|
42
|
-
"cd $ENGINE_ROOT && node bin run secret"
|
|
37
|
+
prepare_host "$ENGINE_ROOT"
|
|
43
38
|
|
|
44
|
-
|
|
45
|
-
"Run tests" \
|
|
46
|
-
"Target pod:" \
|
|
47
|
-
14 \
|
|
39
|
+
deploy_step "Clean cyberia public assets" \
|
|
48
40
|
sudo -n -- /bin/bash -lc \
|
|
49
|
-
"cd $ENGINE_ROOT &&
|
|
41
|
+
"cd $ENGINE_ROOT && node bin run clean $CYBERIA_ASSETS"
|
|
50
42
|
|
|
51
|
-
|
|
52
|
-
"Clean cyberia public assets" \
|
|
53
|
-
"Target pod:" \
|
|
54
|
-
14 \
|
|
43
|
+
deploy_step "Clean underpost public assets" \
|
|
55
44
|
sudo -n -- /bin/bash -lc \
|
|
56
|
-
"cd $ENGINE_ROOT && node bin run clean
|
|
45
|
+
"cd $ENGINE_ROOT && node bin run clean $UNDERPOST_ASSETS"
|
|
57
46
|
|
|
58
|
-
|
|
59
|
-
"Clean underpost public assets" \
|
|
60
|
-
"Target pod:" \
|
|
61
|
-
14 \
|
|
47
|
+
deploy_step "Initialize cyberia assets repository" \
|
|
62
48
|
sudo -n -- /bin/bash -lc \
|
|
63
|
-
"cd $ENGINE_ROOT && node bin
|
|
49
|
+
"cd $ENGINE_ROOT && node bin cmt $CYBERIA_ASSETS --init-repo"
|
|
64
50
|
|
|
65
|
-
|
|
66
|
-
"Initialize cyberia assets repository" \
|
|
67
|
-
"Target pod:" \
|
|
68
|
-
14 \
|
|
51
|
+
deploy_step "Initialize underpost assets repository" \
|
|
69
52
|
sudo -n -- /bin/bash -lc \
|
|
70
|
-
"cd $ENGINE_ROOT && node bin cmt
|
|
53
|
+
"cd $ENGINE_ROOT && node bin cmt $UNDERPOST_ASSETS --init-repo"
|
|
71
54
|
|
|
72
|
-
|
|
73
|
-
"Initialize underpost assets repository" \
|
|
74
|
-
"Target pod:" \
|
|
75
|
-
14 \
|
|
55
|
+
deploy_step "Pull cyberia public assets" \
|
|
76
56
|
sudo -n -- /bin/bash -lc \
|
|
77
|
-
"cd $ENGINE_ROOT && node bin
|
|
57
|
+
"cd $ENGINE_ROOT && node bin fs $CYBERIA_ASSETS \
|
|
58
|
+
--deploy-id $DEPLOY_ID \
|
|
59
|
+
--pull \
|
|
60
|
+
--tracked"
|
|
78
61
|
|
|
79
|
-
|
|
80
|
-
"Pull cyberia public assets" \
|
|
81
|
-
"Target pod:" \
|
|
82
|
-
14 \
|
|
62
|
+
deploy_step "Pull underpost public assets" \
|
|
83
63
|
sudo -n -- /bin/bash -lc \
|
|
84
|
-
"cd $ENGINE_ROOT && node bin fs
|
|
64
|
+
"cd $ENGINE_ROOT && node bin fs $UNDERPOST_ASSETS \
|
|
65
|
+
--deploy-id $DEPLOY_ID \
|
|
66
|
+
--pull \
|
|
67
|
+
--tracked \
|
|
68
|
+
--storage-id underpost"
|
|
85
69
|
|
|
86
|
-
|
|
87
|
-
"
|
|
88
|
-
"Target pod:" \
|
|
89
|
-
14 \
|
|
90
|
-
sudo -n -- /bin/bash -lc \
|
|
91
|
-
"cd $ENGINE_ROOT && node bin fs src/client/public/underpost --pull --recursive --deploy-id dd-cyberia --storage-file-path './engine-private/conf/dd-cyberia/storage.underpost.json'"
|
|
92
|
-
|
|
93
|
-
if [ "$(has_changes src/client/public/cyberia)" = "1" ]; then
|
|
94
|
-
run_quiet \
|
|
95
|
-
"Commit cyberia public assets" \
|
|
96
|
-
"Target pod:" \
|
|
97
|
-
14 \
|
|
70
|
+
if [ "$(has_changes $CYBERIA_ASSETS "$ENGINE_ROOT")" = "1" ]; then
|
|
71
|
+
deploy_step "Commit cyberia public assets" \
|
|
98
72
|
sudo -n -- /bin/bash -lc \
|
|
99
|
-
"cd $ENGINE_ROOT && node bin cmt
|
|
73
|
+
"cd $ENGINE_ROOT && git -C $CYBERIA_ASSETS add . && node bin cmt $CYBERIA_ASSETS feat 'Update cyberia public assets'"
|
|
100
74
|
fi
|
|
101
75
|
|
|
102
|
-
if [ "$(has_changes
|
|
103
|
-
|
|
104
|
-
"Commit underpost public assets" \
|
|
105
|
-
"Target pod:" \
|
|
106
|
-
14 \
|
|
76
|
+
if [ "$(has_changes $UNDERPOST_ASSETS "$ENGINE_ROOT")" = "1" ]; then
|
|
77
|
+
deploy_step "Commit underpost public assets" \
|
|
107
78
|
sudo -n -- /bin/bash -lc \
|
|
108
|
-
"cd $ENGINE_ROOT && node bin cmt
|
|
79
|
+
"cd $ENGINE_ROOT && git -C $UNDERPOST_ASSETS add . && node bin cmt $UNDERPOST_ASSETS feat 'Update underpost public assets'"
|
|
109
80
|
fi
|
|
110
81
|
|
|
111
|
-
run_quiet \
|
|
112
|
-
"Apply format fixes" \
|
|
113
|
-
"Target pod:" \
|
|
114
|
-
14 \
|
|
115
|
-
sudo -n -- /bin/bash -lc \
|
|
116
|
-
"cd $ENGINE_ROOT && npm run fix"
|
|
117
82
|
|
|
118
|
-
|
|
119
|
-
"Reinstall dependencies" \
|
|
120
|
-
"Target pod:" \
|
|
121
|
-
14 \
|
|
83
|
+
deploy_step "Reinstall dependencies" \
|
|
122
84
|
sudo -n -- /bin/bash -lc \
|
|
123
85
|
"cd $ENGINE_ROOT && npm install"
|
|
124
86
|
|
|
125
|
-
|
|
126
|
-
"Build cyberia deployment bundle" \
|
|
127
|
-
"Target pod:" \
|
|
128
|
-
14 \
|
|
87
|
+
deploy_step "Install $DEPLOY_ID catalog dependencies" \
|
|
129
88
|
sudo -n -- /bin/bash -lc \
|
|
130
|
-
"cd $ENGINE_ROOT && node bin
|
|
89
|
+
"cd $ENGINE_ROOT && node bin package $DEPLOY_ID --install"
|
|
131
90
|
|
|
132
|
-
|
|
133
|
-
"Clean build artifacts" \
|
|
134
|
-
"Target pod:" \
|
|
135
|
-
14 \
|
|
91
|
+
deploy_step "Clean build artifacts" \
|
|
136
92
|
sudo -n -- /bin/bash -lc \
|
|
137
|
-
"cd $ENGINE_ROOT &&
|
|
93
|
+
"cd $ENGINE_ROOT && node bin run clean"
|
|
138
94
|
|
|
139
|
-
|
|
140
|
-
"Load dd-cyberia production environment" \
|
|
141
|
-
"Target pod:" \
|
|
142
|
-
14 \
|
|
95
|
+
deploy_step "Load $DEPLOY_ID $DEPLOY_ENV environment" \
|
|
143
96
|
sudo -n -- /bin/bash -lc \
|
|
144
|
-
"cd $ENGINE_ROOT && node bin env
|
|
97
|
+
"cd $ENGINE_ROOT && node bin app load --env $DEPLOY_ENV --args deploy-id=$DEPLOY_ID"
|
|
145
98
|
|
|
146
|
-
|
|
147
|
-
"Build cyberia manifests" \
|
|
148
|
-
"Target pod:" \
|
|
149
|
-
14 \
|
|
99
|
+
deploy_step "Build cyberia manifests" \
|
|
150
100
|
sudo -n -- /bin/bash -lc \
|
|
151
101
|
"cd $ENGINE_ROOT && node bin/cyberia run-workflow build-manifest"
|
|
152
102
|
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
"
|
|
103
|
+
# Follows the manifest step: the client renders from the conf.ssr.json that build-manifest
|
|
104
|
+
# writes, so a bundle pushed before it would ship the previous SSR views. The uploaded keys
|
|
105
|
+
# are recorded in engine-private/conf/$DEPLOY_ID/storage.bundle.json, which the pod reads
|
|
106
|
+
# back through its own conf repository.
|
|
107
|
+
if [ "$BUNDLE_MODE" = "1" ]; then
|
|
108
|
+
deploy_step "Push $DEPLOY_ID client bundle" \
|
|
109
|
+
sudo -n -- /bin/bash -lc \
|
|
110
|
+
"cd $ENGINE_ROOT && node bin run push-bundle \
|
|
111
|
+
--deploy-id $DEPLOY_ID \
|
|
112
|
+
--split $BUNDLE_SPLIT"
|
|
113
|
+
|
|
114
|
+
# push-bundle records the keys in the host's own conf checkout, but the pod replaces
|
|
115
|
+
# ./engine-private with a clone of its conf repository — so the manifest is published
|
|
116
|
+
# there too, or the pod reads an empty one and restores nothing. Cloning from the engine
|
|
117
|
+
# root keeps `underpost clone` reading this checkout's credentials, and the work tree is
|
|
118
|
+
# then moved out so it is never part of the engine checkout.
|
|
119
|
+
deploy_step "Stage $DEPLOY_ID bundle manifest" \
|
|
120
|
+
sudo -n -- /bin/bash -lc \
|
|
121
|
+
"cd $ENGINE_ROOT && rm -rf $POD_PRIVATE_CHECKOUT \
|
|
122
|
+
&& node bin clone $POD_SRC_PRIVATE_REPO \
|
|
123
|
+
&& mv ./$POD_SRC_PRIVATE_DIR $POD_PRIVATE_CHECKOUT \
|
|
124
|
+
&& mkdir -p $POD_PRIVATE_CHECKOUT/conf/$DEPLOY_ID \
|
|
125
|
+
&& cp ./engine-private/$BUNDLE_MANIFEST_PATH $POD_PRIVATE_CHECKOUT/$BUNDLE_MANIFEST_PATH"
|
|
126
|
+
|
|
127
|
+
# A rerun that uploads the same keys leaves the manifest byte-identical, and committing
|
|
128
|
+
# nothing fails the step.
|
|
129
|
+
if [ "$(has_changes $POD_PRIVATE_CHECKOUT "$ENGINE_ROOT")" = "1" ]; then
|
|
130
|
+
deploy_step "Publish $DEPLOY_ID bundle manifest" \
|
|
131
|
+
sudo -n -- /bin/bash -lc \
|
|
132
|
+
"cd $ENGINE_ROOT && node bin cmt $POD_PRIVATE_CHECKOUT feat 'Update $DEPLOY_ID bundle manifest' \
|
|
133
|
+
&& node bin push $POD_PRIVATE_CHECKOUT $POD_SRC_PRIVATE_REPO"
|
|
134
|
+
fi
|
|
135
|
+
fi
|
|
136
|
+
|
|
137
|
+
# Two commands, one bootstrap: `pod_bootstrap_cmd` replaces the image's engine with this
|
|
138
|
+
# deploy's source and repoints the global bin at it — without that, the first step needing
|
|
139
|
+
# the current CLI answered `unknown command 'app'`. `start --build` then owns the rest
|
|
140
|
+
# (dependencies, `app load`, client bundle), while `--skip-pull-repo-base` and
|
|
141
|
+
# `--skip-pull-private-repo` tell it the source and the conf are already in place, so each is
|
|
142
|
+
# fetched exactly once. The conf is cloned here rather than left to `--build` because the
|
|
143
|
+
# steps below it — `app load` and every `bin/cyberia` import — read that conf first.
|
|
144
|
+
local pod_cmd
|
|
145
|
+
# In bundle mode `--pull-bundle` replaces the pod's client build with a download of the
|
|
146
|
+
# artifact the host just pushed; without it `--build` compiles the client in the pod.
|
|
147
|
+
local start_flags="--build --run --skip-pull-repo-base --skip-pull-private-repo"
|
|
148
|
+
if [ "$BUNDLE_MODE" = "1" ]; then
|
|
149
|
+
start_flags="$start_flags --pull-bundle"
|
|
150
|
+
fi
|
|
151
|
+
pod_cmd="$(pod_bootstrap_cmd $DEPLOY_ID $DEPLOY_ENV "$ENGINE_SRC_REPO"), \
|
|
152
|
+
underpost clone ${POD_SRC_PRIVATE_REPO}, \
|
|
153
|
+
sudo rm -rf ./engine-private, \
|
|
154
|
+
sudo mv ./${POD_SRC_PRIVATE_DIR} ./engine-private, \
|
|
155
|
+
underpost app load --env $DEPLOY_ENV --args deploy-id=$DEPLOY_ID, \
|
|
156
|
+
node bin/cyberia ol --drop --env-path .env, \
|
|
157
|
+
node bin/cyberia run-workflow drop-db --env-path .env, \
|
|
158
|
+
node bin/cyberia instance amethyst-strata-expansion --import --env-path .env, \
|
|
159
|
+
node bin/cyberia instance FOREST --import --env-path .env, \
|
|
160
|
+
node bin/cyberia instance TEST --import --env-path .env, \
|
|
161
|
+
underpost start $DEPLOY_ID $DEPLOY_ENV $start_flags"
|
|
162
|
+
|
|
163
|
+
deploy_step "Sync $DEPLOY_ID cluster" \
|
|
164
|
+
sudo -n -- /bin/bash -lc \
|
|
165
|
+
"cd $ENGINE_ROOT && node bin run sync \
|
|
166
|
+
--deploy-id $DEPLOY_ID \
|
|
167
|
+
--replicas 1 \
|
|
168
|
+
--image '${DEPLOY_IMAGE}' \
|
|
159
169
|
--kubeadm \
|
|
160
170
|
--deploy-id-cron-jobs none \
|
|
161
|
-
--timeout-response
|
|
162
|
-
|
|
171
|
+
--timeout-response 10000ms \
|
|
172
|
+
${TARGET_NODE:+--node-name ${TARGET_NODE}} \
|
|
163
173
|
--gateway-api \
|
|
164
174
|
--ingress-node ${INGRESS_NODE} \
|
|
165
|
-
--ssh-key-path
|
|
175
|
+
--ssh-key-path ${DEPLOY_SSH_KEY_PATH} \
|
|
166
176
|
--image-pull-policy Always \
|
|
167
|
-
--cmd '
|
|
168
|
-
underpost clone underpostnet/engine-cyberia, \
|
|
169
|
-
mkdir -p /home/dd/engine/src/client/public/itemledger \
|
|
170
|
-
/home/dd/engine/src/client/public/cryptokoyn \
|
|
171
|
-
/home/dd/engine/src/client/components/cryptokoyn \
|
|
172
|
-
/home/dd/engine/src/client/components/itemledger \
|
|
173
|
-
/home/dd/engine/hardhat, \
|
|
174
|
-
cp -a ./engine-cyberia/src/client/public/itemledger/. /home/dd/engine/src/client/public/itemledger/, \
|
|
175
|
-
cp -a ./engine-cyberia/src/client/public/cryptokoyn/. /home/dd/engine/src/client/public/cryptokoyn/, \
|
|
176
|
-
cp -a ./engine-cyberia/src/client/components/cryptokoyn/. /home/dd/engine/src/client/components/cryptokoyn/, \
|
|
177
|
-
cp -a ./engine-cyberia/src/client/components/itemledger/. /home/dd/engine/src/client/components/itemledger/, \
|
|
178
|
-
cp -a ./engine-cyberia/src/client/Itemledger.index.js /home/dd/engine/src/client/Itemledger.index.js, \
|
|
179
|
-
cp -a ./engine-cyberia/src/client/Cryptokoyn.index.js /home/dd/engine/src/client/Cryptokoyn.index.js, \
|
|
180
|
-
rm -rf ./engine-cyberia, \
|
|
181
|
-
sudo rm -rf ./engine-private/, \
|
|
182
|
-
node bin clone underpostnet/engine-cyberia-private, \
|
|
183
|
-
sudo mv ./engine-cyberia-private ./engine-private, \
|
|
184
|
-
node bin env dd-cyberia production, \
|
|
185
|
-
node ./engine-private/itc-scripts/dd-cyberia-0.js, \
|
|
186
|
-
sudo chown -R dd:dd /home/dd/engine/src/client/public/cyberia, \
|
|
187
|
-
node bin/cyberia run-workflow import-default-items --clean, \
|
|
188
|
-
node bin/cyberia run-workflow import-default-items, \
|
|
189
|
-
node bin env dd-cyberia production, \
|
|
190
|
-
node bin client dd-cyberia, \
|
|
191
|
-
node bin start dd-cyberia production --run'"
|
|
177
|
+
--cmd '${pod_cmd}'"
|
|
192
178
|
}
|
|
193
179
|
|
|
194
180
|
main "$@"
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
# Shared deploy constants for deploy/<deploy-id>/*.sh. Sourced by lib/host.sh and lib/state.sh,
|
|
2
|
+
# never executed directly.
|
|
3
|
+
#
|
|
4
|
+
# One home for every value more than one deploy script needs, so renaming a node or moving a
|
|
5
|
+
# checkout is a single edit instead of a sweep. Every name here resolves from the environment
|
|
6
|
+
# first, which is how a run is retargeted without editing a script.
|
|
7
|
+
|
|
8
|
+
# The engine checkout every step runs in. The library helpers take it as an argument and fall
|
|
9
|
+
# back to this, so a caller driving a second checkout passes that one explicitly.
|
|
10
|
+
ENGINE_ROOT="${ENGINE_ROOT:-/home/dd/engine}"
|
|
11
|
+
|
|
12
|
+
# The fleet's nodes, named once. A deploy pins its own placement in TARGET_NODE, declared beside
|
|
13
|
+
# its deploy id and left empty where the CLI resolves the node itself.
|
|
14
|
+
#
|
|
15
|
+
# `node bin deploy` publishes that flag as `--node` while `run sync` and `run instance` publish
|
|
16
|
+
# it as `--node-name`. Both are public option names, so a script holds the value once and spells
|
|
17
|
+
# the flag the way the command it drives publishes it.
|
|
18
|
+
HOST_NODE="${HOST_NODE:-localhost.localdomain}"
|
|
19
|
+
WORKER_NODE="${WORKER_NODE:-hp-envy-iso-ram-rocky9}"
|
|
20
|
+
|
|
21
|
+
# The node carrying the shared host-network ingress.
|
|
22
|
+
INGRESS_NODE="${INGRESS_NODE:-$HOST_NODE}"
|
|
23
|
+
|
|
24
|
+
# The key the sync and instance steps ship volume data with.
|
|
25
|
+
DEPLOY_SSH_KEY_PATH="${DEPLOY_SSH_KEY_PATH:-/home/dd/tmp/897as9dxhaskd9}"
|
|
26
|
+
|
|
27
|
+
# The published image the WordPress deploys run. Pinned rather than derived from the checkout's
|
|
28
|
+
# version: a tag is only deployable once the release workflow has published it.
|
|
29
|
+
DEPLOY_WP_IMAGE="${DEPLOY_WP_IMAGE:-underpost/wp:v3.3.76}"
|