Tools built for Rescue River to find fly-fishing shops, scrape their sites for fishing reports, and summarize them with Google Gemini. Live site: https://flybox.zm1.org
Enter a location and your API keys — Flybox searches Google Maps for fly-fishing shops, scrapes contact info and fishing report links, and produces a summarized report plus a shop directory as downloadable files.
- SerpAPI key — for Google Maps shop search
- Gemini API key — for fishing report summarization
- PostgreSQL database — for job tracking
npm install
npx ts-node scripts/setup.ts # creates .env with default values
npx prisma migrate dev # run DB migrations
npm run dev # start dev server (Turbopack)Spins up the app and a Postgres container with a persistent volume:
npm run docker:up # start Postgres + app
npm run docker:down # stop (keeps DB data)
npm run docker:reset # stop and wipe DBSERP_API_KEY and GEMINI_API_KEY are passed through from your .env file.
Run migrations against the local DB before starting: npx prisma migrate deploy
- Create a Web Service on Render pointed at this repo, with Docker as the environment
- Set environment variables in the Render dashboard:
DATABASE_URL— supports a connection poolerDIRECT_URL— must be a direct connection (used by Prisma migrations)SERP_API_KEYGEMINI_API_KEY
- Add a pre-deploy command:
npx prisma migrate deploy
MIT — see LICENSE