A web application for managing AI-powered document processing with Paperless-ngx.
- Preview documents with integrated PDF viewer
- Sort document list by title, status, or date
- Search documents by title
- Analyze documents with AI and get suggestions for tags, correspondent, and document type
- See analysis costs and detailed token breakdown (input/output/cache)
- Tags in analysis results show whether they already exist in Paperless
- Separate AI accounts (credentials) from AI models (configuration and pricing)
- Configure token prices per model for cost tracking
- New Services overview page with all service types in one place
- Share AI models with other users
- Deploy with a single
docker compose upcommand
- Share AI bots, accounts, and Paperless instances with other users
- Users with full access can reshare resources
- Deactivate users instead of deleting them, with option to restore
- New header navigation for easier access
- Switch between light, dark, and system theme
- Browse large lists with pagination
- Faster page loads
- German and English translations for login page
- Improved visual design
- Admins can configure application settings
- See how many documents will be affected before deleting a Paperless instance
- Manage AI providers, AI bots, and Paperless instances
- Import documents from Paperless instances
- Secure storage for API keys and tokens
- Initial release with user authentication and MCP server
- Node.js >= 18
- pnpm 9.x
# Clone the repository
git clone https://github.com/your-org/paperless-ai-ngx.git
cd paperless-ai-ngx
# Install dependencies
pnpm install
# Generate database client and API types
pnpm generate# Start all apps in development mode
pnpm dev
# Start only the web app
pnpm dev --filter web# Build all apps and packages
pnpm build
# Run tests
pnpm test
# Run tests with coverage
pnpm test:coverage# Build and start all services
docker compose up -d --build
# View logs
docker compose logs -f
# Stop services
docker compose downThe Docker setup includes:
- web: Next.js application on port 3000
- postgres: PostgreSQL 17 database
- mcp-server: MCP server on port 3001
Environment variables are configured in docker-compose.yml. For production, update:
JWT_SECRET- Secret for JWT tokens (min 32 characters)ENCRYPTION_KEY- Secret for API key encryption (min 32 characters)ADMIN_INITIAL_PASSWORD- Initial admin password
This is a Turborepo monorepo with the following structure:
apps/web- Next.js web applicationapps/mcp-server- MCP (Model Context Protocol) server
packages/api-client- Generated TypeScript API clientpackages/database- Prisma database clientpackages/ui- Shared React component librarypackages/eslint-config- ESLint configurationspackages/typescript-config- TypeScript configurations
| Command | Description |
|---|---|
pnpm dev |
Start development servers |
pnpm build |
Build all apps and packages |
pnpm test |
Run tests |
pnpm test:coverage |
Run tests with coverage |
pnpm lint |
Lint all packages |
pnpm format |
Format code with Prettier |
pnpm generate |
Generate database client and API types |