{"id":13876150,"url":"https://github.com/bunnyshell/demo-books","last_synced_at":"2026-02-10T10:22:28.691Z","repository":{"id":77482661,"uuid":"524039334","full_name":"bunnyshell/demo-books","owner":"bunnyshell","description":"Demo app for easily getting started with Bunnyshell","archived":false,"fork":false,"pushed_at":"2024-07-25T17:30:24.000Z","size":766,"stargazers_count":3,"open_issues_count":1,"forks_count":51,"subscribers_count":2,"default_branch":"master","last_synced_at":"2024-11-24T04:32:20.093Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","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/bunnyshell.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":"2022-08-12T10:06:23.000Z","updated_at":"2023-09-04T05:41:03.000Z","dependencies_parsed_at":"2024-01-13T19:46:33.620Z","dependency_job_id":"bc8d4d57-24a2-4827-82f9-f068601bf018","html_url":"https://github.com/bunnyshell/demo-books","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/bunnyshell/demo-books","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bunnyshell%2Fdemo-books","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bunnyshell%2Fdemo-books/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bunnyshell%2Fdemo-books/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bunnyshell%2Fdemo-books/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/bunnyshell","download_url":"https://codeload.github.com/bunnyshell/demo-books/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bunnyshell%2Fdemo-books/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29297105,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-10T09:11:24.369Z","status":"ssl_error","status_checked_at":"2026-02-10T09:10:47.789Z","response_time":65,"last_error":"SSL_read: 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-08-06T06:01:04.276Z","updated_at":"2026-02-10T10:22:28.677Z","avatar_url":"https://github.com/bunnyshell.png","language":"TypeScript","funding_links":[],"categories":["TypeScript","others"],"sub_categories":[],"readme":"# Bunnyshell Books - Demo App\n\nThis app is a CRUD example, composed out of a frontend, one backend service and one database.\nIts purpose is to illustrate how you can quickly get started with Bunnyshell.\n\nSummary of app functional requirements:\n- Each Book has id, title, description, availability status.\n- We can create, retrieve, update, delete Books.\n- There is a Search bar for searching Books by title.\n\nInspired from:\n- https://github.com/bezkoder/react-axios-typescript-example\n- https://github.com/bezkoder/react-axios-typescript-example\n\n\nSummary of app functional requirements:\n- Each Book has id, title, description, availability status.\n- We can create, retrieve, update, delete Books.\n- There is a Search bar for searching Books by title.\n\n\n## Development\nCopy the `.env.sample` to `.env` in order to have env vars for development, as the defaults are set to work with Bunnyshell, in prod mode.\n\nAdd the following line to `/etc/hosts` on your local machine\n\n```\n127.0.0.1 books.local.bunnyshell.com books-api.local.bunnyshell.com\n```\n\nThen, just run `docker compose up` and open the apps:\n- frontend http://books.local.bunnyshell.com:8080\n- backend http://books-api.local.bunnyshell.com:3080\n\n## Projects setup \u0026 run\n\nIn each project directory, you can run:\n\n```\nnpm install\n```\n\n### Compiles and hot-reloads for development\n\n```\nnpm start\n```\n\n## Deployment\nThe backend service can be deployed using the existing Helm Chart and the frontend app can be deployed using the existing Kubernetes manifest files.\n\n### Using the backend Helm Chart\nAvailable parameters that you can customize and write to a `my_values.yaml` file, for example.\n|Name|Description|Value|\n|---|---|---|\n|serviceImage|An existing built image for the service|\"\"|\n|replicas|The number of replicas|1|\n|ingress.className|The ingress class name to be used|nginx|\n|ingress.host|The host that the ingress resource will use|example.com|\n|postgres.host|The database server host|db| \n|postgres.db|The database initial database name|bunny_books|\n|postgres.user|The database authentication username|postgres|\n|postgres.password|The database authentication password|pass|\n|frontendUrl|The URL of the frontend application|https://example.com|\n\n```\nhelm install -f my_values.yaml my-release ./helm/backend\n```\n\n### Using the frontend Kubernetes manifests\n```\nkubectl apply -f ./manifests/frontend\n```\nYou can alter / configure the raw manifests using different tools, like Kustomize \u0026 sed:\n```\ncd manifests/frontend\n\nkustomize create --autodetect --recursive --namespace=my-custom-namespace\n\nkustomize edit set image needsimage=mybuiltimage:latest\n\nkustomize edit add patch --kind Deployment --name frontend --patch '[{\"op\": \"add\", \"path\": \"/spec/template/spec/containers/0/env/-\", \"value\": {\"name\": \"ENV\", \"value\": \"staging\"}}]'\n\nsed -i \"s/frontend.example.com/kmyhost.myapp.com/g\" ingress.yaml\n\nkubectl apply -k .'\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbunnyshell%2Fdemo-books","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbunnyshell%2Fdemo-books","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbunnyshell%2Fdemo-books/lists"}