@underpostnet/cyberia 3.2.90 → 3.3.73
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 +16 -0
- package/.github/workflows/coverall.cyberia.ci.yml +107 -0
- package/.github/workflows/cyberia-client.cd.yml +6 -18
- package/.github/workflows/cyberia-server.cd.yml +6 -18
- 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 +6 -78
- package/.github/workflows/engine-cyberia.ci.yml +4 -5
- package/.github/workflows/ghpkg.ci.yml +42 -21
- package/.github/workflows/hardhat.ci.yml +12 -11
- package/.github/workflows/npmpkg.ci.yml +17 -15
- package/.github/workflows/pwa-microservices-template-page.cd.yml +1 -16
- package/.github/workflows/pwa-microservices-template-test.ci.yml +2 -2
- package/.github/workflows/release.cd.yml +2 -9
- package/.prettierignore +1 -0
- package/AGENTS.md +47 -0
- package/CHANGELOG.md +581 -2417
- package/CLI-HELP.md +416 -127
- package/Dockerfile +25 -9
- package/Dockerfile.dev +25 -9
- package/Dockerfile.test +4 -4
- package/README.md +21 -1
- package/bin/build.js +70 -43
- package/bin/build.template.js +8 -3
- package/bin/cyberia.js +372 -135
- package/bin/deploy.js +18 -104
- package/bin/index.js +372 -135
- package/compose.env +16 -0
- package/conf.js +93 -4
- package/deploy/cyberia-client/deploy.sh +47 -0
- package/deploy/cyberia-client/package.sh +18 -0
- package/deploy/cyberia-client/state.sh +14 -0
- package/deploy/cyberia-server/deploy.sh +47 -0
- package/deploy/cyberia-server/package.sh +18 -0
- package/deploy/cyberia-server/state.sh +14 -0
- package/deploy/dd-cyberia/deploy.sh +22 -0
- package/deploy/dd-cyberia/init.sh +55 -0
- package/deploy/dd-cyberia/package.sh +17 -0
- package/deploy/dd-cyberia/state.sh +14 -0
- package/deploy/dd-cyberia/sync-deploy.sh +116 -0
- package/deploy/lib/github-actions-logging.sh +594 -0
- package/deploy/lib/host.sh +185 -0
- package/deploy/lib/state.sh +62 -0
- package/deploy/pwa-microservices-template/deploy.sh +45 -0
- package/deploy/release/deploy.sh +32 -0
- package/deployment.yaml +7 -2
- package/docker-compose.yml +31 -37
- 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 +104 -43
- package/hardhat/package.json +3 -3
- package/manifests/alertmanager/deployment.yaml +81 -0
- package/manifests/blackbox-exporter/deployment.yaml +75 -0
- package/manifests/cronjobs/dd-cron/dd-cron-backup.yaml +36 -7
- package/manifests/cronjobs/dd-cron/dd-cron-vultr.yaml +77 -0
- package/manifests/deployment/dd-cyberia-development/deployment.yaml +7 -2
- package/manifests/deployment/dd-default-development/deployment.yaml +2 -2
- 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 +83 -10
- package/scripts/audit-selinux.sh +64 -0
- package/scripts/event-monitor.sh +56 -0
- package/scripts/gpu-diag.sh +0 -0
- package/scripts/ip-info.sh +0 -0
- package/scripts/k3s-node-setup.sh +30 -14
- package/scripts/kubeadm-node-setup.sh +40 -31
- package/scripts/lxd-vm-setup.sh +0 -0
- package/scripts/maas-nat-firewalld.sh +0 -0
- package/scripts/maas-setup.sh +8 -8
- package/scripts/nat-iptables.sh +2 -0
- package/scripts/rhel-grpc-setup.sh +0 -0
- package/scripts/rocky-kickstart.sh +25 -9
- package/scripts/selinux-normalize.sh +907 -0
- package/scripts/shutdown-machine.sh +843 -0
- package/scripts/test-monitor.sh +3 -3
- package/src/api/atlas-sprite-sheet/atlas-sprite-sheet.controller.js +1 -1
- package/src/api/atlas-sprite-sheet/atlas-sprite-sheet.router.js +2 -2
- package/src/api/atlas-sprite-sheet/atlas-sprite-sheet.service.js +2 -2
- 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 +1 -1
- package/src/api/cyberia-action/cyberia-action.service.js +2 -2
- package/src/api/cyberia-client-hints/cyberia-client-hints.controller.js +1 -1
- package/src/api/cyberia-client-hints/cyberia-client-hints.router.js +1 -1
- package/src/api/cyberia-client-hints/cyberia-client-hints.service.js +2 -2
- package/src/api/cyberia-dialogue/cyberia-dialogue.controller.js +1 -1
- package/src/api/cyberia-dialogue/cyberia-dialogue.router.js +1 -1
- 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.router.js +1 -1
- package/src/api/cyberia-entity/cyberia-entity.service.js +2 -2
- package/src/api/cyberia-entity-type-default/cyberia-entity-type-default.controller.js +1 -1
- package/src/api/cyberia-entity-type-default/cyberia-entity-type-default.router.js +1 -1
- package/src/api/cyberia-entity-type-default/cyberia-entity-type-default.service.js +2 -2
- package/src/api/cyberia-instance/cyberia-fallback-capture.js +466 -0
- package/src/api/cyberia-instance/cyberia-fallback-default-items.js +63 -0
- package/src/api/cyberia-instance/cyberia-fallback-world.js +16 -1
- package/src/api/cyberia-instance/cyberia-instance-map.service.js +1 -1
- package/src/api/cyberia-instance/cyberia-instance.controller.js +4 -1
- package/src/api/cyberia-instance/cyberia-instance.router.js +15 -2
- package/src/api/cyberia-instance/cyberia-instance.service.js +45 -2
- package/src/api/cyberia-instance-conf/cyberia-instance-conf.controller.js +1 -1
- package/src/api/cyberia-instance-conf/cyberia-instance-conf.model.js +1 -0
- package/src/api/cyberia-instance-conf/cyberia-instance-conf.router.js +1 -1
- package/src/api/cyberia-instance-conf/cyberia-instance-conf.service.js +2 -2
- 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 +2 -2
- package/src/api/cyberia-quest/cyberia-quest.controller.js +1 -1
- package/src/api/cyberia-quest/cyberia-quest.router.js +1 -1
- package/src/api/cyberia-quest/cyberia-quest.service.js +2 -2
- package/src/api/cyberia-quest-progress/cyberia-quest-progress.controller.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 +16 -29
- package/src/api/cyberia-skill/cyberia-skill.controller.js +1 -1
- 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.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 +204 -3
- package/src/api/object-layer/object-layer.router.js +2 -2
- package/src/api/object-layer/object-layer.service.js +4 -17
- 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 +391 -0
- package/src/cli/baremetal.js +30 -36
- package/src/cli/client.js +306 -0
- package/src/cli/cloud-init.js +3 -3
- package/src/cli/cluster.js +242 -135
- package/src/cli/db.js +126 -67
- package/src/cli/deploy.js +158 -60
- 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.js +3 -3
- package/src/cli/host.js +672 -0
- package/src/cli/image.js +4 -7
- package/src/cli/index.js +426 -134
- 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 +73 -34
- package/src/cli/repository.js +564 -367
- package/src/cli/run.js +362 -654
- package/src/cli/secrets.js +2158 -964
- package/src/cli/ssh.js +651 -331
- package/src/cli/state.js +394 -0
- package/src/cli/static.js +2 -2
- package/src/cli/system.js +26 -13
- package/src/cli/test.js +199 -125
- package/src/cli/vultr.js +623 -0
- package/src/cli/wireguard.js +2930 -0
- package/src/client/components/core/CalendarCore.js +53 -96
- package/src/client/components/core/Docs.js +258 -211
- package/src/client/components/core/FileExplorer.js +0 -21
- 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/FallbackWorldEngineCyberia.js +368 -0
- package/src/client/components/cyberia-portal/AppShellCyberiaPortal.js +35 -1
- package/src/client/components/cyberia-portal/RouterCyberiaPortal.js +4 -0
- package/src/client/components/cyberia-portal/SettingsCyberiaPortal.js +2 -2
- package/src/client/components/cyberia-portal/TranslateCyberiaPortal.js +4 -0
- 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 +17 -3
- package/src/client/public/cyberia-docs/CYBERIA-CLI.md +32 -5
- package/src/client/public/cyberia-docs/CYBERIA-SERVER.md +1 -1
- package/src/client/public/cyberia-docs/CYBERIA.md +21 -1
- 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/WHITE-PAPER.md +1 -1
- 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-instance/cyberia-instance.service.js +40 -0
- package/src/client/services/object-layer/object-layer.management.js +4 -4
- 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 +61 -46
- package/src/client-builder/client-build-live.js +2 -2
- package/src/client-builder/client-build.js +58 -44
- 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/MongooseDB.js +11 -8
- package/src/{server/valkey.js → db/valkey/Valkey.js} +5 -4
- package/src/grpc/cyberia/grpc-server.js +1 -1
- package/src/index.js +103 -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 +1 -1
- package/src/projects/cyberia/besu-genesis-generator.js +3 -3
- package/src/projects/cyberia/catalog-cyberia.js +54 -6
- package/src/projects/cyberia/gemini-client.js +1 -1
- package/src/projects/cyberia/generate-saga.js +15 -24
- package/src/projects/cyberia/hot-reload-trigger.js +1 -1
- package/src/projects/cyberia/instance-data.js +22 -3
- package/src/projects/cyberia/ipfs-client.js +4 -4
- package/src/projects/cyberia/map-preview-generator.js +1 -1
- package/src/projects/cyberia/object-layer.js +12 -22
- package/src/projects/cyberia/semantic-layer-generator.js +1 -1
- package/src/projects/underpost/catalog-underpost.js +13 -2
- package/src/proxy.js +4 -7
- package/src/runtime/cyberia-client/Dockerfile +9 -4
- package/src/runtime/cyberia-client/Dockerfile.dev +8 -2
- package/src/runtime/cyberia-server/Dockerfile +9 -4
- package/src/runtime/cyberia-server/Dockerfile.dev +8 -2
- package/src/runtime/engine-cyberia/Dockerfile +25 -9
- package/src/runtime/engine-cyberia/Dockerfile.dev +25 -9
- package/src/runtime/engine-cyberia/Dockerfile.test +4 -4
- package/src/runtime/engine-cyberia/compose.env +16 -0
- package/src/runtime/engine-cyberia/docker-compose.yml +31 -37
- 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 +117 -0
- package/src/server/build/execution.js +402 -0
- package/src/server/build/package.js +465 -0
- package/src/server/build/testing.js +528 -0
- package/src/server/{dns.js → network/dns.js} +241 -14
- package/src/server/network/forward-proxy.js +541 -0
- package/src/server/{middlewares.js → network/middlewares.js} +59 -4
- 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/network/underpost-compression.js +186 -0
- package/src/server/{underpost-gateway.js → network/underpost-gateway.js} +26 -16
- package/src/server/{underpost-ingress.js → network/underpost-ingress.js} +19 -3
- package/src/server/{cri.js → ops/cri.js} +2 -2
- package/src/server/ops/cron.js +949 -0
- package/src/server/ops/event-notification.js +284 -0
- package/src/server/{logger.js → ops/logger.js} +108 -23
- package/src/server/ops/monitoring.js +1724 -0
- package/src/server/ops/systemd.js +259 -0
- package/src/server/{conf.js → runtime/conf.js} +521 -520
- 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 -13
- 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/security/selinux.js +185 -0
- package/src/server/{backup.js → storage/backup.js} +17 -8
- package/src/server/{data-query.js → storage/data-query.js} +1 -1
- package/src/server/{downloader.js → storage/downloader.js} +2 -2
- package/src/server/storage/repository.js +68 -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/cyberia-cli-plain-reads.test.js +30 -0
- package/test/{cyberia-instance-conf-defaults.test.js → integration/app/cyberia/cyberia-instance-conf-defaults.test.js} +2 -1
- package/test/integration/app/cyberia/cyberia-load.test.js +467 -0
- package/test/integration/app/cyberia/fallback-world-capture.test.js +253 -0
- package/test/integration/app/cyberia/object-layer-item-id.test.js +327 -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/integration/infra/1-security/selinux.test.js +69 -0
- 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 +1163 -0
- package/test/integration/infra/2-network/wireguard-edge.test.js +1731 -0
- 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/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} +47 -6
- package/test/{underpost-ingress.test.js → integration/infra/4-ingress/underpost-ingress.test.js} +56 -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 +334 -0
- package/test/unit/conf-loading.test.js +303 -0
- package/test/unit/conf-resolution.test.js +979 -0
- package/test/unit/coverage-artifact.test.js +130 -0
- package/test/{crypto.test.js → unit/crypto.test.js} +1 -1
- package/test/unit/deploy-env-resolution.test.js +38 -0
- package/test/unit/deploy-log-table.test.js +447 -0
- package/test/unit/execution-profiles.test.js +219 -0
- package/test/unit/fleet-sync-source.test.js +149 -0
- package/test/unit/logger-redaction.test.js +112 -0
- package/test/unit/package.test.js +403 -0
- package/test/unit/prepare-host.test.js +299 -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 +193 -0
- package/vitest.config.js +58 -0
- package/.nycrc +0 -9
- package/manifests/cronjobs/dd-cron/dd-cron-dns.yaml +0 -48
- package/manifests/mongodb/pv-pvc.yaml +0 -59
- package/scripts/link-local-underpost-cli.sh +0 -6
- 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/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/cron.js +0 -476
package/.dockerignore
CHANGED
package/.env.example
CHANGED
|
@@ -70,6 +70,22 @@ CYBERIA_DEFAULT_INSTANCE=amethyst-strata-expansion
|
|
|
70
70
|
CYBERIA_SERVER_APP_ENV=development
|
|
71
71
|
CYBERIA_SERVER_LOG_LEVEL=
|
|
72
72
|
|
|
73
|
+
# --- cyberia-server WebSocket admission and rate limits ----------------------
|
|
74
|
+
# Unset keeps the built-in default. An explicit 0 turns that one limit off.
|
|
75
|
+
# The startup log prints the effective profile ("ws limits: ...").
|
|
76
|
+
#
|
|
77
|
+
# Set CYBERIA_DISABLE_CONNECTION_LIMITS=1 to turn every limit off. The load test
|
|
78
|
+
# (test/cyberia-load.test.js) drives every simulated client from one address, so
|
|
79
|
+
# it needs this. NEVER enable it on a public deploy.
|
|
80
|
+
CYBERIA_DISABLE_CONNECTION_LIMITS=
|
|
81
|
+
CYBERIA_MAX_CONNECTIONS=
|
|
82
|
+
CYBERIA_MAX_CONNECTIONS_PER_IP=
|
|
83
|
+
CYBERIA_CONNECT_RATE_PER_IP=
|
|
84
|
+
CYBERIA_CONNECT_BURST_PER_IP=
|
|
85
|
+
CYBERIA_MESSAGE_RATE=
|
|
86
|
+
CYBERIA_MESSAGE_BURST=
|
|
87
|
+
CYBERIA_MAX_STRIKES=
|
|
88
|
+
|
|
73
89
|
# --- engine-cyberia runtime env (loaded into the container via env_file) -----
|
|
74
90
|
# The dd-cyberia engine (engine-private/conf/dd-cyberia/conf.server.json) needs
|
|
75
91
|
# these to boot: DB auth + per-site DB names, the base PORT (the cyberia host is
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
name: CI | Coverall Cyberia
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
branches: ['master', 'main']
|
|
6
|
+
pull_request:
|
|
7
|
+
branches: ['master', 'main']
|
|
8
|
+
|
|
9
|
+
jobs:
|
|
10
|
+
test:
|
|
11
|
+
name: Coverall Cyberia Test
|
|
12
|
+
# Deliberately not the engine repository: two coverage workflows on one commit
|
|
13
|
+
# are two Coveralls builds, and the badge then shows whichever landed last
|
|
14
|
+
# rather than the tree's coverage. The engine is served by coverall.ci.yml.
|
|
15
|
+
if: |
|
|
16
|
+
github.actor != 'dependabot[bot]' &&
|
|
17
|
+
(github.repository == 'underpostnet/engine-cyberia' ||
|
|
18
|
+
github.repository == 'underpostnet/engine-ghpkg-cyberia' ||
|
|
19
|
+
github.repository == 'underpostnet/engine-test-cyberia')
|
|
20
|
+
runs-on: ubuntu-latest
|
|
21
|
+
container:
|
|
22
|
+
image: quay.io/rockylinux/rockylinux:9
|
|
23
|
+
steps:
|
|
24
|
+
- name: Clone repository
|
|
25
|
+
uses: actions/checkout@v7
|
|
26
|
+
|
|
27
|
+
- name: Install required packages
|
|
28
|
+
run: |
|
|
29
|
+
dnf install -y sudo tar gzip bzip2 git bash
|
|
30
|
+
dnf install -y curl --allowerasing
|
|
31
|
+
|
|
32
|
+
- name: Install Node.js
|
|
33
|
+
run: |
|
|
34
|
+
curl -fsSL https://rpm.nodesource.com/setup_24.x | bash -
|
|
35
|
+
dnf install nodejs -y
|
|
36
|
+
|
|
37
|
+
- name: Install project dependencies
|
|
38
|
+
run: npm install
|
|
39
|
+
|
|
40
|
+
# Set the COVERAGE_MIN repository variable to gate below the shipped
|
|
41
|
+
# default while the suite is catching up to it.
|
|
42
|
+
- name: Run tests and enforce coverage threshold
|
|
43
|
+
run: COVERAGE_ENFORCE=1 node bin test unit,infra,app,cyberia
|
|
44
|
+
env:
|
|
45
|
+
COVERAGE_MIN: ${{ vars.COVERAGE_MIN }}
|
|
46
|
+
|
|
47
|
+
# Stored even when the threshold step failed — that step still fails the
|
|
48
|
+
# job, but without the report the badge freezes at the last passing build.
|
|
49
|
+
- name: Store coverage report
|
|
50
|
+
if: '!cancelled()'
|
|
51
|
+
uses: actions/upload-artifact@v7
|
|
52
|
+
with:
|
|
53
|
+
name: coverall-cyberia-lcov
|
|
54
|
+
path: ./coverage/lcov.info
|
|
55
|
+
if-no-files-found: error
|
|
56
|
+
|
|
57
|
+
upload:
|
|
58
|
+
name: Upload Cyberia Coverage to Coveralls
|
|
59
|
+
needs: test
|
|
60
|
+
# Host runner, not the Rocky container the suite runs in: every step of the
|
|
61
|
+
# Coveralls action declares `shell: bash`, which the runner execs inside the
|
|
62
|
+
# job container and cannot resolve there.
|
|
63
|
+
if: |
|
|
64
|
+
!cancelled() &&
|
|
65
|
+
github.actor != 'dependabot[bot]' &&
|
|
66
|
+
(github.repository == 'underpostnet/engine-cyberia' ||
|
|
67
|
+
github.repository == 'underpostnet/engine-ghpkg-cyberia' ||
|
|
68
|
+
github.repository == 'underpostnet/engine-test-cyberia')
|
|
69
|
+
runs-on: ubuntu-latest
|
|
70
|
+
steps:
|
|
71
|
+
# Coveralls reads the commit and branch metadata from the checkout.
|
|
72
|
+
- name: Clone repository
|
|
73
|
+
uses: actions/checkout@v7
|
|
74
|
+
|
|
75
|
+
- name: Restore coverage report
|
|
76
|
+
uses: actions/download-artifact@v8
|
|
77
|
+
with:
|
|
78
|
+
name: coverall-cyberia-lcov
|
|
79
|
+
path: ./coverage
|
|
80
|
+
|
|
81
|
+
- name: Upload coverage to Coveralls
|
|
82
|
+
uses: coverallsapp/github-action@v2
|
|
83
|
+
with:
|
|
84
|
+
github-token: ${{ secrets.GITHUB_TOKEN }}
|
|
85
|
+
file: ./coverage/lcov.info
|
|
86
|
+
format: lcov
|
|
87
|
+
parallel: true
|
|
88
|
+
fail-on-error: true
|
|
89
|
+
|
|
90
|
+
finish:
|
|
91
|
+
name: Finish Cyberia Coveralls build
|
|
92
|
+
needs: upload
|
|
93
|
+
# The build stays open until this webhook lands, so it runs on any upload
|
|
94
|
+
# outcome rather than leaving a half-reported build behind.
|
|
95
|
+
if: |
|
|
96
|
+
!cancelled() &&
|
|
97
|
+
github.actor != 'dependabot[bot]' &&
|
|
98
|
+
(github.repository == 'underpostnet/engine-cyberia' ||
|
|
99
|
+
github.repository == 'underpostnet/engine-ghpkg-cyberia' ||
|
|
100
|
+
github.repository == 'underpostnet/engine-test-cyberia')
|
|
101
|
+
runs-on: ubuntu-latest
|
|
102
|
+
steps:
|
|
103
|
+
- name: Notify Coveralls Finished
|
|
104
|
+
uses: coverallsapp/github-action@v2
|
|
105
|
+
with:
|
|
106
|
+
github-token: ${{ secrets.GITHUB_TOKEN }}
|
|
107
|
+
parallel-finished: true
|
|
@@ -32,21 +32,9 @@ jobs:
|
|
|
32
32
|
script: |
|
|
33
33
|
set -e
|
|
34
34
|
set -o pipefail
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
sudo -n -- /bin/bash -lc "node bin/build dd-cyberia --conf"
|
|
42
|
-
sudo -n -- /bin/bash -lc "kubectl wait --for=condition=Ready node/${TARGET_NODE} --timeout=2m"
|
|
43
|
-
sudo -n -- /bin/bash -lc "kubectl rollout status deployment/underpost-ingress -n default --timeout=5m"
|
|
44
|
-
sudo -n -- /bin/bash -lc "kubectl rollout status deployment/underpost-gateway -n default --timeout=5m"
|
|
45
|
-
sudo -n -- /bin/bash -lc "node bin run instance \
|
|
46
|
-
--kubeadm \
|
|
47
|
-
--gateway-api \
|
|
48
|
-
--image-pull-policy Always \
|
|
49
|
-
--node-name ${TARGET_NODE} \
|
|
50
|
-
--ingress-node ${INGRESS_NODE} \
|
|
51
|
-
--ssh-key-path /home/dd/tmp/897as9dxhaskd9 \
|
|
52
|
-
'dd-cyberia,mmo-client'"
|
|
35
|
+
# Carried across the SSH hop so the far side reports in GitHub Actions form:
|
|
36
|
+
# deploy/lib/github-actions-logging.sh folds its monitor frames into collapsed groups, and the
|
|
37
|
+
# state domain's telemetry export emits ::notice::/::error:: annotations this job
|
|
38
|
+
# surfaces. GITHUB_ACTIONS itself is a runner-local variable and does not travel.
|
|
39
|
+
export RUN_QUIET_CI=github
|
|
40
|
+
bash /home/dd/engine/deploy/cyberia-client/deploy.sh
|
|
@@ -32,21 +32,9 @@ jobs:
|
|
|
32
32
|
script: |
|
|
33
33
|
set -e
|
|
34
34
|
set -o pipefail
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
sudo -n -- /bin/bash -lc "node bin/build dd-cyberia --conf"
|
|
42
|
-
sudo -n -- /bin/bash -lc "kubectl wait --for=condition=Ready node/${TARGET_NODE} --timeout=2m"
|
|
43
|
-
sudo -n -- /bin/bash -lc "kubectl rollout status deployment/underpost-ingress -n default --timeout=5m"
|
|
44
|
-
sudo -n -- /bin/bash -lc "kubectl rollout status deployment/underpost-gateway -n default --timeout=5m"
|
|
45
|
-
sudo -n -- /bin/bash -lc "node bin run instance \
|
|
46
|
-
--kubeadm \
|
|
47
|
-
--gateway-api \
|
|
48
|
-
--image-pull-policy Always \
|
|
49
|
-
--node-name ${TARGET_NODE} \
|
|
50
|
-
--ingress-node ${INGRESS_NODE} \
|
|
51
|
-
--ssh-key-path /home/dd/tmp/897as9dxhaskd9 \
|
|
52
|
-
'dd-cyberia,mmo-server'"
|
|
35
|
+
# Carried across the SSH hop so the far side reports in GitHub Actions form:
|
|
36
|
+
# deploy/lib/github-actions-logging.sh folds its monitor frames into collapsed groups, and the
|
|
37
|
+
# state domain's telemetry export emits ::notice::/::error:: annotations this job
|
|
38
|
+
# surfaces. GITHUB_ACTIONS itself is a runner-local variable and does not travel.
|
|
39
|
+
export RUN_QUIET_CI=github
|
|
40
|
+
bash /home/dd/engine/deploy/cyberia-server/deploy.sh
|
|
@@ -4,7 +4,7 @@ on:
|
|
|
4
4
|
workflow_dispatch:
|
|
5
5
|
|
|
6
6
|
env:
|
|
7
|
-
UNDERPOST_VERSION: '3.
|
|
7
|
+
UNDERPOST_VERSION: '3.3.73'
|
|
8
8
|
|
|
9
9
|
jobs:
|
|
10
10
|
build-and-push:
|
|
@@ -34,9 +34,15 @@ jobs:
|
|
|
34
34
|
- name: Build cyberia-server SSR dashboard
|
|
35
35
|
working-directory: engine
|
|
36
36
|
run: |
|
|
37
|
-
node bin
|
|
37
|
+
node bin package dd-cyberia --install
|
|
38
38
|
node bin/cyberia run-workflow build-cyberia-404 --output-path ../assets/404/index.html
|
|
39
39
|
|
|
40
|
+
- name: Stage underpost CLI package
|
|
41
|
+
working-directory: engine
|
|
42
|
+
# Bakes the CLI into the runtime image from this checkout instead of the registry, so a
|
|
43
|
+
# starting pod never fetches it. The Dockerfiles COPY ../underpost-cli.tgz.
|
|
44
|
+
run: node bin/cyberia run-workflow stage-cli --output-path ..
|
|
45
|
+
|
|
40
46
|
- name: Set up Docker Buildx
|
|
41
47
|
uses: docker/setup-buildx-action@v4
|
|
42
48
|
|
|
@@ -65,7 +71,4 @@ jobs:
|
|
|
65
71
|
push: true
|
|
66
72
|
tags: ${{ steps.meta.outputs.tags }}
|
|
67
73
|
labels: ${{ steps.meta.outputs.labels }}
|
|
68
|
-
|
|
69
|
-
build-args: |
|
|
70
|
-
UNDERPOST_VERSION=${{ env.UNDERPOST_VERSION }}
|
|
71
74
|
BUILD_MODE=RELEASE
|
|
@@ -4,7 +4,7 @@ on:
|
|
|
4
4
|
workflow_dispatch:
|
|
5
5
|
|
|
6
6
|
env:
|
|
7
|
-
UNDERPOST_VERSION: '3.
|
|
7
|
+
UNDERPOST_VERSION: '3.3.73'
|
|
8
8
|
|
|
9
9
|
jobs:
|
|
10
10
|
build-and-push:
|
|
@@ -34,9 +34,15 @@ jobs:
|
|
|
34
34
|
- name: Build cyberia-server SSR dashboard
|
|
35
35
|
working-directory: engine
|
|
36
36
|
run: |
|
|
37
|
-
node bin
|
|
37
|
+
node bin package dd-cyberia --install
|
|
38
38
|
node bin/cyberia run-workflow build-cyberia-404 --output-path ../assets/404/index.html
|
|
39
39
|
|
|
40
|
+
- name: Stage underpost CLI package
|
|
41
|
+
working-directory: engine
|
|
42
|
+
# Bakes the CLI into the runtime image from this checkout instead of the registry, so a
|
|
43
|
+
# starting pod never fetches it. The Dockerfiles COPY ../underpost-cli.tgz.
|
|
44
|
+
run: node bin/cyberia run-workflow stage-cli --output-path ..
|
|
45
|
+
|
|
40
46
|
- name: Set up Docker Buildx
|
|
41
47
|
uses: docker/setup-buildx-action@v4
|
|
42
48
|
|
|
@@ -66,5 +72,4 @@ jobs:
|
|
|
66
72
|
tags: ${{ steps.meta.outputs.tags }}
|
|
67
73
|
labels: ${{ steps.meta.outputs.labels }}
|
|
68
74
|
build-args: |
|
|
69
|
-
UNDERPOST_VERSION=${{ env.UNDERPOST_VERSION }}
|
|
70
75
|
BUILD_MODE=DEBUG
|
|
@@ -4,7 +4,7 @@ on:
|
|
|
4
4
|
workflow_dispatch:
|
|
5
5
|
|
|
6
6
|
env:
|
|
7
|
-
UNDERPOST_VERSION: '3.
|
|
7
|
+
UNDERPOST_VERSION: '3.3.73'
|
|
8
8
|
|
|
9
9
|
jobs:
|
|
10
10
|
build-and-push:
|
|
@@ -34,10 +34,16 @@ jobs:
|
|
|
34
34
|
- name: Build cyberia-server SSR dashboard
|
|
35
35
|
working-directory: engine
|
|
36
36
|
run: |
|
|
37
|
-
node bin
|
|
37
|
+
node bin package dd-cyberia --install
|
|
38
38
|
node bin/cyberia run-workflow build-server-dashboard --output-path ../public/index.html
|
|
39
39
|
node bin/cyberia run-workflow build-cyberia-404 --output-path ../public/404/index.html
|
|
40
40
|
|
|
41
|
+
- name: Stage underpost CLI package
|
|
42
|
+
working-directory: engine
|
|
43
|
+
# Bakes the CLI into the runtime image from this checkout instead of the registry, so a
|
|
44
|
+
# starting pod never fetches it. The Dockerfiles COPY ../underpost-cli.tgz.
|
|
45
|
+
run: node bin/cyberia run-workflow stage-cli --output-path ..
|
|
46
|
+
|
|
41
47
|
- name: Set up Docker Buildx
|
|
42
48
|
uses: docker/setup-buildx-action@v4
|
|
43
49
|
|
|
@@ -66,6 +72,3 @@ jobs:
|
|
|
66
72
|
push: true
|
|
67
73
|
tags: ${{ steps.meta.outputs.tags }}
|
|
68
74
|
labels: ${{ steps.meta.outputs.labels }}
|
|
69
|
-
|
|
70
|
-
build-args: |
|
|
71
|
-
UNDERPOST_VERSION=${{ env.UNDERPOST_VERSION }}
|
|
@@ -4,7 +4,7 @@ on:
|
|
|
4
4
|
workflow_dispatch:
|
|
5
5
|
|
|
6
6
|
env:
|
|
7
|
-
UNDERPOST_VERSION: '3.
|
|
7
|
+
UNDERPOST_VERSION: '3.3.73'
|
|
8
8
|
|
|
9
9
|
jobs:
|
|
10
10
|
build-and-push:
|
|
@@ -34,10 +34,16 @@ jobs:
|
|
|
34
34
|
- name: Build cyberia-server SSR dashboard (dev)
|
|
35
35
|
working-directory: engine
|
|
36
36
|
run: |
|
|
37
|
-
node bin
|
|
37
|
+
node bin package dd-cyberia --install
|
|
38
38
|
node bin/cyberia run-workflow build-server-dashboard --dev --output-path ../public/index.html
|
|
39
39
|
node bin/cyberia run-workflow build-cyberia-404 --output-path ../public/404/index.html
|
|
40
40
|
|
|
41
|
+
- name: Stage underpost CLI package
|
|
42
|
+
working-directory: engine
|
|
43
|
+
# Bakes the CLI into the runtime image from this checkout instead of the registry, so a
|
|
44
|
+
# starting pod never fetches it. The Dockerfiles COPY ../underpost-cli.tgz.
|
|
45
|
+
run: node bin/cyberia run-workflow stage-cli --output-path ..
|
|
46
|
+
|
|
41
47
|
- name: Set up Docker Buildx
|
|
42
48
|
uses: docker/setup-buildx-action@v4
|
|
43
49
|
|
|
@@ -66,6 +72,3 @@ jobs:
|
|
|
66
72
|
push: true
|
|
67
73
|
tags: ${{ steps.meta.outputs.tags }}
|
|
68
74
|
labels: ${{ steps.meta.outputs.labels }}
|
|
69
|
-
|
|
70
|
-
build-args: |
|
|
71
|
-
UNDERPOST_VERSION=${{ env.UNDERPOST_VERSION }}
|
|
@@ -4,7 +4,7 @@ on:
|
|
|
4
4
|
workflow_dispatch:
|
|
5
5
|
|
|
6
6
|
env:
|
|
7
|
-
UNDERPOST_VERSION: '3.
|
|
7
|
+
UNDERPOST_VERSION: '3.3.73'
|
|
8
8
|
|
|
9
9
|
jobs:
|
|
10
10
|
build-and-push:
|
|
@@ -16,6 +16,20 @@ jobs:
|
|
|
16
16
|
steps:
|
|
17
17
|
- uses: actions/checkout@v7
|
|
18
18
|
|
|
19
|
+
- name: Setup Node.js
|
|
20
|
+
uses: actions/setup-node@v7
|
|
21
|
+
with:
|
|
22
|
+
node-version: '24.x'
|
|
23
|
+
|
|
24
|
+
- name: Install engine dependencies
|
|
25
|
+
run: npm ci --ignore-scripts
|
|
26
|
+
|
|
27
|
+
- name: Stage underpost CLI package
|
|
28
|
+
# Bakes the CLI into the image from this checkout instead of the registry, so a starting
|
|
29
|
+
# pod never fetches it. The Dockerfiles COPY underpost-cli.tgz from the build context,
|
|
30
|
+
# which for this workflow is the repository root.
|
|
31
|
+
run: node bin/cyberia run-workflow stage-cli --output-path .
|
|
32
|
+
|
|
19
33
|
- name: Set up Docker Buildx
|
|
20
34
|
uses: docker/setup-buildx-action@v4
|
|
21
35
|
|
|
@@ -4,7 +4,7 @@ on:
|
|
|
4
4
|
workflow_dispatch:
|
|
5
5
|
|
|
6
6
|
env:
|
|
7
|
-
UNDERPOST_VERSION: '3.
|
|
7
|
+
UNDERPOST_VERSION: '3.3.73'
|
|
8
8
|
|
|
9
9
|
jobs:
|
|
10
10
|
build-and-push:
|
|
@@ -16,6 +16,20 @@ jobs:
|
|
|
16
16
|
steps:
|
|
17
17
|
- uses: actions/checkout@v7
|
|
18
18
|
|
|
19
|
+
- name: Setup Node.js
|
|
20
|
+
uses: actions/setup-node@v7
|
|
21
|
+
with:
|
|
22
|
+
node-version: '24.x'
|
|
23
|
+
|
|
24
|
+
- name: Install engine dependencies
|
|
25
|
+
run: npm ci --ignore-scripts
|
|
26
|
+
|
|
27
|
+
- name: Stage underpost CLI package
|
|
28
|
+
# Bakes the CLI into the image from this checkout instead of the registry, so a starting
|
|
29
|
+
# pod never fetches it. The Dockerfiles COPY underpost-cli.tgz from the build context,
|
|
30
|
+
# which for this workflow is the repository root.
|
|
31
|
+
run: node bin/cyberia run-workflow stage-cli --output-path .
|
|
32
|
+
|
|
19
33
|
- name: Set up Docker Buildx
|
|
20
34
|
uses: docker/setup-buildx-action@v4
|
|
21
35
|
|
|
@@ -40,13 +40,8 @@ jobs:
|
|
|
40
40
|
script: |
|
|
41
41
|
set -e
|
|
42
42
|
set -o pipefail
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
cd /home/dd/engine
|
|
46
|
-
sudo -n -- /bin/bash -lc "node bin run pull"
|
|
47
|
-
sudo -n -- /bin/bash -lc "npm install"
|
|
48
|
-
sudo -n -- /bin/bash -lc "node bin run secret"
|
|
49
|
-
sudo -n -- /bin/bash -lc "node bin run deploy dd-cyberia --gateway-api --ingress-node ${INGRESS_NODE}"
|
|
43
|
+
export RUN_QUIET_CI=github
|
|
44
|
+
bash /home/dd/engine/deploy/dd-cyberia/deploy.sh
|
|
50
45
|
sync-and-deploy:
|
|
51
46
|
if: github.event.inputs.job == 'sync-and-deploy'
|
|
52
47
|
name: Remote SSH sync and deploy
|
|
@@ -71,67 +66,8 @@ jobs:
|
|
|
71
66
|
script: |
|
|
72
67
|
set -e
|
|
73
68
|
set -o pipefail
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
INGRESS_NODE=localhost.localdomain
|
|
77
|
-
cd /home/dd/engine
|
|
78
|
-
sudo -n -- /bin/bash -lc "node bin run pull"
|
|
79
|
-
sudo -n -- /bin/bash -lc "npm install"
|
|
80
|
-
sudo -n -- /bin/bash -lc "node bin run secret"
|
|
81
|
-
sudo -n -- /bin/bash -lc "npm run test"
|
|
82
|
-
sudo -n -- /bin/bash -lc "node bin run clean src/client/public/cyberia"
|
|
83
|
-
sudo -n -- /bin/bash -lc "node bin run clean src/client/public/underpost"
|
|
84
|
-
sudo -n -- /bin/bash -lc "node bin cmt src/client/public/cyberia --init-repo"
|
|
85
|
-
sudo -n -- /bin/bash -lc "node bin cmt src/client/public/underpost --init-repo"
|
|
86
|
-
sudo -n -- /bin/bash -lc "node bin fs src/client/public/cyberia --pull --recursive --deploy-id dd-cyberia"
|
|
87
|
-
sudo -n -- /bin/bash -lc "node bin fs src/client/public/underpost --pull --recursive --deploy-id dd-cyberia --storage-file-path './engine-private/conf/dd-cyberia/storage.underpost.json'"
|
|
88
|
-
CHANGES_CYBERIA=$(sudo -n -- /bin/bash -lc "node bin cmt src/client/public/cyberia --has-changes" | tr -d '\n')
|
|
89
|
-
if [ "$CHANGES_CYBERIA" = "1" ]; then
|
|
90
|
-
sudo -n -- /bin/bash -lc "node bin cmt src/client/public/cyberia feat 'Update cyberia public assets'"
|
|
91
|
-
fi
|
|
92
|
-
CHANGES_UNDERPOST=$(sudo -n -- /bin/bash -lc "node bin cmt src/client/public/underpost --has-changes" | tr -d '\n')
|
|
93
|
-
if [ "$CHANGES_UNDERPOST" = "1" ]; then
|
|
94
|
-
sudo -n -- /bin/bash -lc "node bin cmt src/client/public/underpost feat 'Update underpost public assets'"
|
|
95
|
-
fi
|
|
96
|
-
sudo -n -- /bin/bash -lc "npm run fix"
|
|
97
|
-
sudo -n -- /bin/bash -lc "npm install"
|
|
98
|
-
sudo -n -- /bin/bash -lc "node bin/deploy cyberia"
|
|
99
|
-
sudo -n -- /bin/bash -lc "underpost run clean"
|
|
100
|
-
sudo -n -- /bin/bash -lc "node bin env dd-cyberia production"
|
|
101
|
-
sudo -n -- /bin/bash -lc "node bin/cyberia run-workflow build-manifest"
|
|
102
|
-
sudo -n -- /bin/bash -lc "node bin run sync 'dd-cyberia,1,,underpost/engine-cyberia:latest' \
|
|
103
|
-
--kubeadm \
|
|
104
|
-
--deploy-id-cron-jobs none \
|
|
105
|
-
--timeout-response 300000ms \
|
|
106
|
-
--node-name ${TARGET_NODE} \
|
|
107
|
-
--gateway-api \
|
|
108
|
-
--ingress-node ${INGRESS_NODE} \
|
|
109
|
-
--ssh-key-path /home/dd/tmp/897as9dxhaskd9 \
|
|
110
|
-
--image-pull-policy Always \
|
|
111
|
-
--cmd 'cd /home/dd/engine, \
|
|
112
|
-
underpost clone underpostnet/engine-cyberia, \
|
|
113
|
-
mkdir -p /home/dd/engine/src/client/public/itemledger \
|
|
114
|
-
/home/dd/engine/src/client/public/cryptokoyn \
|
|
115
|
-
/home/dd/engine/src/client/components/cryptokoyn \
|
|
116
|
-
/home/dd/engine/src/client/components/itemledger \
|
|
117
|
-
/home/dd/engine/hardhat, \
|
|
118
|
-
cp -a ./engine-cyberia/src/client/public/itemledger/. /home/dd/engine/src/client/public/itemledger/, \
|
|
119
|
-
cp -a ./engine-cyberia/src/client/public/cryptokoyn/. /home/dd/engine/src/client/public/cryptokoyn/, \
|
|
120
|
-
cp -a ./engine-cyberia/src/client/components/cryptokoyn/. /home/dd/engine/src/client/components/cryptokoyn/, \
|
|
121
|
-
cp -a ./engine-cyberia/src/client/components/itemledger/. /home/dd/engine/src/client/components/itemledger/, \
|
|
122
|
-
cp -a ./engine-cyberia/src/client/Itemledger.index.js /home/dd/engine/src/client/Itemledger.index.js, \
|
|
123
|
-
cp -a ./engine-cyberia/src/client/Cryptokoyn.index.js /home/dd/engine/src/client/Cryptokoyn.index.js, \
|
|
124
|
-
rm -rf ./engine-cyberia, \
|
|
125
|
-
sudo rm -rf ./engine-private/, \
|
|
126
|
-
node bin clone underpostnet/engine-cyberia-private, \
|
|
127
|
-
sudo mv ./engine-cyberia-private ./engine-private, \
|
|
128
|
-
node bin env dd-cyberia production, \
|
|
129
|
-
node ./engine-private/itc-scripts/dd-cyberia-0.js, \
|
|
130
|
-
sudo chown -R dd:dd /home/dd/engine/src/client/public/cyberia, \
|
|
131
|
-
node bin/cyberia run-workflow import-default-items, \
|
|
132
|
-
node bin env dd-cyberia production, \
|
|
133
|
-
node bin client dd-cyberia, \
|
|
134
|
-
node bin start dd-cyberia production --run'"
|
|
69
|
+
export RUN_QUIET_CI=github
|
|
70
|
+
bash /home/dd/engine/deploy/dd-cyberia/sync-deploy.sh
|
|
135
71
|
init:
|
|
136
72
|
if: github.event.inputs.job == 'init'
|
|
137
73
|
name: Remote SSH init deployment
|
|
@@ -156,13 +92,5 @@ jobs:
|
|
|
156
92
|
script: |
|
|
157
93
|
set -e
|
|
158
94
|
set -o pipefail
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
cd /home/dd/engine
|
|
162
|
-
sudo -n -- /bin/bash -lc "node bin run pull"
|
|
163
|
-
sudo -n -- /bin/bash -lc "npm install"
|
|
164
|
-
sudo -n -- /bin/bash -lc "node bin run secret"
|
|
165
|
-
sudo -n -- /bin/bash -lc "node bin/build dd-cyberia --conf"
|
|
166
|
-
sudo -n -- /bin/bash -lc "node bin deploy dd-cyberia production --kubeadm --gateway-api --ingress-node ${INGRESS_NODE} --sync --build-manifest --timeout-response 300000ms --versions green --replicas 1"
|
|
167
|
-
sudo -n -- /bin/bash -lc "node bin deploy dd-cyberia production --kubeadm --gateway-api --ingress-node ${INGRESS_NODE} --disable-update-proxy --git-clean"
|
|
168
|
-
sudo -n -- /bin/bash -lc "node bin monitor dd-cyberia production --ready-deployment --promote --timeout-response 300000ms --versions green --replicas 1"
|
|
95
|
+
export RUN_QUIET_CI=github
|
|
96
|
+
bash /home/dd/engine/deploy/dd-cyberia/init.sh
|
|
@@ -62,13 +62,12 @@ jobs:
|
|
|
62
62
|
env:
|
|
63
63
|
GITHUB_TOKEN: ${{ secrets.GIT_AUTH_TOKEN }}
|
|
64
64
|
GITHUB_USERNAME: ${{ github.repository_owner }}
|
|
65
|
+
# Never interpolated into the script: the propagated payload is multi-line and a shell
|
|
66
|
+
# expansion would corrupt entries holding `$` and execute anything in `$(...)`.
|
|
67
|
+
PROPAGATED_MESSAGE: ${{ github.event.inputs.message }}
|
|
65
68
|
run: |
|
|
66
69
|
cd .. && node engine/bin clone underpostnet/pwa-microservices-template
|
|
67
|
-
|
|
68
|
-
LAST_COMMIT_MESSAGE="${{ github.event.inputs.message }}"
|
|
69
|
-
else
|
|
70
|
-
LAST_COMMIT_MESSAGE=$(cd engine && node bin cmt --changelog-msg --from-n-commit 1 --changelog-no-hash 2>/dev/null || echo "")
|
|
71
|
-
fi
|
|
70
|
+
LAST_COMMIT_MESSAGE=$(cd engine && node bin cmt --propagate-msg 2>/dev/null || echo "")
|
|
72
71
|
SHOULD_CD="${{ github.event.inputs.sync }}"
|
|
73
72
|
DEPLOY_TYPE="${{ github.event.inputs.deploy_type }}"
|
|
74
73
|
if [ -z "$LAST_COMMIT_MESSAGE" ]; then
|
|
@@ -20,7 +20,13 @@ permissions:
|
|
|
20
20
|
id-token: write
|
|
21
21
|
jobs:
|
|
22
22
|
pwa-microservices-template-ghpk:
|
|
23
|
-
if:
|
|
23
|
+
if: >-
|
|
24
|
+
github.repository == 'underpostnet/pwa-microservices-template' &&
|
|
25
|
+
(
|
|
26
|
+
startsWith(github.event.head_commit.message, 'ci(package-pwa-microservices-template-ghpkg)')
|
|
27
|
+
||
|
|
28
|
+
github.event_name == 'workflow_dispatch'
|
|
29
|
+
)
|
|
24
30
|
name: Update github repo package Jobs
|
|
25
31
|
runs-on: ubuntu-latest
|
|
26
32
|
container:
|
|
@@ -42,20 +48,30 @@ jobs:
|
|
|
42
48
|
curl -fsSL https://rpm.nodesource.com/setup_24.x | bash -
|
|
43
49
|
dnf install nodejs -y
|
|
44
50
|
|
|
45
|
-
- name: Capture commit message
|
|
46
|
-
run: |
|
|
47
|
-
FULL_MSG="${{ github.event.head_commit.message }}"
|
|
48
|
-
LAST_COMMIT_MESSAGE="${FULL_MSG:-update package}"
|
|
49
|
-
echo "LAST_COMMIT_MESSAGE<<EOF" >> $GITHUB_ENV
|
|
50
|
-
echo "$LAST_COMMIT_MESSAGE" >> $GITHUB_ENV
|
|
51
|
-
echo "EOF" >> $GITHUB_ENV
|
|
52
|
-
echo "[INFO] Commit message: $LAST_COMMIT_MESSAGE"
|
|
53
|
-
|
|
54
51
|
- name: Install dependencies and set repo configuration
|
|
55
52
|
run: |
|
|
56
53
|
npm install
|
|
57
|
-
node ./bin
|
|
58
|
-
node ./bin
|
|
54
|
+
node ./bin package --rename @underpostnet/underpost
|
|
55
|
+
node ./bin package --set-repo underpostnet/pwa-microservices-template-ghpkg
|
|
56
|
+
|
|
57
|
+
# Placed after the install because it resolves the payload through the CLI, which needs the
|
|
58
|
+
# dependencies. The push that triggers this job carries the payload the engine propagated.
|
|
59
|
+
- name: Capture commit message
|
|
60
|
+
env:
|
|
61
|
+
# Never interpolated into the script: the propagated payload is multi-line and a shell
|
|
62
|
+
# expansion would corrupt entries holding `$` and execute anything in `$(...)`.
|
|
63
|
+
PROPAGATED_MESSAGE: ${{ github.event.head_commit.message }}
|
|
64
|
+
run: |
|
|
65
|
+
LAST_COMMIT_MESSAGE=$(node ./bin cmt --propagate-msg 2>/dev/null || echo "")
|
|
66
|
+
if [ -z "$LAST_COMMIT_MESSAGE" ]; then
|
|
67
|
+
LAST_COMMIT_MESSAGE="update package"
|
|
68
|
+
fi
|
|
69
|
+
{
|
|
70
|
+
echo "LAST_COMMIT_MESSAGE<<PROPAGATION_EOF"
|
|
71
|
+
echo "$LAST_COMMIT_MESSAGE"
|
|
72
|
+
echo "PROPAGATION_EOF"
|
|
73
|
+
} >> $GITHUB_ENV
|
|
74
|
+
echo "[INFO] Commit message: $LAST_COMMIT_MESSAGE"
|
|
59
75
|
|
|
60
76
|
- name: Set git global credentials
|
|
61
77
|
run: |
|
|
@@ -118,15 +134,20 @@ jobs:
|
|
|
118
134
|
echo "[INFO] Canonical github package repo: underpostnet/engine-ghpkg-$CONF_ID"
|
|
119
135
|
|
|
120
136
|
- name: Capture commit message
|
|
137
|
+
env:
|
|
138
|
+
# Never interpolated into the script: the propagated payload is multi-line and a shell
|
|
139
|
+
# expansion would corrupt entries holding `$` and execute anything in `$(...)`.
|
|
140
|
+
PROPAGATED_MESSAGE: ${{ github.event.inputs.message }}
|
|
121
141
|
run: |
|
|
122
|
-
|
|
123
|
-
if [ -z "$
|
|
124
|
-
|
|
142
|
+
LAST_COMMIT_MESSAGE=$(node bin cmt --propagate-msg 2>/dev/null || echo "")
|
|
143
|
+
if [ -z "$LAST_COMMIT_MESSAGE" ]; then
|
|
144
|
+
LAST_COMMIT_MESSAGE="Update canonical github package repo"
|
|
125
145
|
fi
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
146
|
+
{
|
|
147
|
+
echo "LAST_COMMIT_MESSAGE<<PROPAGATION_EOF"
|
|
148
|
+
echo "$LAST_COMMIT_MESSAGE"
|
|
149
|
+
echo "PROPAGATION_EOF"
|
|
150
|
+
} >> $GITHUB_ENV
|
|
130
151
|
echo "[INFO] Commit message: $LAST_COMMIT_MESSAGE"
|
|
131
152
|
|
|
132
153
|
- name: Set git global credentials
|
|
@@ -146,8 +167,8 @@ jobs:
|
|
|
146
167
|
cd engine-$CONF_ID
|
|
147
168
|
rm -rf ./.git
|
|
148
169
|
mv ../$GHPKG_REPO.git ./.git
|
|
149
|
-
node ../engine/bin
|
|
150
|
-
node ../engine/bin
|
|
170
|
+
node ../engine/bin package --rename "$PACKAGE_NAME"
|
|
171
|
+
node ../engine/bin package --set-repo underpostnet/$GHPKG_REPO
|
|
151
172
|
git init
|
|
152
173
|
git config user.name 'underpostnet'
|
|
153
174
|
git config user.email 'development@underpost.net'
|