Web admin for get-installer
registries. Laravel 12 + Inertia + React + REST API + OAuth.
Status: Laravel bootstrap landed. PHP skeleton + PHPUnit + Vite are installed and committed; CI is green on PHP 8.3 + 8.4 × Linux + macOS. Remaining steps in
INITIALIZE.md(Passport, Inertia + React, multi-tenancy, OpenAPI validator wiring, Pest swap) run from this baseline.
get-installer reads a JSON registry of products + versions and
installs them onto user machines. For solo use, the registry sits
in a git repo. For teams or fleets, it needs a backend:
- Multi-tenant registries (one per organisation).
- OAuth (GitHub / GitLab / Microsoft Entra) for admin access.
- REST API at versioned
/api/v1/for programmatic edits. - Inertia + React UI for human admins.
- Background workers: PyPI yank scans, audit-log compaction.
- Audit log per tenant: every registry edit recorded.
- Phase E unlocked: signed-URL handoff to the installer for domain-locked installs.
The design rationale + alternatives considered live in the
upstream sibling repo:
simtabi/get-installer/REPO-PROPOSAL-admin.md.
- Clone this repo.
- Follow
INITIALIZE.mdend-to-end. It runscomposer create-project laravel/laravelin this directory, then installs Passport, Inertia, React, and the test stack. - Read
docs/architecture.mdfor the multi-tenant data model. - Read
docs/api/v1.yaml(OpenAPI 3.1 spec) for the contract surface; controllers conform to it.
| Bootstrap | ✓ Laravel 12 + Vite skeleton landed (059a60d) |
| Tests | PHPUnit (Laravel 12 default); Pest swap is INITIALIZE.md step 6 |
| Passport / OAuth | pending (INITIALIZE.md step 2) |
| Inertia + React | pending (INITIALIZE.md step 3) |
| Multi-tenancy | pending (INITIALIZE.md step 4) |
| API spec | placeholder at docs/api/v1.yaml (no controllers yet) |
| CI | ✓ PHP 8.3 + 8.4 × Linux + macOS, Node 22 |
| Trusted publishers | N/A (Laravel app, not a package) |
MIT — see LICENSE.
Simtabi LLC · contributions welcome once the bootstrap has run.