53 lines
1.4 KiB
Markdown
53 lines
1.4 KiB
Markdown
# Film Intel
|
|
|
|
Advanced movie insight you won't find in one click. Search any film and generate
|
|
ratings explained, skip guides, sensitivity warnings, international ratings,
|
|
production facts, and historical-accuracy breakdowns.
|
|
|
|
## Requirements
|
|
|
|
- Node.js 22
|
|
- A TMDB API key (https://www.themoviedb.org/settings/api)
|
|
- An LLM API key (OpenRouter or any OpenAI-compatible endpoint)
|
|
- PostgreSQL for caching generated insight cards (optional but recommended)
|
|
|
|
Copy `.env.example` to `.env` and fill in the keys.
|
|
|
|
## Development with Docker (recommended)
|
|
|
|
Starts the app (with live reload) and the database, and runs migrations
|
|
automatically on first start:
|
|
|
|
```bash
|
|
docker compose -f docker-compose.dev.yml up --build
|
|
```
|
|
|
|
- Open http://localhost:3000
|
|
- Source code is mounted for live reload (`npm run dev` inside the container)
|
|
- Stop with `docker compose -f docker-compose.dev.yml down`
|
|
|
|
## Development without Docker
|
|
|
|
```bash
|
|
npm install
|
|
npm run dev
|
|
```
|
|
|
|
> Without a database the insight cards will still generate (they just won't be
|
|
> cached), thanks to graceful cache handling. Run `npm run db:migrate` against a
|
|
> reachable Postgres to enable caching.
|
|
|
|
## Production
|
|
|
|
```bash
|
|
docker compose -f docker-compose.yml up --build
|
|
```
|
|
|
|
## Scripts
|
|
|
|
- `npm run dev` — start the Next.js dev server
|
|
- `npm run build` — production build
|
|
- `npm run start` — serve the production build
|
|
- `npm run lint` — run ESLint
|
|
- `npm run db:migrate` — apply database migrations
|