New:Introducing Socket Scanning for VS Code Marketplace Extensions.Learn more →
Get Started

cyberia

Package Overview
Dependencies
Maintainers
1
Versions
32
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

cyberia

Cyberia CLI — toolchain for the Cyberia MMO data layer, content pipeline, persistence, gRPC services, and ERC-1155 lifecycle on Hyperledger Besu.

latest
Source
npmnpm
Version
3.5.0
Version published
Weekly downloads
241
363.46%
Maintainers
1
Weekly downloads
 
Created
Source
CYBERIA Network Object Layer Engine

CYBERIA

Network Object Layers

Stackable Rendering Layers as a Unified Tokenized Reality

rockylinux npm nodedotjs mongodb

Node.js CI Test Coverage Status Socket Badge

Version Downloads jsDelivr License

Cyberia is an MMORPG extension built on the Underpost Platform. The platform owns the toolchain, deployment surface, PWA delivery, and base infrastructure. Cyberia adds a three-service MMO runtime: engine-cyberia, cyberia-server, and cyberia-client.

engine-cyberia is the sidecar-backed data layer: a Node.js sidecar that owns content, validation, persistence, the gRPC/REST data services, and asset metadata. It backs the authoritative Go server and the WASM client with data — it does not run the simulation or the presentation.

Ecosystem at a glance

                         ┌───────────────────────────────────────────────┐
                         │              UNDERPOST PLATFORM               │
                         │  toolchain · deploy · PWA build · static      │
                         │  delivery · cluster/image/db · monitoring     │
                         │                                               │
                         │   underpost CLI  ──▶  builds & deploys all    │
                         └───────────────────────────────────────────────┘
                                            │  hosts / delivers
                                            ▼
   ╔═══════════════════════════════ CYBERIA MMO ═══════════════════════════════════╗
   ║                                                                               ║
   ║   ┌──────────────────┐   gRPC    ┌──────────────────┐   WebSocket             ║
   ║   │  engine-cyberia  │ ────────▶ │  cyberia-server  │ ───────────┐            ║
   ║   │     (Node.js)    │           │       (Go)       │            │            ║
   ║   │                  │           │                  │            ▼            ║
   ║   │ content          │           │ authoritative    │    ┌──────────────────┐ ║
   ║   │ validation       │           │ simulation       │    │  cyberia-client  │ ║
   ║   │ persistence      │           │ world tick       │    │    (C / WASM)    │ ║
   ║   │ gRPC/REST data   │           │ AOI replication  │    │                  │ ║
   ║   │ asset metadata   │           │                  │    │ rendering        │ ║
   ║   └──────────────────┘           └──────────────────┘    │ input            │ ║
   ║            │                                             │ prediction       │ ║
   ║            └──────────────── REST (content/assets) ─────▶│ presentation     │ ║
   ║                                                          └──────────────────┘ ║
   ╚═══════════════════════════════════════════════════════════════════════════════╝

   One source of truth per concern:
     content & world config ── engine-cyberia
     real-time world state  ── cyberia-server
     presentation & input   ── cyberia-client

1. Toolchain and base infrastructure

Underpost Platform is the operational backbone and the source of truth for deploy IDs, runtime selection, host/path layout, generated client assets, and environment resolution.

AreaWhat it owns
Toolchainunderpost CLI, build, deploy, release, metadata, secrets, environment selection
Infrastructurebare metal, LXD, Kubernetes, K3s, kubeadm, images, SSH, runners
Data operationsMongoDB, MariaDB where needed, backups, cron, monitoring
Deliverystatic build, SSR views, PWA packaging, service worker generation, host/path routing

underpost is the shared control surface for everything infrastructural. Cyberia-specific work belongs in the cyberia CLI, never in parallel platform commands. When a concern already exists in underpost, reuse it instead of forking a Cyberia variant.

2. PWA workflow

Every deployed client ships as a static application shell with PWA support. The pipeline has exactly two inputs:

  • the deploy ssr configuration in underpost.config.dd-*.js (or conf.ssr.json)
  • the service worker source in src/client/sw/core.sw.js

Everything else — index.html pages, sw.js, the precache list — is generated during the client build. Treat them as outputs only; never hand-edit them.

Runtime service-worker behavior:

RequestStrategy
static assetsstale-while-revalidate
API GETnetwork-first + short cache
API mutationsnetwork-only + background replay
navigationnetwork-first + fallback shells

Fallback selection: offline network → offline fallback view; origin/server failure → maintenance fallback view. Only fallback-marked views are guaranteed precached.

3. Cyberia MMO extension

Responsibility split

ServiceOwnsMust not own
engine-cyberiacontent, validation, persistence, gRPC/REST data services, asset metadataauthoritative simulation, render policy
cyberia-serverauthoritative simulation, world tick, gameplay mutation, AOI replicationcontent authority, presentation metadata
cyberia-clientrendering, input, prediction, interpolation, presentationauthoritative world state, gameplay authority

Two boundaries are non-negotiable:

  • Do not move authoritative logic into the client.
  • Do not move content-authority logic into the Go runtime.

Data flow

engine-cyberia ──gRPC──▶ cyberia-server ──WebSocket──▶ cyberia-client
engine-cyberia ──REST──────────────────────────────▶ cyberia-client

engine-cyberia as the sidecar-backed data layer

engine-cyberia is the only Cyberia service that owns content-backed data and asset metadata.

  • Boot-time world configuration flows from engine-cyberia to cyberia-server over gRPC GetFullInstance.
  • Client-facing assets, object layers, dialogues, and presentation hints flow from engine-cyberia to cyberia-client over REST.
  • Simulation never migrates into the sidecar, and presentation policy never migrates out of the client.

Runtime / health model

Three supervised processes run in parallel, each with its own monitor and reconnect loop. Gameplay is live only when all three are healthy at once.

        ┌──────────────────────────────────────────────────────────────┐
        │                    SUPERVISION (parallel)                    │
        │                                                              │
        │   engine-cyberia        cyberia-server        cyberia-client │
        │   ┌────────────┐        ┌────────────┐        ┌────────────┐ │
        │   │  monitor   │        │  monitor   │        │  monitor   │ │
        │   │ +reconnect │        │ +reconnect │        │ +reconnect │ │
        │   └─────┬──────┘        └─────┬──────┘        └─────┬──────┘ │
        │         │                     │                     │        │
        │         └──────────┬──────────┴──────────┬──────────┘        │
        │                    ▼                     ▼                   │
        │            all three up & connected?                         │
        └────────────────────────────┬─────────────────────────────────┘
                                      │
                ┌─────────────────────┼─────────────────────┐
                ▼                     ▼                     ▼
          ┌───────────┐        ┌───────────┐         ┌───────────┐
          │  HEALTHY  │        │ DEGRADED  │         │  STANDBY  │
          │ all 3 up  │        │ ≥1 service│         │ gameplay  │
          │ gameplay  │        │ reconnect-│         │ paused    │
          │ live      │        │ ing / down│         │ until all │
          │           │        │           │         │ 3 healthy │
          └───────────┘        └───────────┘         └───────────┘
StateMeaning
healthyall three Cyberia services are up and connected
degradedat least one service is reconnecting or unavailable
standbygameplay is paused because the full three-service set is not healthy

User commands

Use underpost for platform, infrastructure, build, and deploy. Use cyberia for MMO content and extension workflows. Both share the same helpers — never duplicate config, env, or path logic.

Platform (underpost)

# Bootstrap a new app (local app serves on http://localhost:4001)
underpost new app-name

# Build the client bundle / static + PWA output
underpost client
npm run build            # node bin client

# Deploy and operate
underpost deploy <deploy-id>
underpost monitor

Cyberia (cyberia) — bin/cyberia.js

GroupCommandPurpose
olcyberia ol [item-id]ObjectLayer import, procedural generation, atlas/sprite
instancecyberia instance [instance-code]export / import / drop a Cyberia instance and its data
client-hintscyberia client-hints [instance-code]per-instance presentation hints (palette, camera, icons)
chaincyberia chain <sub>Hyperledger Besu + ERC-1155 ObjectLayerToken lifecycle
run-workflowcyberia run-workflow <name>named maintenance/build scripts from scripts/

Common examples:

# Object layer content
cyberia ol hatchet,sword --client-public --import # import specific items from the asset tree
cyberia ol --client-public --import-types skin    # batch import by type (or: all)
cyberia ol hatchet --to-atlas-sprite-sheet        # build atlas sprite sheet
cyberia ol --drop --client-public                 # drop data and asset folders

# Instance data
cyberia instance FOREST --export ./backup
cyberia instance FOREST --import ./backup
cyberia instance FOREST --drop

# Presentation hints
cyberia client-hints cyberia-main --seed-defaults

# Chain / token lifecycle
cyberia chain deploy --chain-id 777771
cyberia chain status
cyberia chain register / mint / transfer / burn / pause / unpause

# Content artifact (the cyberia-content checkout or CYBERIA_CONTENT_ROOT)
cyberia content status
cyberia content audit --dev
cyberia content import --dev
cyberia content import --saga <saga-code> --dev

# Product repositories: build, pin in the deployment lock, publish
cyberia release build --commit
cyberia release lock --commit
cyberia release publish

# Named workflows
cyberia run-workflow import-content
cyberia run-workflow build-server-dashboard

Run the MMO services

# engine-cyberia (Node.js data/content services)
npm start                                          # node src/server

# cyberia-server (Go authoritative simulation)
cd cyberia-server && go run main.go                # dev
cd cyberia-server && go build -o cyberia-server . && ./cyberia-server

# cyberia-client (C / WASM presentation)
cd cyberia-client && make -f Web.mk clean && make -f Web.mk web
cd cyberia-client && make -f Web.mk serve-development     # serves on :8082

Operational guardrails

  • Prefer one source of truth for config, deploy IDs, runtime selection, startup behavior, and generated assets.
  • Reuse existing helpers and conventions instead of creating parallel implementations.
  • Do not duplicate parsing, env resolution, or path normalization logic across modules.
  • Treat generated artifacts (sw.js, static pages, atlases, README, manifests) as outputs only.
  • Host-level changes must be idempotent, reversible, and explicit; validate before mutating; keep orchestration scripts safe to rerun.
  • engine-private/ is a private external dependency. Reference it only as private input; never assume its contents exist locally.

Keywords

cyberia

FAQs

Package last updated on 11 Oct 2026

Related posts