initial
This commit is contained in:
58
README.md
58
README.md
@@ -1 +1,59 @@
|
||||
# boocode
|
||||
|
||||
Self-hosted single-user developer chat app. v1: chat only.
|
||||
|
||||
## Stack
|
||||
|
||||
- Node 20, Fastify, postgres (porsager/postgres), ws, zod
|
||||
- React 18, Vite, TypeScript, Tailwind v4, shadcn/ui
|
||||
- Postgres 16
|
||||
- pnpm workspaces
|
||||
|
||||
## Layout
|
||||
|
||||
- `apps/server` — Fastify API + WebSocket + inference loop + file-read tools
|
||||
- `apps/web` — React frontend; served by Fastify in production, Vite in dev
|
||||
|
||||
## Local dev
|
||||
|
||||
Requires Node 20, pnpm, Docker (for Postgres), and ripgrep.
|
||||
|
||||
```bash
|
||||
# install
|
||||
pnpm install
|
||||
|
||||
# bring up postgres only
|
||||
cp .env.example .env
|
||||
# edit POSTGRES_PASSWORD if you like; default DATABASE_URL points at the container
|
||||
docker compose up -d boocode_db
|
||||
|
||||
# run server (port 3000) and web (port 5173) in two shells
|
||||
DATABASE_URL=postgres://boocode:devpass@127.0.0.1:5500/boocode \
|
||||
LLAMA_SWAP_URL=http://100.101.41.16:8401 \
|
||||
pnpm dev:server
|
||||
|
||||
pnpm dev:web
|
||||
```
|
||||
|
||||
The Vite dev server proxies `/api` and `/api/ws/*` to the Fastify backend with a
|
||||
synthetic `Remote-User: sam` header so the Authelia auth layer can be skipped
|
||||
during development.
|
||||
|
||||
## Production
|
||||
|
||||
```bash
|
||||
cd /opt/boocode
|
||||
docker compose up --build -d
|
||||
```
|
||||
|
||||
Binds to `100.114.205.53:9500` (Tailscale). Authelia is expected to gate the
|
||||
upstream and inject `Remote-User`. Postgres binds loopback only.
|
||||
|
||||
## What v1 has
|
||||
|
||||
Project sidebar, sessions per project, chat with streaming responses over
|
||||
WebSocket, four file-read tools scoped to the project root (`view_file`,
|
||||
`list_dir`, `grep`, `find_files`), and a model picker driven by llama-swap's
|
||||
`/v1/models`.
|
||||
|
||||
What v1 does not have lives in v2 (terminal pane) and v3 (Coder pane).
|
||||
|
||||
Reference in New Issue
Block a user