{"id":30119628,"url":"https://github.com/voltade/os","last_synced_at":"2026-02-05T13:32:57.531Z","repository":{"id":304793847,"uuid":"1018948798","full_name":"voltade/os","owner":"voltade","description":"Next gen business software and developer platform","archived":false,"fork":false,"pushed_at":"2025-09-11T09:48:40.000Z","size":2297,"stargazers_count":8,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-01-22T09:44:44.672Z","etag":null,"topics":["argocd","better-auth","bun","cloudnative-pg","drizzle","drizzle-orm","erp","helm","honojs","kubernetes","openfga","postgres","supabase","tanstack","terraform","typescript"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"agpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/voltade.png","metadata":{"files":{"readme":"README.md","changelog":null,"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":"2025-07-13T12:10:34.000Z","updated_at":"2025-09-11T09:48:43.000Z","dependencies_parsed_at":"2025-07-15T17:14:21.133Z","dependency_job_id":"a5ebb9a1-d293-454d-bcd5-a09fd30225ce","html_url":"https://github.com/voltade/os","commit_stats":null,"previous_names":["voltade/voltade-os","voltade/os"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/voltade/os","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/voltade%2Fos","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/voltade%2Fos/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/voltade%2Fos/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/voltade%2Fos/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/voltade","download_url":"https://codeload.github.com/voltade/os/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/voltade%2Fos/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29122619,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-05T10:47:47.471Z","status":"ssl_error","status_checked_at":"2026-02-05T10:45:08.119Z","response_time":65,"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":["argocd","better-auth","bun","cloudnative-pg","drizzle","drizzle-orm","erp","helm","honojs","kubernetes","openfga","postgres","supabase","tanstack","terraform","typescript"],"created_at":"2025-08-10T12:02:38.239Z","updated_at":"2026-02-05T13:32:57.508Z","avatar_url":"https://github.com/voltade.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Setup\n\n## Required tools\n\nBun: `curl -fsSL https://bun.com/install | bash`\n\nDocker: `brew install --cask docker-desktop`\n\nOther tools: `brew install opentofu kubectl kubectl-cnpg kubecm helm k9s fga openfga/tap/fga`\n\n## Terraform\n\nMake sure nothing is running on port `80`, `443`, `5432`, or `6443`.\n\n```bash\nbun tofu:init\nbun tofu:apply\n```\n\nLogin to ArgoCD with username `admin` and password `admin`.\n\n(To destroy the cluster, run `bun tofu:nuke`.)\n\n## Prepare the platform database\n\n```bash\nbun --cwd packages/platform db:reset\n```\n\nThis updates your `packages/platform/.env` file, creates the platform database, and inserts one row into the `environment` table.\n\nNote: If `drizzle-kit` is stuck after outputting `Reading config file`, run `bun run clean \u0026\u0026 bun install` and try again.\n\n## Start the platform web app\n\n```bash\nbun --cwd packages/platform dev\n```\n\nSign in using `admin@voltade.com`. Hint: the six-digit verification code is printed in the terminal.\n\nThis also serves an `/environment` endpoint which tells ArgoCD to create a CNPG cluster corresponding to the row inserted, which has one database (the \"environment database\").\n\n### Resetting the environment database and OpenFGA\n\nThe core-schema reset does two things:\n- Resets/recreates the environment database and applies the schema, then seeds it.\n- Resets the OpenFGA store and writes the authorization model, updating `packages/core-schema/.env`.\n\n1) Ensure the OpenFGA API is reachable on localhost:8080. Use k9s to port-forward the `openfga` service in the `environment` namespace\n\n2) Run the reset:\n```bash\nbun --cwd packages/core-schema db:reset\n \n\nTroubleshooting:\n- If you see “Cannot reach FGA server” from `scripts/fga-reset.sh`, make sure the port-forward is active.\n- Validate connectivity:\n```bash\nfga store list\n```\n```\n\n## Connect the app template or an app to the environment database\n\nFor the app template, create and edit `apps/core/app-template/.env` with reference to `.env.example`.\n\nFor some app, e.g., `education/registration`:\n\n- Edit `apps/education/registration/.env` with reference to `.env.example`.\n- You will also need to change the appropriate line in `pg-rest.ts` to:\n  ```\n  const pgRestUrl = 'http://postgrest.voltade-main.127.0.0.1.nip.io';\n  ```\n\n## Start the app template or an app\n\n```bash\n# For the app template:\nbun --cwd apps/core/app-template dev\n\n# For an app:\nbun --cwd apps/education/registration dev\n```\n\nIf your development server is not starting, run `bun run clean:all \u0026\u0026 bun install` from the root of the repository before continuing to troubleshoot.\n\n## Install an app in the platform web app\n\nFirst, log in using the email `admin@voltade.com`. Hint: The six-digit verification code is printed in the terminal where the platform web app is running.\n```bash\nbun voltade login\n```\n\nThen, install the app by referencing the directory of the app, for example:\n```bash\nbun voltade app:install apps/education/registration\n```\n\nThe app should appear in the platform web app.\n\n# Miscellaneous Notes\n## Installation of PostgreSQL extensions\nread\n- Add source compiling to `docker/postgres/Dockerfile`: For most extensions that is not shipped with Postgres.\n\n- Add to `shared_preload_libraries` in the [cnpg-cluster.yaml](argocd/platform/common/base/cnpg-cluster.yaml): If it requires being loaded at startup, such as _pg_stat_statements_, _supabase_vault_.\n\n- Add to the `postInitApplicationSQL` in the [cnpg-cluster.yaml](argocd/platform/common/base/cnpg-cluster.yaml): If the installation requires superuser privileges, **AND** it introduces new objects (functions, tables, etc.) that need to be granted access to the `platform_admin` user. such as _supabase_vault_.\n\n- Add to the `extensions` section in the [cnpg-database.yaml](argocd/platform/platform/base/cnpg-database.yaml): If it requires superuser to be installed, such as _plv8_, _pgcrypto_.\n\n- Add it to [extensions](packages/platform/extensions) directory and link it to the [current.sql](packages/platform/migrations/current.sql): If it's pure SQL that doesn't require superuser privileges, such as _nanoid_.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvoltade%2Fos","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fvoltade%2Fos","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvoltade%2Fos/lists"}