Some checks failed
Redeploy Docker Compose / redeploy (push) Failing after 2s
marathon.todo
A React + TypeScript app with a local Node + SQLite backend for planning what to loot (or do) in raids in Bungie's Marathon.
Features
- Search for Marathon items by name.
- Show up to 5 relevant results with item icons.
- Search also includes faction upgrades with salvage requirements.
- Add an item to a to-do list by clicking a search result.
- Clicking an upgrade search result adds all mapped salvage materials to the to-do list.
- Set quantity per to-do entry.
- Mark entries completed.
- Delete entries.
- Persist to-do entries in browser
localStorage. - Track anonymous visit statistics in backend SQLite (country, last hour, and 5-day trends).
Data Source
- Frontend fetches a local proxy endpoint:
/api/catalog - Proxy source data:
- Items:
https://items.marathondb.gg/api/items - Faction upgrades:
https://marathondb.gg/js/data/faction-upgrades.js
- Items:
- Proxy stores processed catalog in SQLite (
backend/data/catalog.db) and refreshes every 24h.
Stats Endpoint
GET /stats(backend) returns JSON with:- Visits grouped by country
- Last hour totals (
visits,uniqueVisitors) - Last 5 calendar days (
visits,uniqueVisitorsper day)
/statsis restricted at backend level to localhost and LAN/private IP ranges only (public requests receive403).
Project Structure
frontend/: Vite + React app (frontend/src,frontend/index.html)backend/: local proxy API (backend/server.js) and SQLite data (backend/data/)backend/references/: downloaded reference source files used during development
Tech Stack
- React
- TypeScript
- Vite
Run Locally
- Install dependencies:
npm install - Start backend + frontend together:
npm run dev:all - Or run separately if preferred:
npm run dev:backend npm run dev:frontend - Build production assets:
npm run build
Gitea Auto Deploy (Docker Compose)
When main is updated, Gitea Actions can redeploy your Docker Compose stack using:
- Workflow file:
.gitea/workflows/redeploy-compose.yml - Trigger: push to
main - Commands run locally on the Gitea runner host:
git fetchgit checkout maingit pull --ff-onlydocker compose pulldocker compose up -d --build --remove-orphans
Set these repository secrets in Gitea:
DEPLOY_PATH: absolute path to this repo on the server
For this workflow to work, your runner must have Docker socket access (for example -v /var/run/docker.sock:/var/run/docker.sock).
Description
Languages
JavaScript
81.6%
TypeScript
13.9%
CSS
4%
HTML
0.5%