{"id":21969613,"url":"https://github.com/cinderblock/node-server-ui-base","last_synced_at":"2026-04-08T18:31:09.008Z","repository":{"id":38820729,"uuid":"157133697","full_name":"cinderblock/node-server-ui-base","owner":"cinderblock","description":"A skeleton for a multi part javascript node server and webUI","archived":false,"fork":false,"pushed_at":"2023-04-29T20:27:02.000Z","size":5068,"stargazers_count":0,"open_issues_count":8,"forks_count":1,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-05-31T14:10:38.135Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/cinderblock.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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}},"created_at":"2018-11-12T00:03:19.000Z","updated_at":"2021-07-03T00:17:39.000Z","dependencies_parsed_at":"2024-11-29T14:24:16.647Z","dependency_job_id":"5cf4eef9-6167-4e55-8362-3e7cc131615b","html_url":"https://github.com/cinderblock/node-server-ui-base","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/cinderblock/node-server-ui-base","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cinderblock%2Fnode-server-ui-base","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cinderblock%2Fnode-server-ui-base/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cinderblock%2Fnode-server-ui-base/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cinderblock%2Fnode-server-ui-base/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/cinderblock","download_url":"https://codeload.github.com/cinderblock/node-server-ui-base/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cinderblock%2Fnode-server-ui-base/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31568575,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-08T14:31:17.711Z","status":"ssl_error","status_checked_at":"2026-04-08T14:31:17.202Z","response_time":54,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":[],"created_at":"2024-11-29T14:22:55.490Z","updated_at":"2026-04-08T18:31:08.986Z","avatar_url":"https://github.com/cinderblock.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Node Server UI base\n\nSkeleton for a sever/client TypeScript pair.\n\n## Details\n\nThis skeleton has 3 parts.\n\n1. A super simple node.js daemon skeleton with socket.io and colorful logging facilities.\n2. Basic React app skeleton with webpack, TypeScript, and socket.io client (with fancy state synchronization).\n3. Deployment scripts\n\n## create-node-server-ui-app\n\nSimple steps to make a new project/app based on this skeleton.\n\n1. clone\n1. Update `README.md` and `package.json`\n1. `git commit -am 'Initial commit'`\n\n## WIP\n\nThis is a working WIP.\nThere are some dangling broken things.\nOpen a ticket.\n\n## Development\n\nThe development environment is intended to be a first class and modern.\n\n- Reload on save for client ui and server daemon running locally or remotely.\n- Full color easy console logging.\n- Easy debugging with source maps everywhere.\n- ESLint configured and integrated with editor\n- Dependency changes automatically maintained with git hooks.\n\n### Prerequisites\n\n[**Node 10+**](https://nodejs.org/en/download) must be installed on your development system.\nNode.js includes the `npm` binary.\n\n### Setup\n\nInstall dependencies and setup development environment.\n\n```bash\nnpm i\n```\n\n#### Non-global Yarn?\n\nWhile easier if Yarn is installed globally, this works fine without it.\n\n```bash\n# Installs yarn locally\nnpm install\n# Setup development environment\nnpm run setup\n```\n\n\u003e You can run any command from the cheat sheet by replacing `yarn` with `npm run`.\n\n### Running\n\nTo run this full system, **two** separate programs need to be run.\nOne for the web **UI** and one to actually do something persistent, the **daemon**.\n\n### Remote Execution\n\nConfigs for daemons often need to be slightly different than when running locally.\nThe deploy script will pick a config file from [`daemon/configs/`](daemon/configs).\n\nConfigs for daemons often need to be slightly different than when running locally.\nThe deploy script will replace `daemon/config.ts` with `daemon/config.remote.ts` on the remote system before execution.\n\n### Suggested Environment\n\nUse Visual Studio Code.\n\n### Cheat sheet\n\nAll of these are run from the top level directory.\n\n| Command                                         | Description                                                                           |\n| ----------------------------------------------- | ------------------------------------------------------------------------------------- |\n| `npm i`                                         | Setup your local machine for development. Do this again to fix problems in dev env    |\n| `npm run dev -w ui`                             | Run the web **ui** on your local machine (_dev mode_)                                 |\n| `npm run dev -w daemon`                         | Run **daemon** locally in watch mode with most recent local code                      |\n| `npm run dev:daemon -w deploy`                  | Run local compiler in watch mode and **daemon** on remote with most recent local code |\n| `npm -w ui i some-package`                      | Add `some-package` to the ui                                                          |\n| `npx -w ui ncu -u`                              | Upgrade ui packages to latest versions                                                |\n| `npm upgrade-all`                               | Upgrade all packages to latest versions                                               |\n| `npm run remote -- install --save some-package` | Add `some-package` to the daemon using the remote's npm                               |\n| `npm run remote -- upgrade`                     | Upgrade daemon packages to latest version using the remote's npm                      |\n| `npm run remote -- kill`                        | Kill the daemon on remote                                                             |\n| `npm run remote -- shutdown`                    | Shutdown the remote system                                                            |\n| `npm run remote -- reboot`                      | Reboot the remote system                                                              |\n\n### Remote Host Setup\n\nSome commands probably need to be run on the target manually once:\n\n```bash\n# Setup package sources\ncurl -sL https://deb.nodesource.com/setup_lts.x | sudo -E bash -\nsudo apt -y update\nsudo apt -y upgrade\n\n# Install needed dependencies\nsudo apt install -y build-essential libudev-dev libcurl4-gnutls-dev nodejs\n\n# Add Cameron's SSH keys\nmkdir ~/.ssh\ncurl https://github.com/cinderblock.keys \u003e ~/.ssh/authorized_keys\n```\n\n### Auto Lint/Formatting\n\nWe're using [ESLint](https://eslint.org/) (with [Prettier](https://prettier.io/)) to check and enforce consistent style.\n\nFor consistency and simplicity, we use `eslint` to run `prettier` using the [`eslint-plugin-prettier`](https://github.com/prettier/eslint-plugin-prettier) which \"Runs Prettier as an ESLint rule and reports differences as individual ESLint issues.\"\n\nWhile running `prettier` manually will work, it should always be preferred to run `eslint`, which is a `package.json#script`: `\"lint\"`, runnable with: `npm run lint`.\n\n### Code Spellcheck\n\nWe use `cspell` to check our code's spelling.\n\nFor rarer internal words, using a per-file local word ignore is recommended.\nFor more common words, especially ones that are exposed in a public interface should be in a reusable [`dictionary.txt`](dictionary.txt).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcinderblock%2Fnode-server-ui-base","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcinderblock%2Fnode-server-ui-base","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcinderblock%2Fnode-server-ui-base/lists"}