Jean-Luc Makiola 7a64a1887d feat(10-01): add pros/cons columns through backend
- Add pros/cons nullable TEXT columns to threadCandidates schema
- Generate and apply Drizzle migration (0004_soft_synch.sql)
- Mirror pros/cons columns in test helper CREATE TABLE
- createCandidate: pass pros/cons to values() object
- updateCandidate: add pros/cons to Partial type
- getThreadWithCandidates: include pros/cons in select projection
- createCandidateSchema: add optional pros/cons string fields
2026-03-16 21:32:38 +01:00
2026-03-16 21:26:59 +01:00
2026-03-14 20:07:01 +00:00

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

Create a docker-compose.yml:

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:

docker compose up -d

GearBox will be available at http://localhost:3000.

Docker

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

docker compose pull
docker compose up -d

Database migrations run automatically on startup.

Description
No description provided
Readme Apache-2.0 1.3 MiB
v1.2.0 Latest
2026-03-15 23:10:35 +00:00
Languages
TypeScript 99.6%
Dockerfile 0.3%
HTML 0.1%