CTO 94b89cb1e2
Some checks failed
Deploy to VPS / deploy (push) Failing after 2s
fix: improve document ingestion robustness and add progress/debug UI
- Fix PDF extraction: detect scanned documents (no text layer), encrypted PDFs,
  empty files, and missing files with clear German error messages
- Add error logging to extraction pipeline (was silently swallowed)
- Return errorMessage in document list API so UI can display failure reasons
- Add GET /api/documents/[id] endpoint for status polling
- Rewrite DokumentUpload component with:
  - Auto-polling every 2s while documents are processing
  - Visual step-by-step progress indicator (Hochgeladen → Extrahiere Text → Fertig)
  - Error message display when extraction fails
  - Debug toggle showing document ID, MIME type, size, timestamps

Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-04-10 19:56:12 +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%