{"id":20109825,"url":"https://github.com/hyper63/hyper-host-render","last_synced_at":"2025-11-29T04:03:23.103Z","repository":{"id":224597566,"uuid":"583719519","full_name":"hyper63/hyper-host-render","owner":"hyper63","description":"A Render Blueprint to deploy the hyper Service Framework onto Render","archived":false,"fork":false,"pushed_at":"2024-02-26T18:39:57.000Z","size":224,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-03-02T18:32:23.291Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://docs.hyper.io/","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/hyper63.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}},"created_at":"2022-12-30T17:25:33.000Z","updated_at":"2024-03-17T19:37:37.000Z","dependencies_parsed_at":"2024-02-26T20:27:54.443Z","dependency_job_id":"c6bba0ba-d467-4331-9894-81f3b7f487c8","html_url":"https://github.com/hyper63/hyper-host-render","commit_stats":null,"previous_names":["hyper63/hyper-host-render"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/hyper63/hyper-host-render","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hyper63%2Fhyper-host-render","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hyper63%2Fhyper-host-render/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hyper63%2Fhyper-host-render/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hyper63%2Fhyper-host-render/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/hyper63","download_url":"https://codeload.github.com/hyper63/hyper-host-render/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hyper63%2Fhyper-host-render/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":27333863,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-11-29T02:00:06.589Z","response_time":56,"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":[],"created_at":"2024-11-13T18:09:34.630Z","updated_at":"2025-11-29T04:03:23.074Z","avatar_url":"https://github.com/hyper63.png","language":"TypeScript","readme":"# hyper on Render\n\nThis is a recipe for deploying the [hyper Service Framework](https://docs.hyper.io) to\n[Render](https://render.com)\n\n[![Deploy to Render](https://render.com/images/deploy-to-render-button.svg)](https://render.com/deploy?repo=https://github.com/hyper63/hyper-host-render)\n\n\u003c!-- toc --\u003e\n\n- [Motivation](#motivation)\n- [How's It Work](#hows-it-work)\n- [Usage](#usage)\n  - [Using `hyper-connect`](#using-hyper-connect)\n\n\u003c!-- tocstop --\u003e\n\n## Motivation\n\nThe hyper Service Framework api is built to be a consistent service boundary between your\napplications and the services tier that powers them, such that your apps and business logic do not\nbecome coupled or beholden to your services tier. This allows application devs to focus on business\nlogic, and DevOps devs to focus on infra and network topology, all while discouraging\n[vendor lock-in](https://www.cloudflare.com/learning/cloud/what-is-vendor-lock-in/).\n\nThe hyper Service Framework itself is built such that it can be deployed to many different\nproviders/platforms. hyper can even be self hosted on your own infrastructure or cloud.\n\nIf you're a small team, or would rather not manage infrastructure or dive into a Cloud Provider, you\nmight choose to use a `PaaS` instead. A popular option is [Render](https://render.com) which offers\nnear-turnkey hosting for containerized applications, as well as some managed service offerings.\n\n## How's It Work\n\nThis recipe uses Render's [Infra as Code](https://render.com/docs/infrastructure-as-code) feature.\nUsing the `render.yaml` file, 5 `docker` services are provisioned:\n\n- [x] The hyper Service, using the [RESTful app](https://docs.hyper.io/docs/api-reference/rest/), so\n      that you may consume your services over Http.\n- [x] MongoDB to power hyper `Data` Services\n- [x] Redis to power hyper `Cache` and `Queue` Services\n- [x] Elasticsearch to power hyper `Search` Services\n- [x] MinIO to power hyper `Storage` Services\n\nWhere needed a [Render Disk](https://render.com/docs/disks) is mounted on the service, for\nPersistent storage.\n\nThere is also a small middleware added to the hyper Server that enforces AuthN using an\nAuthorization `Bearer` JWT token in the authorization header.\n\nMongoDB, Redis, and Elasticsearch are all deployed as\n[Private Services](https://render.com/docs/private-services) only accessible from your other Render\nservices, and not from the internet.\n\nThe `hyper` service is deployed as a public [Web Service](https://render.com/docs/web-services), so\nthat it can receive traffic from the internet.\n\n\u003e If your application consuming `hyper` is also deployed on Render, you could also change the\n\u003e `hyper` Render Blueprint to be deployed as a Render Private Service, so that it is only accessible\n\u003e from your other Render services.\n\nThe `MinIO` service is made public, so that it may receive requests to `presigned url` retrieved via\nhyper Storage services.\n\n\u003e You can also add the [`MinIO Console`](https://hub.docker.com/r/minio/console) as public web\n\u003e service to your `Render Blueprint`!\n\n## Usage\n\nStart by cloning the repo and connecting to your Render account. Render will start to deploy each of\nthe services into your account.\n\n\u003e Because the `hyper` service depends on the other services, more specifically the secret values\n\u003e generated by each of those services, Render will pause deploying the `hyper` service until the\n\u003e others are deployed.\n\nOnce all the services are deployed, navigate to the `hyper` service's\n[Environment Variables](https://render.com/docs/configure-environment-variables), and obtain the\n`SUB` and `SECRET`. You will use these to create and sign `JWT`s to consume your hyper services.\n\n\u003e You can also use the [`hyper-connect`](https://www.npmjs.com/package/hyper-connect) SDK to consume\n\u003e hyper, which creates and signs JWTs automatically for you.\n\n### Using `hyper-connect`\n\nOnce you have your `SUB` and `SECRET` that are generated by Render on the `hyper` service and its\npublic Render url. You can use these as part of your connection string you pass to\n[`hyper-connect`](https://docs.hyper.io/docs/build/hyper-connect.html):\n\n```ts\nimport { connect } from 'hyper-connect';\n\nconst { data, cache, storage, search, queue } = connect(\n  `https://{SUB}:{SECRET}@{RENDER_HOST}/{DOMAIN}`,\n);\n```\n\nhyper `Services` are created on a hyper `Server`, within a hyper `Domain`.\n\nA `Domain` is simply a logical grouping of hyper `Services` hosted on a hyper `Server`.\n\nhyper `Domains` are commonly used to distinguish sets of hyper `Services` across applications ie. a\n`Foo App Domain` and `Bar App Domain`.\n\nLearn more [here](https://docs.hyper.io/docs/concepts/clean-cloud-architecture.html#hyper-domain)\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhyper63%2Fhyper-host-render","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhyper63%2Fhyper-host-render","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhyper63%2Fhyper-host-render/lists"}