Files
GearBox/README.md
Jean-Luc Makiola 725901623b chore: unify dev setup with concurrently
Adds concurrently to start both the Vite frontend and Hono backend simultaneously in one terminal via the `bun run dev` command. Also updates documentation in README.md and CLAUDE.md to reflect the new development workflow.
2026-03-24 09:28:31 +01:00

122 lines
2.9 KiB
Markdown

# GearBox
A single-user web app for managing gear collections (bikepacking, sim racing, etc.), tracking weight and price, and planning purchases through research threads.
## Features
- Organize gear into categories with custom icons
- Track weight and price for every item
- Create setups (packing lists) from your collection with automatic weight/cost totals
- Research threads for comparing candidates before buying
- Image uploads for items and candidates
## Quick Start (Docker)
### Docker Compose (recommended)
Create a `docker-compose.yml`:
```yaml
services:
gearbox:
image: gitea.jeanlucmakiola.de/makiolaj/gearbox:latest
container_name: gearbox
ports:
- "3000:3000"
environment:
- NODE_ENV=production
- DATABASE_PATH=./data/gearbox.db
volumes:
- gearbox-data:/app/data
- gearbox-uploads:/app/uploads
healthcheck:
test: ["CMD", "bun", "-e", "fetch('http://localhost:3000/api/health').then(r=>r.ok?process.exit(0):process.exit(1)).catch(()=>process.exit(1))"]
interval: 30s
timeout: 5s
start_period: 10s
retries: 3
restart: unless-stopped
volumes:
gearbox-data:
gearbox-uploads:
```
Then run:
```bash
docker compose up -d
```
GearBox will be available at `http://localhost:3000`.
### Docker
```bash
docker run -d \
--name gearbox \
-p 3000:3000 \
-e NODE_ENV=production \
-e DATABASE_PATH=./data/gearbox.db \
-v gearbox-data:/app/data \
-v gearbox-uploads:/app/uploads \
--restart unless-stopped \
gitea.jeanlucmakiola.de/makiolaj/gearbox:latest
```
## Data
All data is stored in two Docker volumes:
- **gearbox-data** -- SQLite database
- **gearbox-uploads** -- uploaded images
Back up these volumes to preserve your data.
## Updating
```bash
docker compose pull
docker compose up -d
```
Database migrations run automatically on startup.
## Tech Stack
- **Runtime & Package Manager:** [Bun](https://bun.sh)
- **Frontend:** React 19, Vite, TanStack Router, TanStack Query, Tailwind CSS v4, Zustand
- **Backend:** Hono, Drizzle ORM, SQLite (`bun:sqlite`)
## Local Development Setup
### Prerequisites
You must have [Bun](https://bun.sh/) installed on your machine. Docker is not required for local development.
### Installation
1. Install all dependencies:
```bash
bun install
```
2. Initialize the local SQLite database (`gearbox.db`):
```bash
bun run db:push
```
3. Start the development servers:
```bash
bun run dev
```
This single command will start both the Vite frontend server (port `5173`) and the Hono backend server (port `3000`) concurrently.
Open [http://localhost:5173](http://localhost:5173) in your browser to view the app.
## Additional Commands
- `bun run build` — Build the production assets into `dist/client/`
- `bun test` — Run the test suite
- `bun run lint` — Check formatting and lint rules using Biome
- `bun run db:generate` — Generate Drizzle migrations after making schema changes