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 dev
Underpost CLI
underpost ci/cd cli v3.2.30
Usage: underpost [options] [command]
Global options
| Option | Description |
|---|---|
-V, --version |
output the version number |
-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. |
env |
Sets environment variables and configurations related to a specific deployment ID. |
static |
Manages static build of page, bundles, and documentation with comprehensive customization options. |
config |
Manages Underpost configurations using various operators. |
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 |
Manages secrets for various platforms. |
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 |
Manages file storage, defaulting to file upload operations. |
test |
Manages and runs tests, defaulting to the current Underpost default test suite. |
monitor |
Manages health server monitoring for specified deployments. |
ssh |
Manages SSH credentials and sessions for remote access to cluster nodes or services. |
run |
Runs specified scripts using various runners. |
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. |
release |
Release orchestrator for building new versions and deploying releases of the Underpost CLI. |