Cardio exercises now log a breathing "Gear" (1-5, per Brian MacKenzie) instead of RPE (6-10) as their effort field; strength keeps RPE. An exercise counts as cardio when its equipment type is "cardio" or it carries the "cardio" muscle group (isCardioExercise in lib/exerciseOptions), so the Assault Bike (type "assault bike") qualifies. New nullable SetLog.gear column added by the boot-time guarded ALTER in docker_entrypoint.sh (additive, idempotent); plumbed through all 5 set-write paths, the summary/edit views, and CSV/JSON import-export. Existing rpe data is untouched and still displays. Program/AI target-RPE is unaffected.
Workout Planner
A self-hosted workout planner and logger. Plan training cycles, log daily workouts, search your history, and get AI-powered suggestions over time.
Quick Start
# Install dependencies
npm install
# Set up the database
npx prisma db push
# Seed the InstanceSettings singleton
npm run db:seed
# Create the first admin (fresh installs ship with NO users — see below).
# Use a real-looking email; "admin@local" is rejected (no TLD).
npm run create-admin -- you@example.com yourpassword "Your Name"
# Start development server
npm run dev
Open http://localhost:3000 and log in with the email/password you just created.
No default account. Fresh installs ship with zero users on purpose, so there
are no default credentials to forget and leak. In production (StartOS) the
operator creates the first admin via the Actions → Set admin credentials
action; locally, npm run create-admin is the equivalent. Once an admin exists,
additional users sign up at /auth/signup (if sign-ups are enabled in Settings).
Access from Other Devices
To access from your phone or iPad on the same network:
npm run dev -- --hostname 0.0.0.0
Then open http://<your-computer-ip>:3000 on your device. You can install it as a PWA (Add to Home Screen) for an app-like experience.
Docker Deployment
docker compose up -d
Tech Stack
- Next.js 14 (App Router) — full-stack TypeScript
- SQLite + Prisma ORM — local database, no separate server
- Tailwind CSS — mobile-first responsive design
- PWA — installable on any device
Project Structure
app/
auth/login/ — Login page
main/
dashboard/ — Quick stats and recent workouts
workouts/ — Workout history, logger, detail views
exercises/ — Exercise library
settings/ — Preferences and AI config
api/ — REST API routes
components/ — Reusable UI components
lib/ — Database queries, auth, utilities
prisma/ — Schema and seed data