mirror of
https://github.com/hanzoai/bot-hub.git
synced 2026-10-30 18:46:42 +00:00
Migration from Convex/Vercel to self-hosted infrastructure: API Backend (api/): - Hono server with PostgreSQL (Drizzle ORM) + pgvector - Skills CRUD, search (hybrid vector + lexical), auth (hanzo.id OAuth) - Upload (MinIO S3), stars, comments, API tokens - Rate limiting middleware, session management Frontend Adapter (src/lib/): - api.ts: REST API client replacing Convex SDK - hooks.ts: React hooks replacing convex/react useQuery/useMutation - AuthContext.tsx: Auth provider replacing ConvexAuthProvider Deployment: - Dockerfile (multi-stage: API build + web build + production) - K8s manifests for hub.hanzo.bot on hanzo-k8s - GitHub Actions CI/CD (build → GHCR → deploy) Rebrand: - clawhub/clawdhub/ClawHub → bothub/Bot Hub - Domain: clawhub.ai → hub.hanzo.bot - CLI: clawhub → bothub - Package: @hanzo/bot-hub-api
1.3 KiB
1.3 KiB
summary, read_when
| summary | read_when | ||
|---|---|---|---|
| Auth overview: GitHub OAuth (web) + API tokens (CLI). |
|
Auth
Web auth (GitHub OAuth)
- Convex Auth + GitHub OAuth App.
- GitHub is the only supported login provider.
- Env vars:
AUTH_GITHUB_IDAUTH_GITHUB_SECRETCONVEX_SITE_URL(used by auth config)
Local setup steps are in the repo root README.md.
API tokens (CLI)
The CLI uses a long-lived API token (Bearer token) for publish/sync/delete.
Browser flow (default)
bothub login does:
- Starts a loopback HTTP server on
127.0.0.1(random port). - Opens
<site>/cli/auth?redirect_uri=http://127.0.0.1:<port>/callback&state=.... - Web UI requires GitHub login, then creates a token and redirects back to the loopback server.
- CLI stores the token in the global config file.
Headless flow
Create a token in the web UI (Settings → API tokens) and paste it:
bothub login --token clh_...
Token storage
Default global config path:
- macOS:
~/Library/Application Support/bothub/config.json
Override:
BOTHUB_CONFIG_PATH=/path/to/config.json(legacyCLAWDHUB_CONFIG_PATH)
Revocation
- Tokens can be revoked in the web UI.
- Revoked tokens return
401 Unauthorizedon CLI endpoints.