A self-hosted job application tracker for keeping roles, statuses, notes, and search metrics in one place.
- Docker Desktop
- Node.js and npm for local typecheck/lint/build commands
git clone https://github.com/ansidian/pursuit.git
cd pursuit
docker compose upThis builds and starts the Docker Compose stack:
- Frontend:
http://pursuit.localhost - Frontend direct port:
http://localhost:3000 - Backend API:
http://localhost:4000 - Postgres:
localhost:5432
Source files are mounted into the containers, so frontend and backend edits reload through the dev stack.
After Dockerfile or package changes, rebuild the containers:
docker compose up --builddocker compose -f docker-compose.prod.yml up --buildThis builds and starts the production-style Docker Compose stack with nginx serving the frontend.
Open http://localhost:8080.
After frontend/source edits while using the production stack, rebuild the frontend container:
docker compose -f docker-compose.prod.yml up --build frontendnpm run typecheck
npm run lint
npm run buildBackend tests run through Docker:
docker compose run --rm backend npm run test --workspace backendDevelopment stack:
docker compose down -v
docker compose up --buildProduction-style stack:
docker compose -f docker-compose.prod.yml down -v
docker compose -f docker-compose.prod.yml up --buildThese commands delete the matching Docker volume and rebuild the stack.
docker compose downFor the production-style stack:
docker compose -f docker-compose.prod.yml down