{"id":35542632,"url":"https://github.com/underpostnet/pwa-microservices-template-ghpkg","last_synced_at":"2026-05-31T18:01:00.411Z","repository":{"id":259804031,"uuid":"879350837","full_name":"underpostnet/pwa-microservices-template-ghpkg","owner":"underpostnet","description":"Base template for pwa/api-rest projects.","archived":false,"fork":false,"pushed_at":"2026-05-23T22:40:40.000Z","size":7841,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-05-23T23:21:31.850Z","etag":null,"topics":["api-rest","github-pages","pwa","template"],"latest_commit_sha":null,"homepage":"https://underpostnet.github.io/pwa-microservices-template-ghpkg/","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/underpostnet.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2024-10-27T17:16:21.000Z","updated_at":"2026-05-23T22:40:43.000Z","dependencies_parsed_at":"2024-10-28T04:23:27.161Z","dependency_job_id":"e01e8818-51a0-4ca4-842e-757b3487b40c","html_url":"https://github.com/underpostnet/pwa-microservices-template-ghpkg","commit_stats":null,"previous_names":["underpostnet/pwa-microservices-template-ghpkg"],"tags_count":176,"template":false,"template_full_name":null,"purl":"pkg:github/underpostnet/pwa-microservices-template-ghpkg","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/underpostnet%2Fpwa-microservices-template-ghpkg","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/underpostnet%2Fpwa-microservices-template-ghpkg/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/underpostnet%2Fpwa-microservices-template-ghpkg/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/underpostnet%2Fpwa-microservices-template-ghpkg/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/underpostnet","download_url":"https://codeload.github.com/underpostnet/pwa-microservices-template-ghpkg/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/underpostnet%2Fpwa-microservices-template-ghpkg/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33735786,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-05-31T02:00:06.040Z","response_time":95,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["api-rest","github-pages","pwa","template"],"created_at":"2026-01-04T05:16:36.365Z","updated_at":"2026-05-31T18:01:00.394Z","avatar_url":"https://github.com/underpostnet.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://underpost.net/assets/splash/apple-touch-icon-precomposed.png\" alt=\"underpost engine core server\"/\u003e\n\u003c/p\u003e\n\n\u003cdiv align=\"center\"\u003e\n\n\u003ch1\u003eunderpost\u003c/h1\u003e\n\n\u003c/div\u003e\n\n\u003cdiv align=\"center\"\u003e\n\n\u003ca target=\"_top\" href='https://download.rockylinux.org/pub/rocky/9/'\u003e\u003cimg alt='rockylinux' src='https://img.shields.io/badge/Rocky Linux v9.6-100000?style=flat\u0026logo=rockylinux\u0026logoColor=white\u0026labelColor=10b981\u0026color=727273'/\u003e\u003c/a\u003e \u003ca target=\"_top\" href='https://www.npmjs.com/package/npm?activeTab=versions'\u003e\u003cimg alt='npm' src='https://img.shields.io/badge/npm v11.6.2-100000?style=flat\u0026logo=npm\u0026logoColor=white\u0026labelColor=CB3837\u0026color=727273'/\u003e\u003c/a\u003e \u003ca target=\"_top\" href='https://nodejs.org/download/release'\u003e\u003cimg alt='nodedotjs' src='https://img.shields.io/badge/node v24.15.0-100000?style=flat\u0026logo=nodedotjs\u0026logoColor=white\u0026labelColor=5FA04E\u0026color=727273'/\u003e\u003c/a\u003e \u003ca target=\"_top\" href='https://pgp.mongodb.com/'\u003e\u003cimg alt='mongodb' src='https://img.shields.io/badge/mongodb_server v7.0-100000?style=flat\u0026logo=mongodb\u0026logoColor=white\u0026labelColor=47A248\u0026color=727273'/\u003e\u003c/a\u003e\n\n\u003c/div\u003e\n\n\u003cdiv align=\"center\"\u003e\n\n[![Node.js CI](https://github.com/underpostnet/engine/actions/workflows/docker-image.ci.yml/badge.svg?branch=master)](https://github.com/underpostnet/engine/actions/workflows/docker-image.ci.yml) [![Test](https://github.com/underpostnet/engine/actions/workflows/coverall.ci.yml/badge.svg?branch=master)](https://github.com/underpostnet/engine/actions/workflows/coverall.ci.yml) [![Downloads](https://img.shields.io/npm/dm/underpost.svg)](https://www.npmjs.com/package/underpost) [![](https://data.jsdelivr.com/v1/package/npm/underpost/badge)](https://www.jsdelivr.com/package/npm/underpost) [![Socket Badge](https://socket.dev/api/badge/npm/package/underpost/3.2.12)](https://socket.dev/npm/package/underpost/overview/3.2.12) [![Coverage Status](https://coveralls.io/repos/github/underpostnet/engine/badge.svg?branch=master)](https://coveralls.io/github/underpostnet/engine?branch=master) [![Version](https://img.shields.io/npm/v/underpost.svg)](https://www.npmjs.org/package/underpost) [![License](https://img.shields.io/npm/l/underpost.svg)](https://www.npmjs.com/package/underpost)\n\n\u003c/div\u003e\n\n#### Base template for pwa/api-rest projects.\n\n## Underpost Platform\n\n**Underpost** is an platform for application delivery, from infrastructure to runtime. The `underpost` npm package is its CLI toolchain surface.\n\nThe project covers:\n\n- **Bare metal provisioning** on Rocky Linux 9.\n- **Kubernetes / K3s / kubeadm / LXD** workflows for production, edge, and isolated workloads.\n- **GitHub OSS repository flow** — clone, pull, push, commit, release, and CI integrations as first-class CLI subcommands.\n- **CI/CD orchestration** — GitHub Actions integrations, container builds, multi-environment deployments.\n- **Static build + PWA delivery** — every deploy ships as an installable Progressive Web App with Workbox-based offline support.\n- **Cloudinary-backed static asset flow** for image/asset delivery.\n- **ERP/CRM-style PWA base applications** as the default workload.\n- **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`).\n\n\u003ca target=\"_top\" href=\"Https://github.com/underpostnet/engine/blob/master/src/client/public/cyberia-docs/UNDERPOST-PLATFORM.md\"\u003eSee Detailed platform doc.\u003c/a\u003e\n\n### Architectural roles (Cyberia stack)\n\nWhen the platform is hosting the Cyberia MMO extension, three independent runtime processes participate. Their boundaries are non-overlapping.\n\n| Process                              | Role                                                                                                                                                                       |\n| ------------------------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| **engine-cyberia** (Node.js)         | Content authority: maps, object layers, atlas/asset metadata, world configuration, persistence, validation, gRPC + REST data services, editor backend, asset distribution. |\n| **cyberia-server** (Go)              | Authoritative simulation runtime: tick advancement, AOI replication, input command processing, snapshot generation.                                                        |\n| **cyberia-client** (C → WebAssembly) | Presentation runtime: rendering, UI, input capture, prediction, reconciliation, interpolation, client-side presentation defaults.                                          |\n\nThe 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.\n\n\u003ca target=\"_top\" href=\"https://github.com/underpostnet/engine-cyberia/blob/master/src/client/public/cyberia-docs/ARCHITECTURE.md\"\u003eSee detailed Cyberia architecture.\u003c/a\u003e\n\n## Create a new project\n\n```bash\nnpm install -g underpost\n```\n\n```bash\nunderpost new app-name\n```\n\nAfter template installation, the server will be running on \u003ca target=\"_top\" href=\"http://localhost:4001\"\u003ehttp://localhost:4001\u003c/a\u003e\n\n## Usage\n\n```bash\ncd app-name\n```\n\nBuild client bundle\n\n```bash\nnpm run build\n```\n\nRun dev client server\n\n```bash\nnpm run dev\n```\n\n\u003ca target=\"_top\" href=\"https://www.nexodev.org/docs?cid=src\"\u003eSee Docs.\u003c/a\u003e\n\n\u003c!-- cli-index-start --\u003e\n## underpost ci/cd cli v3.2.12\n\n### Usage: `underpost [options] [command]`\n  ```\n Options:\n  -V, --version                                              output the version number\n  -h, --help                                                 display help for command\n\nCommands:\n  new [options] [app-name]                                   Initializes a new Underpost project, service, or configuration.\n  client [options] [deploy-id] [sub-conf] [host] [path]      Builds client assets, single replicas, and/or syncs environment ports.\n  start [options] \u003cdeploy-id\u003e [env]                          Initiates application servers, build pipelines, or other defined services based on the deployment ID.\n  clone [options] \u003curi\u003e                                      Clones a specified GitHub repository into the current directory.\n  pull [options] \u003cpath\u003e \u003curi\u003e                                Pulls the latest changes from a specified GitHub repository.\n  cmt [options] [path] [commit-type] [module-tag] [message]  Manages commits to a GitHub repository, supporting various commit types and options.\n  push [options] \u003cpath\u003e \u003curi\u003e                                Pushes committed changes from a local repository to a remote GitHub repository.\n  env [deploy-id] [env] [subConf]                            Sets environment variables and configurations related to a specific deployment ID.\n  static [options]                                           Manages static build of page, bundles, and documentation with comprehensive customization options.\n  config [options] \u003coperator\u003e [key] [value]                  Manages Underpost configurations using various operators.\n  root                                                       Displays the root path of the npm installation.\n  ip [options] [ips]                                         Displays the current public machine IP addresses.\n  cluster [options] [pod-name]                               Manages Kubernetes clusters, defaulting to Kind cluster initialization.\n  deploy [options] [deploy-list] [env]                       Manages application deployments, defaulting to deploying development pods.\n  secret [options] \u003cplatform\u003e                                Manages secrets for various platforms.\n  image [options]                                            Manages Docker images, including building, saving, and loading into Kubernetes clusters.\n  install                                                    Quickly imports Underpost npm dependencies by copying them.\n  db [options] [deploy-list]                                 Manages database operations with support for MariaDB and MongoDB, including import/export, multi-pod targeting, and Git integration.\n  metadata [options] [deploy-id] [host] [path]               Manages cluster metadata operations, including import and export.\n  cron [options] [deploy-list] [job-list]                    Manages cron jobs: execute jobs directly or generate and apply K8s CronJob manifests.\n  fs [options] [path]                                        Manages file storage, defaulting to file upload operations.\n  test [options] [deploy-list]                               Manages and runs tests, defaulting to the current Underpost default test suite.\n  monitor [options] \u003cdeploy-id\u003e [env]                        Manages health server monitoring for specified deployments.\n  ssh [options]                                              Manages SSH credentials and sessions for remote access to cluster nodes or services.\n  run [options] \u003crunner-id\u003e [path]                           Runs specified scripts using various runners.\n  lxd [options] [vm-id]                                      Manages LXD virtual machines as K3s nodes (control plane or workers).\n  baremetal [options] [workflow-id]                          Manages baremetal server operations, including installation, database setup, commissioning, and user management.\n  release [options] [version]                                Release orchestrator for building new versions and deploying releases of the Underpost CLI.\n  help [command]                                             display help for command\n \n```\n\u003c!-- cli-index-end --\u003e\n\n\u003ca target=\"_top\" href=\"https://github.com/underpostnet/pwa-microservices-template/blob/master/CLI-HELP.md\"\u003eSee CLI Docs.\u003c/a\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Funderpostnet%2Fpwa-microservices-template-ghpkg","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Funderpostnet%2Fpwa-microservices-template-ghpkg","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Funderpostnet%2Fpwa-microservices-template-ghpkg/lists"}