- deploy.sh: pulls from Gitea, rebuilds and restarts Docker containers - README.md: setup instructions, env vars, deployment guide Co-Authored-By: Paperclip <noreply@paperclip.ing>
86 lines
1.9 KiB
Markdown
86 lines
1.9 KiB
Markdown
# 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)
|
|
|
|
```bash
|
|
# 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
|
|
|
|
```bash
|
|
npm install
|
|
npm run dev
|
|
```
|
|
|
|
## Database Migrations
|
|
|
|
Migrations are in the `drizzle/` directory, managed by Drizzle Kit.
|
|
|
|
```bash
|
|
# 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:
|
|
|
|
```bash
|
|
# 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
|