This repository contains a Next.js frontend and an Express backend. Docker Compose is used to deploy both services together.
- Docker
- Docker Compose
- A Supabase project with:
cachetablehistorytable
- GitHub token for GitHub API access
- Gemini API key if using AI features
Create a .env file in the repository root based on .env.example.
Required variables:
GITHUB_TOKENGEMINI_API_KEYSUPABASE_URLSUPABASE_KEYNEXT_PUBLIC_API_BASE_URLNEXT_PUBLIC_SUPABASE_URLNEXT_PUBLIC_SUPABASE_PUBLISHABLE_KEYFRONTEND_URL
Build and run all services with:
docker compose up --buildThis will start:
- backend on port
5000 - frontend on port
3000
The frontend Dockerfile builds the Next.js app in a multi-stage image and exposes port 3000.
The backend Dockerfile runs the Express server on port 5000.
- The backend uses Supabase for caching and history storage. If Supabase variables are not configured, the app logs warnings and will continue with limited functionality.
- Frontend requests use
NEXT_PUBLIC_API_BASE_URLso the app can point to the backend service in Docker Compose or another environment. - Update
frontend/src/lib/api.tsif you need a different API route structure.