init
This commit is contained in:
commit
4f6d7cfe60
16 changed files with 1341 additions and 0 deletions
49
README.md
Normal file
49
README.md
Normal file
|
|
@ -0,0 +1,49 @@
|
|||
# LLM Skill Marketplace
|
||||
|
||||
Go + Postgres marketplace where authenticated users can upload LLM skill files, sell them, and buyers can unlock and copy/download purchased skills.
|
||||
|
||||
## Stack
|
||||
- Backend: Go (`go run .`)
|
||||
- Frontend: vanilla HTML/CSS/JS
|
||||
- Database: Postgres
|
||||
- Auth: external OIDC JWT validation via JWKS
|
||||
- Config: environment variables with `.env` support
|
||||
|
||||
## Run
|
||||
1. Copy `.env.example` to `.env` and set values.
|
||||
2. Start Postgres and create the target database.
|
||||
3. Install dependencies:
|
||||
```bash
|
||||
go mod tidy
|
||||
```
|
||||
4. Start server:
|
||||
```bash
|
||||
go run .
|
||||
```
|
||||
5. Open `http://localhost:8080`.
|
||||
|
||||
## Local dev mode (no auth setup)
|
||||
Set `DEV_MODE=true` in `.env` (enabled by default in `.env.example`).
|
||||
In this mode, protected routes always authenticate as:
|
||||
- `sub`: `demo-user-001`
|
||||
- `email`: `demo@example.com`
|
||||
- `name`: `Demo User`
|
||||
|
||||
OIDC variables are not required when `DEV_MODE=true`.
|
||||
|
||||
## Auth flow
|
||||
API and protected pages require `Authorization: Bearer <access_token>` when `DEV_MODE=false`.
|
||||
|
||||
For quick local testing, set in browser console:
|
||||
```js
|
||||
localStorage.setItem("access_token", "<your_oidc_access_token>");
|
||||
```
|
||||
|
||||
## Key routes
|
||||
- `GET /dashboard`: upload form
|
||||
- `GET /skills`: browse listings and buy
|
||||
- `GET /my-skills`: purchased skills and copy/download access
|
||||
- `POST /api/upload`: upload and list a skill
|
||||
- `POST /api/purchase`: buy a skill
|
||||
- `GET /api/my-skills`: owned purchased list
|
||||
- `GET /uploads/:id`: download unlocked skill file
|
||||
Loading…
Add table
Add a link
Reference in a new issue