43 lines
2.4 KiB
Markdown
43 lines
2.4 KiB
Markdown
# Sankofa HW Infra
|
|
|
|
Hardware procurement, inventory, and operations platform for **sovereign cloud operations**: offer intake, inspection workflows, purchasing controls, asset lifecycle, multi-site management, and integrations. UniFi is used as a **hardware-aware, compliance-relevant infrastructure layer** (product intelligence, support horizon, per-sovereign controller topology). See [docs/architecture.md](docs/architecture.md), [docs/integration-spec-unifi.md](docs/integration-spec-unifi.md), and [docs/sovereign-controller-topology.md](docs/sovereign-controller-topology.md).
|
|
|
|
## Stack
|
|
|
|
- **Monorepo**: pnpm workspaces
|
|
- **API**: Fastify (Node), REST `/api/v1`, JWT + RBAC/ABAC
|
|
- **Web**: React + Vite
|
|
- **DB**: PostgreSQL (Drizzle), S3-compatible object storage
|
|
- **Workflow**: Embedded state machines (PO approval, inspection)
|
|
|
|
## Quick start
|
|
|
|
1. Copy `env.example` to `.env` and set `DATABASE_URL`, optional `S3_*`, `JWT_SECRET`.
|
|
2. Start Postgres: `cd infra && docker compose up -d`
|
|
3. Migrate: `pnpm db:migrate`
|
|
4. Install: `pnpm install`
|
|
5. API: `pnpm --filter @sankofa/api run dev` (port 4000)
|
|
6. Web: `pnpm --filter @sankofa/web run dev` (port 3000)
|
|
|
|
## Scripts
|
|
|
|
- `pnpm run build` — build all packages
|
|
- `pnpm run test` — run tests
|
|
- `pnpm run lint` — lint
|
|
- `pnpm db:migrate` — run DB migrations
|
|
|
|
## Docs
|
|
|
|
- [Architecture](docs/architecture.md)
|
|
- [ERD](docs/erd.md)
|
|
- [OpenAPI](docs/openapi.yaml)
|
|
- [RBAC sovereign operations](docs/rbac-sovereign-operations.md), [Compliance profiles](docs/compliance-profiles.md)
|
|
- [CI/CD](docs/cicd.md)
|
|
- [Integration specs](docs/integration-spec-unifi.md), [Proxmox](docs/integration-spec-proxmox.md), [Redfish](docs/integration-spec-redfish.md)
|
|
- [Purchasing feedback loop](docs/purchasing-feedback-loop.md), [Sovereign controller topology](docs/sovereign-controller-topology.md)
|
|
- [Capacity dashboard spec](docs/capacity-dashboard-spec.md) (RU utilization, power headroom, GPU inventory; UI at `/capacity`)
|
|
- [Operational baseline](docs/operational-baseline.md) (current hardware in-hand; see [data/operational-baseline-hardware.json](data/operational-baseline-hardware.json) for structured import)
|
|
- [Vendor portal](docs/vendor-portal.md) (vendor user login, scoped offers/POs), [Offer ingestion](docs/offer-ingestion.md) (scrape + email intake)
|
|
- [Next steps before Swagger and UI](docs/next-steps-before-swagger-and-ui.md)
|
|
- [Runbooks](docs/runbooks/)
|