Skip to content

underpostnet/engine

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7,338 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

underpost engine core server

underpost

rockylinux npm nodedotjs mongodb

Node.js CI Test Downloads Socket Badge Coverage Status Version License

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 ci/cd cli v3.2.12

Usage: underpost [options] [command]

Options:
-V, --version                                              output the version number
-h, --help                                                 display help for command

Commands:
new [options] [app-name]                                   Initializes a new Underpost project, service, or configuration.
client [options] [deploy-id] [sub-conf] [host] [path]      Builds client assets, single replicas, and/or syncs environment ports.
start [options] <deploy-id> [env]                          Initiates application servers, build pipelines, or other defined services based on the deployment ID.
clone [options] <uri>                                      Clones a specified GitHub repository into the current directory.
pull [options] <path> <uri>                                Pulls the latest changes from a specified GitHub repository.
cmt [options] [path] [commit-type] [module-tag] [message]  Manages commits to a GitHub repository, supporting various commit types and options.
push [options] <path> <uri>                                Pushes committed changes from a local repository to a remote GitHub repository.
env [deploy-id] [env] [subConf]                            Sets environment variables and configurations related to a specific deployment ID.
static [options]                                           Manages static build of page, bundles, and documentation with comprehensive customization options.
config [options] <operator> [key] [value]                  Manages Underpost configurations using various operators.
root                                                       Displays the root path of the npm installation.
ip [options] [ips]                                         Displays the current public machine IP addresses.
cluster [options] [pod-name]                               Manages Kubernetes clusters, defaulting to Kind cluster initialization.
deploy [options] [deploy-list] [env]                       Manages application deployments, defaulting to deploying development pods.
secret [options] <platform>                                Manages secrets for various platforms.
image [options]                                            Manages Docker images, including building, saving, and loading into Kubernetes clusters.
install                                                    Quickly imports Underpost npm dependencies by copying them.
db [options] [deploy-list]                                 Manages database operations with support for MariaDB and MongoDB, including import/export, multi-pod targeting, and Git integration.
metadata [options] [deploy-id] [host] [path]               Manages cluster metadata operations, including import and export.
cron [options] [deploy-list] [job-list]                    Manages cron jobs: execute jobs directly or generate and apply K8s CronJob manifests.
fs [options] [path]                                        Manages file storage, defaulting to file upload operations.
test [options] [deploy-list]                               Manages and runs tests, defaulting to the current Underpost default test suite.
monitor [options] <deploy-id> [env]                        Manages health server monitoring for specified deployments.
ssh [options]                                              Manages SSH credentials and sessions for remote access to cluster nodes or services.
run [options] <runner-id> [path]                           Runs specified scripts using various runners.
lxd [options] [vm-id]                                      Manages LXD virtual machines as K3s nodes (control plane or workers).
baremetal [options] [workflow-id]                          Manages baremetal server operations, including installation, database setup, commissioning, and user management.
release [options] [version]                                Release orchestrator for building new versions and deploying releases of the Underpost CLI.
help [command]                                             display help for command

See CLI Docs.