Skip to content

breed007/RaptorTracker

Repository files navigation

RaptorTracker

Ford Raptor Build Tracker — a self-hosted web app for tracking modifications, maintenance, AUX switch assignments, warranties, fuel economy, and build costs across one or more Ford Raptors.

Version 0.8.0 · GitHub · Changelog


Screenshots

Dashboard view

My Garage view

AUX Switch Panel view


Features

Modification Tracker

  • Log each mod with part name, brand, part number, vendor, cost, purchase/install date, and install mileage
  • Status tracking: Ordered → In Transit → Installed → Removed
  • Photos per mod with a full-screen lightbox viewer
  • Install notes and wiring notes shown in monospace
  • Slide-out detail panel on the mod list — click any row for a quick view without leaving the page
  • Assign a mod to one or more AUX switches, each with its own label

AUX Switch Panel

  • Factory-accurate AUX switch layouts for Gen 2, Gen 3, and Gen 3.5
  • Shows which switches are factory-consumed versus available
  • Assign mods to switches with custom per-switch labels
  • Gen 3.5 marks AUX 1 as factory-consumed by the bumper fogs; assign a mod to it directly, or mark it available to use like any other switch (reversible per vehicle)
  • Capacity planning — each switch shows its fuse rating, current draw, planned draw from the wishlist, and remaining headroom, flagged tight past 80% of the fuse and over above it
  • A mod with no recorded amp draw makes its switch report unknown, not fine. The planner won't imply a circuit is safe when it has no idea.

Maintenance Log & Service Intervals

  • Record service events with type, date, mileage, vendor, cost, and notes
  • Tag who did the work: dealership, independent shop, or owner/DIY
  • Attach invoices and receipts (JPEG, PNG, PDF) per record
  • 20+ service-type presets (oil change, spark plugs, differential service, transmission, tires, battery, and more)
  • Set mileage- or time-based intervals for recurring services (oil every 5,000 mi, diff fluid every 30,000 mi, and so on)
  • The dashboard shows a Due Soon / Overdue card for anything approaching or past its interval, measured against the most recent service of that type
  • Forecasting projects mileage-based intervals against how fast you actually drive, turning "due in 3,400 mi" into a date. With too little mileage history to establish a rate, the forecast is withheld rather than guessed.

Warranty Tracking

  • Track extended and vehicle warranties: provider, term in years and miles, start and expiration dates, contract number, claims phone, cost, and deductible
  • Expiration auto-calculates from the start date plus term when you leave it blank
  • Per-mod warranty tracking for installed mods
  • Color-coded status: active, expiring within 90 days, or expired
  • The dashboard flags anything expired or expiring soon

Fuel Log & MPG

  • Log each fill-up: date, odometer, gallons, price per gallon, and station
  • Calculates MPG per fill-up and plots the trend over time
  • Compares your average against the factory EPA rating for your generation

Trail Log

  • Everything else here tracks what's been done to the truck; this records using it
  • Log an outing with trail, location, difficulty, terrain, aired-down PSI, tire set, who came along, and photos
  • Damage notes link straight to logging the repair
  • Outings appear in the unified logbook, and one that ends past your recorded odometer bumps the vehicle's mileage
  • Trip totals report how many outings lack odometer readings rather than counting unknown miles as zero

Share Your Build

  • Turns your installed mods into a list you can paste straight into a forum post or signature
  • BBCode (FordRaptorForum and most vBulletin/XenForo boards), Markdown (Reddit, GitHub, Discord), or plain text
  • Grouped by category, with optional part numbers, vendor links, and AUX switch assignments
  • Only mods marked Installed appear. Your VIN, purchase price, and insurance details are never included, and prices are off by default — a build list is public, what you spent usually isn't

Wishlist & Budget

  • A separate list for planned purchases, with priority, target budget, vendor links, and notes
  • One button promotes a wishlist item into the active mod tracker once you buy it
  • Compares planned spend against actual spend
  • Set a monthly mod budget to see committed spend, remaining runway, and which wishlist items fit inside it

Documents & Receipts

  • Attach receipts and PDFs to individual mods and service records
  • A vault for the paperwork that lives in the glovebox — registration, insurance, window sticker, warranty contracts — with expiry tracking for the ones that lapse

My Garage

  • Multiple vehicles per account, each with its own isolated data
  • Vehicle profile photo and window-sticker upload

Total Cost of Ownership

  • Unifies acquisition/financing, modifications, maintenance, and fuel into one view
  • Cost-per-mile and operating-cost-per-mile, plus a cumulative-spend chart
  • Financing section for owned-outright, loan, or lease — with paid-to-date, remaining balance, and interest

Reminders (Email + Webhook)

  • Optional daily digest of overdue/due-soon services, expired/expiring warranties, and registration/inspection/insurance deadlines
  • Delivered by email (SMTP) and/or a Discord/Slack webhook — pick either or both
  • Toggle service, warranty, and compliance alerts independently; configurable look-ahead window
  • De-duplicated so you're not re-notified about the same item daily; off by default

Logbook & Analytics

  • Logbook — a single chronological history of the truck (mods, services, fuel, tires, warranties), filterable by type
  • Analytics — mileage-over-time, miles per month, and maintenance cost by provider, plus a manual odometer log

Backup & Restore

  • One-click full backup (database + all uploads) to a single ZIP, and restore from a backup file
  • Optional nightly automatic backups with configurable retention

Install on Your Phone

  • Installable progressive web app — add it to your home screen for a standalone app window
  • Quick Add screen for logging a fill-up, odometer reading, or service in a few taps

Find Anything

  • Grouped sidebar navigation plus a ⌘K command palette that searches mods, service, wishlist, tires, warranties, and fuel stops

Registration, Inspection & Insurance

  • Track registration, inspection/emissions, and insurance expiration per vehicle, with provider and policy details
  • Deadlines feed the email reminders and are highlighted on the garage card when expiring

Recall Lookup

  • Dashboard surfaces open NHTSA recalls for your truck, matched by model and year; dismiss individually, collapse the card, and restore later

Tire & Wheel Sets

  • Track multiple sets (street vs. off-road) with specs, cost, install/removal mileage, and miles-run per set
  • Tire spend rolls into Total Cost of Ownership

Dashboard

  • A vehicle home page rather than a wall of alert cards: one Needs Attention list and one Coming Up list
  • Mod, spend, and maintenance summaries with a spend-by-category chart
  • Loads in a single request that reuses the same reminder and capacity code as the email digest, so the dashboard and your inbox can't disagree

Reference Library

Read-only factory specs for the full Ford Raptor lineup:

  • Gen 1 — 2010–2014 (6.2L V8 / 5.4L V8 SVT)
  • Gen 2 — 2017–2020 (3.5L EcoBoost)
  • Gen 3 — 2021–2023 (3.5L EcoBoost High Output)
  • Gen 3.5 — 2024–present (3.5L EcoBoost HO / Raptor R 5.2L Supercharged V8)

Engine, transmission, suspension, towing, payload, and AUX panel specs per generation.

Exports

  • PDF build sheet with vehicle info, installed mods, maintenance history, and spend breakdown (optionally with the window sticker)
  • CSV export of any record type — mods, maintenance, fuel, warranties, tire sets, wishlist
  • CSV import for fuel, maintenance, mods, specs, and wishlist history. Rows whose column count doesn't match the header are rejected with an explanation rather than imported shifted.

Vehicle Import / Export

  • Export a vehicle to a ZIP archive (metadata, photos, window sticker, mods, maintenance)
  • Import a ZIP onto the same or a different install — useful for backups or moving between servers

Theme System

Three built-in themes, saved per browser:

Theme Style
Ford Racing (default) Ford navy / orange, Inter + Barlow Condensed
FordRaptorForum Dark XenForo style, crimson accent, Verdana
Raptor Assault Light/dark, red accent, Roboto

Each theme has a light/dark toggle, except FordRaptorForum, which is always dark.


Security

RaptorTracker is a single-owner app with one password, so a few things matter if you put it anywhere the internet can reach:

  • Change the password in the app. ADMIN_PASSWORD in .env only bootstraps the first sign-in. Set a real one under Settings → Account and it's stored as a bcrypt hash in the database — the .env value is then ignored. The app warns on every start until you do.
  • Sign-in attempts are rate limited to 10 failures per 15 minutes per IP. Successful sign-ins don't count against the limit.
  • Set TRUST_PROXY to the number of reverse proxies in front of the app (install.sh writes 1). Without it, the rate limiter sees the proxy's address instead of the real client, and one attacker can lock you out.
  • Serve it over HTTPS and set COOKIE_SECURE=true so the session cookie isn't sent in the clear.

There is no password reset by email. If you lose the password, delete the secret_admin_password_hash row from the app_settings table and the .env value takes over again.


Prerequisites

Requirement Version Notes
Node.js 20.19+ or 22.12+ 22 LTS recommended. Vite 5 needs at least 20.19 or 22.12.
npm 10+ Bundled with Node 22.
git any recent For cloning and pulling updates.
Build tools Only if your platform has no prebuilt better-sqlite3 binary. On Debian/Ubuntu: apt install build-essential python3.

Everything else is a project dependency installed by npm install. Key ones:

Layer Package Version
Backend Express 4.x
Database better-sqlite3 (SQLite) 9.x
Auth express-session + bcrypt
File uploads Multer 2.x
PDF generation PDFKit 0.15.x
Import/Export archiver + adm-zip
Frontend React 18.x
Build tool Vite 5.x
Routing react-router-dom 6.x
Charts Chart.js + react-chartjs-2 4.x / 5.x
Styling Tailwind CSS 3.x

Quick Start (Local)

# 1. Clone
git clone https://github.com/breed007/RaptorTracker.git
cd RaptorTracker

# 2. Install dependencies (server, then client)
npm install
npm install --prefix client

# 3. Configure
cp .env.example .env        # then edit the values

# 4. Seed the database
npm run db:init

# 5. Run with hot reload (API + Vite dev server)
npm run dev

The API runs on http://localhost:3000 and the Vite dev server on http://localhost:5173.

To run a production build locally instead of the dev server:

npm run build      # builds the client into dist/
npm start          # serves the API and the built client on PORT

If npm install --prefix client ever reports a peer-dependency conflict (for example after a major Vite bump), re-run it with npm install --prefix client --legacy-peer-deps.

Environment variables (.env)

PORT=3000
SESSION_SECRET=your-random-secret-here
ADMIN_USERNAME=admin
ADMIN_PASSWORD=yourpassword
DATA_DIR=./data
UPLOAD_DIR=./data/uploads
NODE_ENV=development

# Optional — email reminders (leave SMTP_HOST blank to disable)
SMTP_HOST=
SMTP_PORT=587
SMTP_SECURE=false
SMTP_USER=
SMTP_PASS=
SMTP_FROM=

Installation (Linux Server)

The included install.sh sets up Node.js, PM2, an nginx or Apache reverse proxy, systemd startup, the firewall, and the seeded database.

git clone https://github.com/breed007/RaptorTracker.git
cd RaptorTracker
sudo bash install.sh

The script prompts for:

  • Install directory (default /opt/raptortracker)
  • Application port (default 3000)
  • Service account name (default raptortracker)
  • Domain or IP
  • Admin username and password
  • Web server (nginx recommended, Apache supported, or standalone)
  • Firewall configuration

It prints the URL, admin credentials, and PM2 commands when it finishes.

Updating an existing server

If the install directory is a git clone:

cd /opt/raptortracker
git pull origin main
npm install            # only needed when a release adds dependencies
npm run build
pm2 restart raptortracker

PM2 operations

pm2 list
pm2 logs raptortracker
pm2 restart raptortracker
pm2 stop raptortracker

(Prefix with sudo -u raptortracker if the app runs under a dedicated service account.)


Project Structure

RaptorTracker/
├── server.js                  # Express entry point
├── server/
│   ├── db/
│   │   ├── index.js           # DB connection + migrations
│   │   └── init.js            # Schema creation + vehicle seed data
│   └── routes/
│       ├── mods.js
│       ├── maintenance.js
│       ├── intervals.js
│       ├── userVehicles.js
│       ├── vehicles.js
│       ├── warranty.js
│       ├── wishlist.js
│       ├── fuel.js
│       ├── export.js          # PDF build sheet
│       ├── vehicleTransfer.js # ZIP import/export
│       ├── upload.js
│       ├── summary.js
│       └── vin.js
├── client/
│   ├── src/
│   │   ├── pages/             # Dashboard, ModList, ModDetail, Maintenance, AuxPanel, Garage, Warranty, Wishlist, FuelLog, …
│   │   ├── components/        # Nav, Layout, StatsCard, SpendChart, Lightbox, …
│   │   └── context/
│   │       └── AppContext.jsx # Auth, vehicle selection, theme
│   ├── vite.config.js
│   └── tailwind.config.js
├── test/
│   ├── smoke.js               # Schema, migrations, module load
│   └── api.js                 # Route-level integration tests
├── install.sh                 # Linux server installer
├── uninstall.sh
├── CHANGELOG.md
└── package.json

Tests

npm test              # smoke test: schema, migrations, every module loads
npm run test:api      # boots the app against a throwaway DB and exercises the routes
npm run test:upgrade  # rebuilds every released tag's database and migrates it to HEAD

Both run against a temporary database in your system temp directory and never touch data/. They need better-sqlite3 built for your Node version, so use one of the versions CI targets (Node 20.19 or 22).


Versioning

RaptorTracker follows Semantic Versioning (MAJOR.MINOR.PATCH). The running version and build date show in the footer of every page. See CHANGELOG.md for release history.

To cut a release, update "version" in package.json, update the changelog, then rebuild:

npm run build

Uninstall

sudo bash /opt/raptortracker/uninstall.sh

License

MIT. Fork it, change it, run it however you want.

© 2026 breed007

About

Self-hosted build tracker for Ford Raptors — mods, AUX switch capacity planning, maintenance forecasting, fuel economy, and cost of ownership. Generates forum-ready build sheets.

Topics

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages