Skip to content

v3.4.0

Choose a tag to compare

@underpostnet underpostnet released this 16 Sep 08:32
· 36 commits to master since this release

Changelog v3.4.0

2026-09-15

github-actions

  • Remove Git LFS from GitLab mirror push pipeline (8be008098)
  • Drop the template Pages auto-enablement and owner build override (c6e9dfd08)
  • Publish the template Pages under the triggering owner (bbdbce2e4)
  • Scope the template package publish to the underpostnet owner (7bea0bdee)
  • Add new owner repository scope based on organization (7d9fdde93)
  • Dispatch the org mirror per pushed repository (cdc80e951)
  • Reject staged node_modules in the template package publish (2040f7717)
  • Mirror releases to the organization with owner-scoped packages (34eaadaf8)

engine-cyberia

  • Add the GitHub org name to the compose environment (4331754f1)

cyberia-docs

  • Document the wasm-driver stream diagnostic flags (9f4e122ef)
  • Reflow the economy and platform architecture docs (f7ce74cd2)

ssr-cyberia

  • Keep the Cyberia 404 page on the requested URI (3449cf79d)

client

  • Add a default NotFound status page for PWA clients (6d646ded8)
  • Mirror the Underpost 50px top and bottom bars in the SSR splash (7cc74f207)

deploy

  • Pin the per-deploy engine source repositories in the sync deploys (e0d01e2c1)
  • Open the merged stream before the error stream in run_quiet (ce2b9eba9)

cli-release

  • Run security audit and clean deploy ID artifacts in release pipeline (4163efe74)

package

  • Move nodemon to base dependencies (7732e00ad)

deploy-cyberia

  • Simplify sync-deploy script using build conf (65b5d8c05)

engine

  • Keep non-literal dynamic imports out of the esbuild graph walk (9b5634567)
  • Walk the runtime import graph with esbuild instead of regexes (067c86467)
  • Generate the template .gitignore from the engine rules (4f12f11e0)
  • Log the copied clipboard length instead of its content (6541792db)

client-core

  • Shell the Underpost menu around the sliding top and bottom bars (a748e88b9)
  • Add updateBarCustomVisibility to home button toggle to restore top scroll (451e5ce62)

cli

  • Redact the Maas token secret from the baremetal log (4f8c55c76)
  • Quote host command arguments in repository writes and pod exec (ce5b59260)
  • Add the Socket.dev supply-chain audit command (8294fb557)

api

  • Gate the full file listing behind the admin guard (32872740a)

cli-secrets

  • Rotate GitHub Actions secrets under user and org targets (3676dcdf5)

New release v:3.3.77 (2026-09-13)

test

  • Add cyberia instance data unit tests (2517a5d21)

client-core

  • Rework the collapsed menu badge, tooltip, and hamburger chrome (0b4bca3f4)

engine

  • Build the deploy sources with coverage from release and CI (b0fd53698)
  • Withdraw the host traces with force inside the container (e09a23a9d)
  • Read the fallback document body through the gateway pod (7d1151db5)

test-unit

  • Skip the catalog tier suites a sliced tree does not ship (d8280cb4e)

deploy

  • Keep the applied manifest echo off the sync output (ba3e915d8)
  • Sweep the legacy per-host Gateway API objects (a3f1890f5)
  • Apply the Lets Encrypt issuer through the Gateway API solver (fc42bec8e)
  • Pin the pod bootstrap source repos in the prototype sync (1328bed08)
  • Remove test variation in pod_bootstrap_cmd repository default (33513cd0a)

cli

  • Mirror deploy id source paths back into their public repos (9debaad02)
  • Compare the gateway status probe answer by status code (b7ce8de9c)

New release v:3.3.76 (2026-09-12)

test-unit

  • Skip cyberia product suites where the tree does not ship them (96d1de9e5)

client-core

  • Add top-left hamburger menu button while the top bar is collapsed (b91f72210)

Cyberia

  • Fix minified atlas sprite sheet workload and validations (b64cbf23a)
  • Reuse authored cells when importing an object layer (117e0e620)
  • Stage direction frames at one uniform size for webp (82b4acac6)
  • Preview items and entity maps by the atlas idle still (c5fb8ae62)
  • Cut an idle-preview still from each atlas render (0402a1243)
  • Wire signed stats and entity levels through boot payloads (56000de95)
  • Add entity levels and progression rules to the game defaults (208530c45)
  • Sign stat modifiers in the shared contract (29df5fc49)
  • Preview both atlas renders in the object-layer viewer (8e8441f6e)
  • Read the audio File fields from the reference registry (0e3ca2903)
  • Take the atlas renders when collapsing duplicate layers (8dcc9ed1a)
  • Purge an atlas and its renders through the store (943e9e4c5)
  • Add the File reference registry module (6b7610101)
  • Navigate editors by instance code and item id (d87a56818)
  • Store two atlas renders and refresh the minified one (73ffe183e)
  • Bind item-pickup and craft audio events (3b0f1069d)
  • Add dropChance to entity-type-default overrides (5014c7e33)
  • Generate pixel-faithful sprite sheet atlases (dfba47760)
  • Resolve object-layer item identity and map previews (2bd4f88d1)
  • Reference entity-type defaults by id and derive skills from content (f669fa94f)
  • Add audio assets and per-map audio configuration (3ec20cb33)
  • Fix mentions of wasm-driver.py (d748d11dc)
  • Cleared coments (602f984a0)

cyberia-client

  • Surface featured worlds on the portal landing (90c528be5)

object-layer-engine

  • Add axis rulers and cursor readout to the pixel canvas (cd4955c6b)
  • Add cut, copy, paste, and scale tools with toolbar UI fixes (e215b3583)

cyberia-docs

  • Document the idle-preview still (4344d73b9)
  • Document the signed stat contract and progression (b7a4c3301)
  • Reflow the audio option table and emphasis (8358fe5e8)
  • Document the ol atlas renders and rebuild options (888c7bcbf)
  • Reflow tables and emphasis across the architecture docs (64c7e3a2d)
  • Document the Data Server URL as a required command-line flag (28c4a51e4)
  • Document Data Server flags and manifest CLI (74a09d397)

cyberia-cli

  • Carry the idle still through ol minify and backups (f41f66f52)
  • Require an explicit source for the ol import commands (b7c759a2e)
  • Implement restore OL backup workflow for a single itemId version instance and related document (293a62db2)
  • Add copy manifests in cyberia-instance repository build workflow (0f40c2b82)
  • Rework sync-src as a bidirectional dry-run mirror (6f05a7dc6)
  • Integrated the cyberia public assets folders module into the cyberia repo's publish workflows (7e5c0e0a7)
  • Integrated the cyberia-audio project module into the cyberia repo publish workflows (07993ee93)

engine

  • Publish per-suite coverage reports as deploy artifacts (f37be7ba6)
  • Resolve instances and maps by their codes (2daca38b8)
  • Lower the default request timeouts to ten seconds (9fbb5c844)
  • Publish products with the engine runtime dependency set (8bd9a12a3)
  • Redact adjacent credentials in service error messages (e8ad83ae6)
  • Fail downloads that stop short of their declared length (2cb52c254)
  • Replace adm-zip with jszip and shared archive helpers (14e4857c4)
  • Allow cross-origin reads on CRUD controllers (7100c5ee4)

test

  • Fix cyberia stat-contract coverall (faf4f4378)
  • Move sprite atlas and object-layer minify tests to the cyberia tier (931d98277)

cli-cyberia

  • Add the stat balancing policies and contract generation to the CLI (d6f477f59)
  • Route drops and imports through the atlas store purge (0a103f6e8)
  • Rework the ol command on the stored atlas renders (73b5c2fa2)
  • Sync the cyberia-instances checkout on publish with cmt --switch-repo (66ffde978)
  • Keep CLI-name arguments through the underpost reroute (e898bf498)
  • Add ol --minify reprocessing scoped to instances (9b19bfc1e)

docs

  • Regenerate the CLI references for the storage and bundle options (4ce71e989)

cli

  • Warn when a container resolves no OCI env overlay (20dcb3897)
  • Rework push-bundle and pull-bundle as one client bundle transport (ead02902b)
  • Rework fs selection around storage manifests (26471a64b)
  • Resolve instance root path from conf in instance-build-manifest (fd08a771b)
  • Deploy Mongo Express through the cluster command (4a9d03fbb)

cli-wireguard

  • Install the landed source before any step runs it (96db68293)

deploy

  • Consolidate deploy scripts on shared constants and bundle sync (dd9d1d368)
  • Stream the deploy log verbatim in a new debug mode (1d41af6c0)
  • Fix git track storage in dd-cyberia sync-deploy (3ed3c297d)

runtime-cyberia-server

  • Upgrade go version v1.25 (2a14dd26a)
  • Pass Data Server endpoints to cyberia-server as flags (c8b4a1b54)

runtime-cyberia-client

  • Add CYBERIA_DATA_SERVER_URL on cyberia-client dockerfiles runtime (99738cc80)

package

  • Update qs version >= 6.16.0 via overrides (b7697d52b)

New release v:3.3.73 (2026-09-01)

test

  • Fix coverall template CI failures by handling stripped product surfaces (fb14840d4)
  • Move rerouted plain reads to the cyberia app tier (944ea302e)
  • Add unit suites for the propagation message resolution (78ac60a09)
  • Fix coverall post-migration secret source resolution (dedb70980)
  • Fix coverall config-scope and cron job previousEnv scope (d3d07e13b)
  • Move rerouted plain reads to the integration tier (b59fd9734)
  • Fake the system node candidates under a temp root (fcd3c8300)
  • Fix cyberia coverall base repository case (d470fb1e4)
  • Fix cyberia CLI assertion in build workflow (43df85d86)
  • Cover the sync source guard (90b965ef4)
  • Add unit suites for the execution profiles and offline build workflow (c86cdaab7)
  • Extended the suites for the node URIs and deploy logging changes (354c9efba)
  • Extended suites for the state, image build and fallback capture changes (355169317)
  • Fix coveralls: hardhat module dependencie scope (2f7dbb8bd)
  • Fix coveralls: event-targets alertmanager webhook receiver (b201c6dd7)
  • Add infra and unit suites and raise the coverage gate (22d11215a)
  • Fix coverage calculation excludes (87ce13fdd)
  • Run the API test suite against an in-process server (8ed062470)
  • Move suites into tiered unit, integration and e2e layouts (c17bf2e37)
  • Replace Mocha and c8 with the Vitest tiered runner (cb648a10b)
  • Update coverall execution order list (9a9ea3db7)
  • Add mocha test runner configuration (ab4e84bb1)

github-actions

  • Drop the engine repo from cyberia-scoped CI jobs (7e3dccd32)
  • Resolve propagation payloads through cmt --propagate-msg (bfecdf73e)
  • Point CI image flows at the package command (fffb75db1)
  • Align CD workflow comments with the renamed deploy logging library (1cfe400e4)
  • Carried the GitHub Actions runner marker through the deploy (b54fffa4f)
  • Add export RUN_QUIET_CI for github runner (fd34bf4ec)
  • Align CD workflow comments with current secrets (756bac9eb)
  • Rename the template test workflow to unit and infra (e1cf38135)
  • Run the tiered Vitest suites in the test pipelines (6ea5288e3)

cli-repository

  • Add --propagate-msg resolution to the cmt command (f3491fec4)
  • Add fastForwardEnginePair method (8db5d2d69)
  • Keep GitHub credentials out of child Git commands (329d8a177)
  • Derived the private conf repo from the engine sync pair (8d8a5b0bc)
  • Derive the private repo name from the shared factory (34b5f17e4)
  • Fix bare clone path removal in repository clone (b8df8ac25)
  • Scope deployment builds to the requested instances (00aeafa9e)
  • Skip backup commit when no changes are pending (022ef2f3d)

package

cli-host

build

  • FIx host environment entrypoint env scope (af8bfbee9)

docs

  • Document configuration scopes and node capability boundaries (4cebdacbe)
  • Document the package command and fleet sync flows (56622044c)
  • Regenerate the CLI references for the execution profile and DB flag changes (604d65eba)
  • Documented the node-based connection URIs across the CLI references (1c0eee0db)
  • Documented the CLI domains, staged image builds and fallback capture (c46dbe4fd)
  • Document the host, app, and state CLI domains (d9bc0bc2a)
  • Update and normalize dynamic status badges across repositories (51be9cf00)
  • Add Hybrid-Edge Cloud Distributed Infrastructure Scope document (80f9040ba)
  • Add the repository contribution and testing conventions (9b861e27f)
  • Document the tiered Vitest runner and the test command (aba90c472)
  • Normalize markdown formatting in observability reference (8c586e9bb)
  • Update nexodev reference docs for observability and cluster scoped users (2c0d6259b)

engine

  • Deliver cron environments from scoped projections and injected keys (b9262c9e8)
  • Gate cluster operations on a node role capability table (a6c71588e)
  • Split the host configuration into scoped durable sources (46bba77b5)
  • Keep the selected NODE_ENV through the OCI env overlay (99c738905)
  • Collapse the start bootstrap into one source pull (4ee41e393)
  • Harden command logging around credentials (3899bcba2)
  • Bundle the test coverage report into deployed artifacts (6b7ebaaed)
  • Serve CronJobs from a labeled engine mirror (687322acb)
  • Pin database PVs down to one claim under /data (97a53cbd6)
  • Prepare container storage for host-mounted volumes (3b5470a3d)
  • Add deploy package manifest generation and the package CLI (3ec0b5265)
  • Add execution profiles and the offline command gate (4e9b80d67)
  • Dropped the stale baked-CLI comments from the runtime Dockerfiles (26a328fbb)
  • Guarded the optional cron conf mirror in the private repo sync (b7e987f18)
  • Awaited the deployment build steps so the status endpoint stays live (6190fda26)
  • Captured the in-memory fallback world as a persisted instance (971ff629a)
  • Baked the runtime CLI into the images from a staged archive (ca46e5f5f)
  • Add OCI runtime env overlay context (8c625e42d)
  • Move container runtime status into a dedicated state store (b331c4ea7)
  • Drop stale API documentation comment headers (77b82ee74)
  • Ignore the .underpost directory in Docker builds (148d07a59)
  • Rebuild the template before each deploy id assembly (39b09cd0f)
  • Guard the template checkout and prune stale sources on build (1034ca412)
  • Move Valkey adapter to database layer (cce8cdb20)
  • Organize server modules by domain (4178f40b4)
  • Build product manifests declaratively (27c228299)
  • Ignore the local environment and test report directories (231eb84f1)
  • Harden server framing and CSP security headers (cb5f7a005)
  • Resolve repository identity in shared server and client modules (1bd92d6d8)
  • Extract systemd probe helpers and redact shell credentials (211ae10cc)
  • Extract deploy route registry into dedicated router module (4bd7bd3a7)
  • Verify nftables egress block chains and policies (4168f699d)
  • Harden database backup pipeline with exec-readiness gates and bounded retries (0ed2917b8)

cli

  • Report the underpost reroute at info level (b9c798b4b)
  • Add a build-only mode to the sync-cluster command (8d3ce9879)
  • Mirror generated deployment manifests into the project tree (225da8bc9)
  • Keep the node sync off the machine it runs from (4fbb9376a)
  • Pin re-entrant commands to executing package location (151ce5a10)
  • Centralize underpost resolution and drop the stale DB pod-ensure flag (3c1b61866)
  • Streamed the state domain as a live pod table with runtime telemetry (a6a25a24d)
  • Added a net-tables diagnostic run workflow (191febeef)
  • Applied the per-deployment OCI env overlay before manifest builds (b39768b99)
  • Resolved connection URIs by node name through the edge targets (9bb6285ff)
  • Carried the sub-configuration through the client build (951eb9740)
  • Reworked the state command into a runtime status domain (0a6c55a99)
  • Folded the env and config commands into the host configuration store (1acb5babf)
  • Report caught CLI errors to stderr instead of stdout (205fe6fea)
  • Add host, app, and state domains migrating the config commands (1ef280b3f)
  • Remove test CLI module and prune client assets (36750f961)

scripts

  • Restrict node setup to RHEL hosts with a system Node (e8f4a13b2)
  • Targeted instance flags in the test deploy monitor (5dcbeb0d8)
  • Remove the stale local underpost CLI link script (c3c1d2b46)
  • Add graceful node shutdown and auto-restore script (3a5958c00)
  • Update event monitor script with wireguard and envoy logs (14c83ec68)

cli-secrets

  • Rotate the GitHub token and seed cron env secrets (441b81a3f)
  • Rework the secret CLI around the shared domain actions (afa84003d)
  • Publish underpost-config only through the secret layer (588af5f06)
  • Add SOPS setup and status onboarding commands (ceb717e2b)

event

  • Report why a dispatcher Node binary is rejected (b615b9a80)
  • Report unreadable cluster as unknown in deployed event state (e184e6c2e)

cli-wireguard

  • Reconcile per-node-role services on fleet sync (bc03d54c8)
  • Add restart dispatcher on wireguard sync and update ingress recovery wait in ENGINE_SYNC_STEPS scripts steps (74936a404)
  • Refactor edge state into deployment topology (0b457088d)
  • Report peer public keys and unregistered identities in status (10ef0d140)

deploy

  • Add per-deploy package scripts and shared host preparation (076388a72)
  • FIx deploy npm install order (665c37f16)
  • FIx treat missing target-colour deployment as normal blue/green state (aa3097210)
  • Add the optional per-deployment env secret overlay to the dev manifests (a830b0213)
  • Streamed the runtime state and stamped the bootstrap container status (89a45ad30)
  • Renamed the deploy logging library to the GitHub Actions variant (10bce1a4a)
  • All in invocations now use one flag per -continued line (cb3adbec0)
  • Converted the deploy scripts to the shared deploy-step log contract (de350d199)
  • Add CD Node Source Pull pipeline logic (7f20ea0d5)
  • Fix cyberia deployment entry point script with cli surface scope (ed16da715)
  • Consolidate host prep and update pod start commands (104ac9c38)
  • Add a dd-core remote sync and deploy helper script (736fe2ec9)
  • Resolve the deployment environment from --env and --dev flags (1e04b3e00)
  • Rename run secret command to secret --from-cron-env in deploy scripts (101c77526)

cyberia-cli

  • Add related instance deploy paths in cyberia catalog (dec9e1175)

client-core

  • Fix Resolve Swagger UI 404 and incorrect API target in specs (aa6ba8606)

client

  • Fix typo SSRComponent (e92751afe)
  • Served the fullcalendar global build bundle (164cb0706)
  • Rename FullScreen.js to ViewModeController.js (35e250bd3)
  • Drop dead code from the wallet, file explorer and nexodev shell (9b4ec76dc)
  • Refresh the service worker and its cache policy (e0a270b35)
  • Rework the calendar, docs and translation surfaces (511afcc5e)

cli-cyberia

  • Resolve underpost invocations through the shared CLI resolver (04989793e)

lampp

  • Implement shared provisioning contract repositories (1730cced3)

monitoring

  • Refactor binary availability metrics to state timeline and stat panels (ae1f39223)
  • Document node exporter provisioning and role relabeling in observability docs (de8a72b56)
  • Provision node exporter on hubs and relabel node roles in dashboards (7454ec408)
  • Add Node Metrics dashboard, Node Exporter, and 5 cluster threshold alerts (40c3d6e71)

conf

  • Restore dev API config generation and CORS origin mapping (afaebcf16)

server-start

  • Hand off the build through a linked underpost CLI (42ae75c08)

cli-client

  • Extract the client build into a dedicated CLI module (86c38d8a2)

cli-cron

  • Fix vultr cronjob mounts collector host path (c674e1114)

release

  • Add bump version pattern target (52c30bf82)

engine-cyberia

  • Align the cyberia module with the tiered test runner (4ad1a9ea5)
  • Update sharp dependencie to sharp v0.35.3 (44b5df725)

server-conf

  • Default missing conf files and gate dev subconfigs to development (612d52577)

cli-run

  • Show probe count in get-traffic index column (efd2adc25)
  • Add index column # as the first column of the get-traffic host table in run.js (3540071e4)

cli-new

  • Add clusterDeployFactory method to generate base cluster deploy folder engine-private/deploy (8f2a070bf)

pwa-microservices-template

  • Add default template assets including favicons, splash screens, and PWA manifest (f7ab699f2)

cluster

  • Converge observability stack and provision secrets from cron env (944fb9882)

cli-dns

  • Add ingress port block and unblock workflows (28ee09f93)

cli-ssh

  • Make SSH users cluster scoped with shared registry (ba35a2c4d)

monitor

  • Add cluster observability stack and operational event dispatcher (4fd2097d0)

cron

  • Fix resolved deployId list related job defualt in cron main callback method (4d88f472a)

New release v:3.3.0 (2026-08-18)

github-actions

  • Add workflow_dispatch trigger event handling in .github/workflows/ghpkg.ci.yml (e21320cf7)
  • Reorder coverall test list (eb20336b2)
  • Replace default npm coverall test with scripts/coverall-test.sh (3471f3009)
  • Refactor move CD workflow commands into deployment scripts with run_quiet wrapper (222a18d71)
  • Update .github/workflows/engine-test.cd.yml (94e42e58e)
  • Add import-default-items steps to cyberia CD (350444f9f)
  • Update.github/workflows/engine-cyberia.cd.yml (53e9da171)
  • Update base node in engine-core CD pipeline (fa039f257)

cli-cyberia

  • Include deploy strategies in generated projects (66bc733eb)
  • Refactor make data.item.id is now a unique index for every case (1391efce3)
  • Add WebSocket load test runner command (eebec67ed)

engine

  • Expand server module JSDoc annotations (213a55191)
  • Move writeEnv helper into environment module (9c57e3629)
  • Fix SELinux host paths mounts logic and definition (6cf8dda11)
  • Extract environment and cron deploy helpers into dedicated modules (6ba3fa4c3)
  • Enforce SELinux across cluster, SSH, and provisioning (9d57a359d)

cli-wireguard

  • Add SSH forwarding via VPS edge (54de1e6e5)
  • Extract forward proxy and systemd helpers into server modules (97be08d10)
  • Implement HTTP/CONNECT forward proxy for WireGuard (a95163df2)
  • Implement idempotent in Restart, reconnect, and reset pipeline (65710c3bd)
  • Implement Edge Hub WireGuard and HAProxy CLI module (2e293b875)

catalog-cyberia

  • Add coverall cyberia trigger script (c8e59eed0)

scripts

release

  • Fix missing file bump version scopes (4aa983a5d)

deploy

  • Mark deploy scripts as executable (b18151bfa)

hardhat

  • Update hardhat npm module version to sync current project scope v3.2.90 (8fc717b99)
  • Update undici override dependency to v6.28.0 (fb2d2aa3b)

dependabot

cli-client

  • Add only ssr build workload flag option and logic (92026a66e)

cli-cron

  • Fix cron CLI setup flag and single job execution (84eab73d9)

cli-repository

  • Add getDefaultBranch resolve in switchRemote method (04bc8743b)

cli-ssh

  • Add initializeDefaultSshConfig method (84f5f8698)

cli-vultr

  • Add Vultr Bandwidth Monitor cron job CLI Module (22fb9249a)

cli-dns

  • Add blokc/unblock ingress/egress workflow handling (980fab35a)

underpost-ingress

  • Enable response compression in ingress and gateway (7763f9da2)

test

  • Fix missing pngjs import in object-layer test pipeline (20c1f24d8)
  • Add WebSocket load test for cyberia-server (e3ff27772)

engine-cyberia

  • Remove eiri from entity default inventory (e8f8d03c7)
  • Add fallback world default items staging and hot reload (e646c430d)
  • Add playerBaseSpeed field to instance config defaults (7cdbd23d2)
  • Add WebSocket connection limit env to cyberia-server (c6f834c7d)

client-cyberia

  • Add Fallback World Engine editor view (cf61dfe8e)
  • Implement IPFS cid filters in ObjectLayerEngineViewer component (93eb69928)

docs

  • Document moveAck reconciliation and move coalescing in Cyberia replication (24b14ca4e)

New release v:3.2.90 (2026-08-11)

cli-run

  • Add version parameter in cluster runner cmd lines (bd909bc04)
  • Handle multi-recipient keys in sops runners (92ecdc151)
  • Trim ipfs expose to core host ports (dc473d4fa)
  • Add sops setup and status runners (a29fd3947)
  • Fix sub path handling probes in get-traffic runner (b65d0fe4e)
  • Add restore mongo statefulset runner (e9e1b224b)
  • In get-traffic runner retains every configured host row matching the input (a16542254)
  • Rework get-traffic runner with CURRENT and OPPOSITE color state deployment (34e4a7234)
  • Rework expose runner to port list options (b6fe9cfe4)
  • Add status and expose runners (0d383e7d9)
  • Drop redundant rollout restart after node-move patch (b5399b134)
  • Load project instance env builder by convention (8b226d073)
  • Route instances through stable traffic Service (65c674e05)
  • Refactor stop runner logic introduce stopPlanFactory method (aa972f120)
  • Remove direct ssh remote runners (79ecee892)
  • Integrate underpost gateway into run (ce02c3282)
  • Add Gateway API HTTPRoute rules for instance runners (c85c48e43)

test-secrets

  • Fix rotate and apply manifest test workflow (5f0be40c5)

hardhat

engine-cyberia

  • Implement storageSlots capability workload in fallback world (c6bceef0b)
  • Implement storageSlots capability workload in fallback world (e5f4d1c9a)
  • Add assembler craft recipes to cyberia action system (c50724523)
  • Add vendor shop catalog to cyberia action system (748533a0c)
  • Preserve variant base path through ingress (3daa9a181)
  • Normalize instance topology and dispatch env builders (cd0309ae4)
  • Refactor gateway static to underpost gateway (9f35a007d)
  • Fix minor besu genesis generator update (6680d5a16)
  • Fix sum stat response in fall back world static instance map endpoint (84ea1e4ca)
  • Add seeded random source for deterministic fallback world generation (747411872)

dependencies

github-actions

  • Set dd-cyberia env before build manifest (3ec1c8e46)
  • Update build and deployment manifests (b8aad9359)
  • Wait for underpost-gateway rollout (57fc7c22f)
  • Update engine-test CD deploy workflow (712cc9e17)
  • Update build and deployment manifests (149653332)
  • Update engine-cyberia docker-compose build and deployment manifests (8dcb10ab2)
  • Update engine-cyberia docker-compose build and deployment manifests (1cf4f753f)
  • Update build and deployment manifests (ba4f4a173)
  • Update build and deployment manifests (9874b895d)
  • Update build and deployment manifests (c3a4ec9f1)
  • Update build and deployment manifests (a8bdbf050)
  • Update engine-cyberia CD add prebuild manifest workflow (a1f4954f7)
  • Fix 404 page location in cyber ua-client docker image workflow (b52bdf89e)
  • Disable publish branch and sha docker images versions (12a37a468)

test

  • Cover store adoption and recipient registration (e570d6472)
  • Cover sops encrypted secret store (7c41910bd)
  • Cover expose and curl status chain (c19471ae2)
  • Add deployment node placement tests (390e0aa7d)
  • Fix test/cluster-instances.test.js (481740db8)
  • Remove buildCyberiaMmoInstanceEnv tests in test/cluster-instances.test.js (46afd8aed)

docs

  • Document joining a store created on another host (25a85b6ce)
  • Document shop transaction flow in action system (7091a506a)
  • Document sops age secret management (6b538a2f6)
  • Document expose port list examples (f9ba18083)
  • Document run status and expose runners (bf9a83b42)
  • Update node-move mechanics for template patch rollout (fb8d36f89)

cli-secret

  • Add store adoption pre-flight and recipient registration (2d634dbbb)
  • Add managed secrets and repair creation rules (4661114a0)
  • Add sops age encrypted secret store (8de77fdd6)

server-conf

  • Derive remote ports from host ports in expose plan (45bec1ad9)
  • Add replica count and secure password factories (83320d061)
  • Add expose port list and plan factories (928ad8350)
  • Add curl status chain factory (dfeef123b)
  • Support idempotent hosts blocks in etcHostFactory (aa45f40ac)

ipfs

  • Prefer sops store for cluster credentials (62f402649)

engine

  • Generate per-replica mongo volumes with static storage class (703b8bbac)

cli-cluster

  • Prefer sops store in cluster secret seeding (7be50059a)
  • Hot-reload shared ingress host table (d6328a5e0)
  • Add shared underpost ingress front for dual ingress stacks (041debe99)
  • Update Gateway API versions and integrate underpost gateway (12eefb86e)
  • Add Gateway API control plane and CRI socket resolution (97565eea7)

underpost-gateway

  • Fix path replicas handling in deploy pwa workfloads (702f48e4b)
  • Validate and rollback gateway config on reload failure (4f7ce8795)

cli-deploy

  • Add resolveSchedulableNode method (c62ee86d0)
  • Fix merged Gateway listener isolation (a34f0b936)
  • Remove expose and status options (e55227eb0)
  • Add node placement to deployment manifest (9487ad169)
  • Add stable traffic Service for blue/green routing (838d1ec0c)
  • Fall back to other ingress stack for traffic colour (3115cc84b)
  • Fix deploy status workflow logic (35e1af024)
  • Integrate underpost gateway into deploy (e95a46d64)
  • Add gateway.yaml and httproute.yaml to build manifest mirror (afb7bcf9d)
  • Add Gateway API deploy manifests and gateway static utility (073231ca5)

scripts

  • Use run expose in test monitor (b19c49318)
  • Add firewall UDP range for QUIC/HTTP3 to nat-iptables (3bdacec35)

cli

  • Update run and deploy option flags (0dfb9ce6c)

underpost-ingress

  • Add multi node work load handling (3dccb3de3)

cli-cyberia

  • Add testPaths in dev-env runner (b087f4afd)
  • Install Docker host aliases in compose workflows (a9fb75070)

docker-compose

  • Implement project-agnostic docker-compose workflow (e0d07689c)
  • Update subpath handling logic (69fb72fcb)

bin-deploy

  • Fix add --ignore-not-found in 'pw-conf' runner (2f14d2ab6)

cyberia-docs

  • Update docs for gateway and CLI changes (c064f82ad)
  • Document edge tier architecture and CLI updates (72760e40e)

cyberia-cli

  • Refactor SSH port wait to shared utility (cdf4c4f92)
  • Add status page build and instance project resolution (b1b0a840e)
  • Fix SSR html views locations path (1bf2843c8)
  • Remove redundant logs (3adba85fe)

cli-image

  • Implement crictlCommandFactory in image build (69d24d668)

db

  • Fix MongoDB replica set orphan recovery and improve bootstrap (71b5f1a3e)

cyberia-client

  • Fix instance selection play URL for default instance code (efec4a34e)

underpost engine core server

underpost

rockylinux npm nodedotjs mongodb

Node.js CI Test Coverage Status Socket Badge

Version Downloads jsDelivr License

Base template for pwa/api-rest projects.

Underpost Platform

Underpost is an platform for application delivery, from infrastructure to runtime. The underpost npm package is its CLI toolchain surface.

The project covers:

  • Bare metal provisioning on Rocky Linux 9.
  • Kubernetes / K3s / kubeadm / LXD workflows for production, edge, and isolated workloads.
  • GitHub OSS repository flow — clone, pull, push, commit, release, and CI integrations as first-class CLI subcommands.
  • CI/CD orchestration — GitHub Actions integrations, container builds, multi-environment deployments.
  • Static build + PWA delivery — every deploy ships as an installable Progressive Web App with Workbox-based offline support.
  • Cloudinary-backed static asset flow for image/asset delivery.
  • ERP/CRM-style PWA base applications as the default workload.
  • Cyberia — a dedicated MMO extension built on top of the platform, with its own content backend (engine-cyberia), authoritative simulation runtime (cyberia-server), and presentation runtime (cyberia-client).

See Detailed platform doc.

Architectural roles (Cyberia stack)

When the platform is hosting the Cyberia MMO extension, three independent runtime processes participate. Their boundaries are non-overlapping.

Process Role
engine-cyberia (Node.js) Content authority: maps, object layers, atlas/asset metadata, world configuration, persistence, validation, gRPC + REST data services, editor backend, asset distribution.
cyberia-server (Go) Authoritative simulation runtime: tick advancement, AOI replication, input command processing, snapshot generation.
cyberia-client (C → WebAssembly) Presentation runtime: rendering, UI, input capture, prediction, reconciliation, interpolation, client-side presentation defaults.

The ecosystem is playable only when all three are running and healthy. Each service is supervised independently and owns its own monitor/reconnector. If any one is unhealthy, the game enters standby and resumes automatically once all three are healthy again.

See detailed Cyberia architecture.

Create a new project

npm install -g underpost
underpost new app-name

After template installation, the server will be running on http://localhost:4001

Usage

cd app-name

Build client bundle

npm run build

Run dev client server

npm run dev

See Docs.

Underpost CLI

underpost ci/cd cli v3.4.0

Usage: underpost [options] [command]

Global options

Option Description
-V, --version output the version number
--profile <profile> Execution profile. One of: LIVE_CLUSTER, HERMETIC_BUILD, OFFLINE_DRY_RUN. LIVE_CLUSTER Full access: cluster and host mutation permitted. HERMETIC_BUILD Build outputs only: no cluster, host or network side effects. OFFLINE_DRY_RUN Nothing executes; every command is reported as intent.
-h, --help display help for command

Commands

Command Description
new Initializes a new Underpost project, service, or configuration.
client Builds client assets, single replicas, and/or syncs environment ports.
start Initiates application servers, build pipelines, or other defined services based on the deployment ID.
clone Clones a specified GitHub repository into the current directory.
pull Pulls the latest changes from a specified GitHub repository.
cmt Manages commits to a GitHub repository, supporting various commit types and options.
push Pushes committed changes from a local repository to a remote GitHub repository.
static Manages static build of page, bundles, and documentation with comprehensive customization options.
root Displays the root path of the npm installation.
ip Displays the current public machine IP addresses.
cluster Manages Kubernetes clusters, defaulting to Kind cluster initialization.
deploy Manages application deployments, defaulting to deploying development pods.
secret Workload secret store: SOPS/Age encrypted credentials projected as Kubernetes Secrets.
host Host configuration: the node-level operational environment shared by the cluster.
app Application environment: one deployment's runtime configuration.
state Runtime state: live container execution state, health and metrics, exported off-cluster.
image Manages Docker images, including building, saving, and loading into Kubernetes clusters.
install Quickly imports Underpost npm dependencies by copying them.
db Manages database operations with support for MariaDB and MongoDB, including import/export, multi-pod targeting, and Git integration.
metadata Manages cluster metadata operations, including import and export.
cron Manages cron jobs: execute jobs directly or generate and apply K8s CronJob manifests.
fs Uploads, pulls, or deletes Cloudinary assets and synchronizes the selected storage manifest.
monitor Manages health server monitoring, the cluster observability stack, and host dashboards.
event Dispatches operational events and provisions the monitoring rules that trigger them.
ssh Manages cluster scoped SSH credentials and sessions for remote access to cluster nodes or services. Users are registered in engine-private/deploy/conf.users.json and keys are stored in engine-private/deploy/users/.
wireguard Manages the WireGuard L3 hub-and-spoke transport and the HAProxy edge gateway in front of it.
haproxy Manages the HAProxy edge gateway over the WireGuard transport (same subsystem as underpost wireguard).
vultr Meters the edge VPS bandwidth against its Vultr plan quota and blocks egress before overage accrues.
run Runs specified scripts using various runners.
test Runs the test tiers locally, inside deployment pods, or as a cluster Job with Allure reporting.
docker-compose General-purpose Docker Compose development pipeline (mirrors the Kubernetes dev stack).
lxd Manages LXD virtual machines as K3s nodes (control plane or workers).
baremetal Manages baremetal server operations, including installation, database setup, commissioning, and user management.
package Generates the package manifests a deploy id owns, from the engine manifest and the deploy's product catalog, and installs the dependencies that catalog pins.
socketsecurity Security audit through Socket.dev: dependency security (advisories, supply chain alerts, reachability, security patches in .socket/manifest.json) and source code risk (alerts on this project's own code).
release Release orchestrator for building new versions and deploying releases of the Underpost CLI.