CTO 1e431145dd
All checks were successful
Deploy to VPS / deploy (push) Successful in 37s
fix: migrate pdf-parse from v1 to v2 API to resolve DOMMatrix error
The old v1 API (`pdfParse(buffer)`) triggered DOMMatrix dependency via
pdfjs-dist canvas rendering path. The v2 API (`new PDFParse({ data })` +
`getText()`) uses a text-only code path that works in Node.js without
DOM/canvas polyfills.

Updated all three call sites:
- src/lib/documents/index.ts (generic document extraction)
- src/app/api/norms/parse/route.ts (norm PDF parsing)
- src/lib/contracts/index.ts (contract text extraction)
- src/types/pdf-parse.d.ts (updated type declarations for v2)

Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-04-10 20:39:27 +00:00

StageAI

WebApp for stage law attorneys (Bühnenrecht). Built with Next.js, PostgreSQL, Meilisearch, and AI-powered contract analysis.

Prerequisites

  • Docker & Docker Compose
  • Node.js 20+ (for local development)
  • Git

Quick Start (Docker)

# Clone the repo
git clone https://mgit.msbls.de/Remmer/StageAI.git
cd StageAI

# Set up environment
cp .env.example .env
# Edit .env with your API keys and secrets

# Start all services
docker compose up -d

# Run database migrations
docker compose exec app npx drizzle-kit push

The app will be available at http://localhost:3000.

Environment Variables

Variable Description Required
DATABASE_URL PostgreSQL connection string Yes
NEXTAUTH_URL App URL for authentication Yes
NEXTAUTH_SECRET Random secret for session encryption Yes
AI_PROVIDER anthropic or openai Yes
ANTHROPIC_API_KEY Anthropic API key If using Anthropic
OPENAI_API_KEY OpenAI API key If using OpenAI
MEILISEARCH_URL Meilisearch URL Yes
MEILISEARCH_API_KEY Meilisearch master key Yes

Local Development

npm install
npm run dev

Database Migrations

Migrations are in the drizzle/ directory, managed by Drizzle Kit.

# Generate a new migration after schema changes
npx drizzle-kit generate

# Apply migrations
npx drizzle-kit push

Deployment (VPS)

A deployment script is included for the production VPS:

# On the VPS (remmer@100.81.230.53):
cd /home/remmer/StageAI
./deploy.sh

This pulls the latest code from Gitea and rebuilds the app container. PostgreSQL and Meilisearch containers are kept running.

Services

Service Port Description
App (Next.js) 3000 Main application
PostgreSQL 5432 Database
Meilisearch 7700 Full-text search engine

Repository

Source code: https://mgit.msbls.de/Remmer/StageAI

Description
LegalAI / StageAI - WebApp für Bühnenrecht-Anwälte
Readme 408 KiB
Languages
TypeScript 98.6%
JavaScript 0.6%
Shell 0.4%
CSS 0.2%
Dockerfile 0.2%