underpost
v3.2.70
Published
Underpost Platform — end-to-end CI/CD and application-delivery toolchain CLI. Covers bare metal, Kubernetes, K3s, kubeadm, LXD, container/image orchestration, secrets, databases, cron jobs, monitoring, SSH, runners, PWA + Workbox delivery, and release orc
Maintainers
Readme
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 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 devSee Docs.
Underpost CLI
underpost ci/cd cli v3.2.70
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. |
See CLI Docs.
