- Remove docker-compose files (Coolify manages services individually) - Replace MinIO with Garage (S3-compatible, actively maintained) - Add CI deploy job: build+push :develop image on every green Develop push - Add Coolify webhook trigger for automatic redeployment - Update README, .env.example, and storage references - Rename migrate script to provider-agnostic name Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
75 lines
2.1 KiB
Markdown
75 lines
2.1 KiB
Markdown
# GearBox
|
|
|
|
A 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
|
|
|
|
## Deployment
|
|
|
|
GearBox is deployed via [Coolify](https://coolify.io/) as a Docker image with separate services for dependencies.
|
|
|
|
**Required services:**
|
|
- **PostgreSQL 16** — primary database
|
|
- **Garage** (or any S3-compatible storage) — image uploads
|
|
- **Logto** — OIDC authentication
|
|
|
|
**GearBox image:** `gitea.jeanlucmakiola.de/makiolaj/gearbox:latest`
|
|
|
|
See `.env.example` for required environment variables.
|
|
|
|
## Updating
|
|
|
|
CI pushes a new Docker image on every release. Coolify auto-deploys when the image tag updates.
|
|
|
|
Database migrations run automatically on startup via `entrypoint.sh`.
|
|
|
|
## 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, PostgreSQL
|
|
- **Storage:** S3-compatible (Garage, Cloudflare R2, AWS S3)
|
|
- **Auth:** OIDC via Logto
|
|
|
|
## Local Development
|
|
|
|
### Prerequisites
|
|
|
|
- [Bun](https://bun.sh/) installed
|
|
- PostgreSQL, Logto, and Garage running (via Coolify test instance or locally)
|
|
|
|
### Setup
|
|
|
|
1. Install dependencies:
|
|
```bash
|
|
bun install
|
|
```
|
|
|
|
2. Copy and configure environment:
|
|
```bash
|
|
cp .env.example .env
|
|
# Edit .env with your service URLs and credentials
|
|
```
|
|
|
|
3. Start the development servers:
|
|
```bash
|
|
bun run dev
|
|
```
|
|
Starts both the Vite frontend (port `5173`) and Hono backend (port `3000`).
|
|
|
|
Open [http://localhost:5173](http://localhost:5173) in your browser.
|
|
|
|
## Commands
|
|
|
|
- `bun run dev` — Start dev servers (frontend + backend)
|
|
- `bun run build` — Build production assets
|
|
- `bun test` — Run tests
|
|
- `bun run lint` — Lint with Biome
|
|
- `bun run db:generate` — Generate Drizzle migrations after schema changes
|