{"id":19819960,"url":"https://github.com/rustygreen/raspberry-pi-client","last_synced_at":"2026-06-15T07:32:55.577Z","repository":{"id":38985804,"uuid":"440710585","full_name":"rustygreen/raspberry-pi-client","owner":"rustygreen","description":"Web client application that consumes REST services from the Raspberry Pi Server project","archived":false,"fork":false,"pushed_at":"2023-08-05T01:57:01.000Z","size":338,"stargazers_count":2,"open_issues_count":1,"forks_count":0,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-02-28T20:22:13.201Z","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/rustygreen.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":"2021-12-22T02:34:53.000Z","updated_at":"2024-12-09T01:59:14.000Z","dependencies_parsed_at":"2025-01-11T08:25:13.879Z","dependency_job_id":null,"html_url":"https://github.com/rustygreen/raspberry-pi-client","commit_stats":null,"previous_names":[],"tags_count":18,"template":false,"template_full_name":null,"purl":"pkg:github/rustygreen/raspberry-pi-client","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rustygreen%2Fraspberry-pi-client","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rustygreen%2Fraspberry-pi-client/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rustygreen%2Fraspberry-pi-client/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rustygreen%2Fraspberry-pi-client/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rustygreen","download_url":"https://codeload.github.com/rustygreen/raspberry-pi-client/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rustygreen%2Fraspberry-pi-client/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34353193,"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-06-15T02:00:07.085Z","response_time":63,"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-12T10:20:51.281Z","updated_at":"2026-06-15T07:32:55.561Z","avatar_url":"https://github.com/rustygreen.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 🥧 Raspberry Pi Client\n\nA simple UI to control Raspberry Pi GPIO pins. The `raspberry-pi-client` is a decoupled frontend SPA application designed to communicate with the [raspberry-pi-server project](https://github.com/rustygreen/raspberry-pi-server).\n\n## 🏁 Getting Started\n\nThere are several ways to run the `raspberry-pi-client` application. You can use [Docker](https://www.docker.com/), build it manually and deploy as a static site, or deploy it through [Kubernetes](https://kubernetes.io/).\n\nThe first step is to deploy the [raspberry-pi-server](https://github.com/rustygreen/raspberry-pi-server) to your Raspberry Pi. You will then configure the URL from the Raspberry Pi Server into the client (so it knows where to connect to the server).\n\n![iPad Screenshot](./docs/images/ipad-screenshot.png)\n![Browser Screenshot](./docs/images/browser-screenshot.png)\n\n### Run with Docker\n\n```bash\ndocker run -d --restart=unless-stopped -p 80:80 ghcr.io/rustygreen/raspberry-pi-client:main\n```\n\nTo access the application UI, open a browser and go to the hostname or address where the container was installed.\n\n### Using Docker Compose\n\ndocker-compose.yml\n\n```yaml\nversion: '2'\nservices:\n  frontend:\n    image: ghcr.io/rustygreen/raspberry-pi-client:main\n    ports:\n      - '80:80'\n    environment:\n      # The configuration will consist of one server with URL/title:\n      - 'RPC_SERVER=https://pi-basement.rusty.green'\n      - 'RPC_SERVER_TITLE=Basement Pi'\n```\n\nThen run `docker-compose up`\n\nSee the [docker-compose docs](./docs/docker-compose.md) for more examples.\n\n### Kubernetes\n\ndeployment.yml\n\n```yaml\napiVersion: apps/v1\nkind: Deployment\nmetadata:\n  name: raspberry-pi-client\nspec:\n  selector:\n    matchLabels:\n      app: raspberry-pi-client\n  replicas: 2\n  template:\n    metadata:\n      labels:\n        app: raspberry-pi-client\n    spec:\n      containers:\n        - name: raspberry-pi-client\n          image: ghcr.io/rustygreen/raspberry-pi-client:main\n          env:\n            - name: RPC_SERVER\n              value: https://pi-basement.rusty.green\n            - name: RPC_SERVER_TITLE\n              value: Basement Pi\n          ports:\n            - containerPort: 80\n```\n\nThen run `docker-compose up`\n\nSee the [docker-compose docs](./docs/docker-compose.md) for more examples.\n\n### Run or Build Manually\n\n#### Dependencies\n\n- NodeJS 14+\n- Git\n\n#### Clone and install dependencies\n\n```bash\ngit clone https://github.com/rustygreen/raspberry-pi-client\ncd raspberry-pi-client\nnpm install\n```\n\n#### Run in development\n\n```bash\nnpm run start\n# Go to http://localhost:4200\n```\n\nThe server(s) will be \"mocked\" by default. Modify the `assets/config.json` file to point to real (or different) Raspberry Pi server(s).\n\n#### Build production static site\n\n```bash\nnpm run build:prod # Build production build\n# Deploy: dist/raspberry-pi-client\n```\n\n## Configuration\n\nThe application is configurable by changing the `assets/config.json` file. This config file can be manually changed before building the application (`npm run build:prod`) or after building the application (modify: `dist/raspberry-pi-client/assets/config.json`).\n\nIf you are running the application through Docker or Kubernetes, then you can pass configuration via environment variables. The `config.json` file will be created at container startup time.\n\n#### Environment Variables\n\n_All environment variables are optional_\n\n| Variable         | Description                                                                             | Example                                                     |\n| ---------------- | --------------------------------------------------------------------------------------- | ----------------------------------------------------------- |\n| RPC_SERVER       | The URL to the [raspberry-pi-server](https://github.com/rustygreen/raspberry-pi-server) | https://your-pi-server                                      |\n| RPC_SERVER_TITLE | The title for your Raspberry Pi Server                                                  | Basement Pi                                                 |\n| RPC_CONFIG       | The full JSON configuration to apply (see `assets/config.json`)                         | `{\"servers\": [{\"url\": \"https://pi-basement.rusty.green\"}]}` |\n\n## TODOs\n\n- [x] Add CI/CD\n- [ ] Finish documentation\n- [ ] Add unit tests\n- [ ] Add sample app\n- [ ] Add recipes functionality\n- [ ] Add ability to set server details within app UI\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frustygreen%2Fraspberry-pi-client","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frustygreen%2Fraspberry-pi-client","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frustygreen%2Fraspberry-pi-client/lists"}