Repository navigation
v3.4.0
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
- Remove clean script (809f225d7)
cli-host
- Fix traceback env (d1fd667d5)
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
- Mark scripts as executable (8f04cbc70)
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
- Disable typescript autoupdate (8bd761833)
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
- Update transitive dependencies (59f18f31b)
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
- Update transitive dependencies (9c12f8fde)
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
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).
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 underpostunderpost new app-nameAfter template installation, the server will be running on http://localhost:4001
Usage
cd app-nameBuild client bundle
npm run buildRun dev client server
npm run devUnderpost 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. |