The backend for the Syndikat Disc Golf website. It presents a small public HTTP API over tournament and ratings sources, bag tags, shop product data, route planning, and training signups.
Express routers call focused services and scrapers. Redis is an optional cache; PostgreSQL is used only for training signups. The website is the primary consumer. See architecture, development, and the website-facing OpenAPI contract.
- Node.js 24 or newer
- npm
- Redis for production caching (optional locally)
- PostgreSQL when working on training signups
Configure the environment variables described in development. Do not commit .env files or credentials.
npm install
npm run devThe development server listens on port 8080 unless PORT is set.
npm run build
npm run biome:check
npm run openapi:lint
npm startWhen changing a browser-consumed route, update docs/openapi.yaml and the corresponding usage in maxgreive/syndikat-web in the same review.