skills/README.md
2026-05-12 19:08:00 +02:00

1.5 KiB

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: Authentik forward auth (identity headers)
  • 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:
    go mod tidy
    
  4. Start server:
    go run .
    
  5. Open http://localhost:8080.

Local dev mode (no auth setup)

Set DEV_MODE=true in .env. In this mode, protected routes always authenticate as:

  • sub: demo-user-001
  • email: demo@example.com
  • name: Demo User

Forward auth flow (production)

When DEV_MODE=false, deploy this app behind Authentik forward auth. The proxy/auth layer must validate authentication and pass identity headers to the app. The app reads:

  • X-Authentik-Uid (required; fallback X-Forwarded-User)
  • X-Authentik-Email
  • X-Authentik-Name (fallback X-Forwarded-Preferred-Username)

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