Skip to main content

System Requirements

Minimum Requirements

  • Operating System: macOS 10.15+, Linux (Ubuntu 20.04+), or Windows 10/11 with WSL2
  • CPU: 2 cores minimum, 4 cores recommended
  • RAM: 4GB minimum, 8GB recommended
  • Disk Space: 5GB free space

Software Prerequisites

1

Install Node.js

Download and install Node.js 18+ from nodejs.orgVerify installation:
2

Install Python

Download and install Python 3.8+ from python.orgVerify installation:
3

Install Git

Download from git-scm.comVerify installation:

Backend Installation

1. Clone the Repository

You’ll know the virtual environment is activated when you see (zarna_env) in your terminal prompt.

3. Install Python Dependencies

This will install 145+ packages including:
  • FastAPI - Web framework
  • Uvicorn - ASGI server
  • Docling - Document processing
  • AutoGen - Multi-agent AI
  • Supabase - Database client
  • Anthropic - Claude AI SDK
  • PDFPlumber - PDF extraction
  • EasyOCR - OCR processing
Installation may take 5-10 minutes depending on your internet connection. Some packages like torch are large.

4. Configure Environment Variables

Create a .env file in zarna-backend/:
Copy this template and fill in your values:
Security Best Practices:
  • Never commit .env to version control
  • Use different keys for development and production
  • Rotate API keys regularly
  • Use service role key for Supabase backend, not anon key

5. Verify Backend Installation

Start the server:
Expected output:
Test the health endpoint:
Expected response:
Success: Navigate to http://localhost:8000/docs to see the interactive API documentation powered by Swagger UI.

Frontend Installation

1. Navigate to Frontend Directory

2. Install Node Dependencies

This will install 200+ packages including:
  • React 19 - UI library
  • Vite 6.2 - Build tool
  • TailwindCSS 4 - Styling
  • shadcn/ui - Component library
  • Radix UI - Accessible primitives
  • React Router - Routing
  • React Hook Form - Form management
  • Zod - Schema validation
Installation typically takes 2-3 minutes. If you encounter peer dependency warnings, they’re usually safe to ignore.

3. Configure Environment Variables

Create a .env.local file in zarna-frontend/:
Add these variables:
Environment Variables: The NEXT_PUBLIC_ prefix exposes variables to the browser. Never put sensitive keys here - use them only in the backend.

4. Verify Frontend Installation

Start the development server:
Expected output:
Success: Open http://localhost:3000 in your browser. You should see the Zarna login page.

Database Setup (Supabase)

1. Create Supabase Project

  1. Go to supabase.com and create an account
  2. Click “New Project”
  3. Fill in:
    • Name: Zarna Development
    • Database Password: Generate a strong password (save it!)
    • Region: Choose closest to you
  4. Wait 2-3 minutes for project initialization

2. Get API Keys

From your Supabase dashboard:
  1. Go to SettingsAPI
  2. Copy these values:
    • Project URL → Use in SUPABASE_URL
    • anon public → Use in NEXT_PUBLIC_SUPABASE_ANON_KEY (frontend)
    • service_role → Use in SUPABASE_KEY (backend)
  3. Go to SettingsAPIJWT Settings
    • Copy JWT Secret → Use in SUPABASE_JWT_SECRET
Important: The service_role key bypasses Row Level Security. Only use it in the backend, never expose it to the frontend!

3. Create Database Tables

4. Enable Row Level Security (RLS)

For production security, enable RLS on all tables:

Verification Checklist

After installation, verify everything works:
1

Backend Running

http://localhost:8000/health returns {"status": "healthy"}http://localhost:8000/docs shows API documentation
2

Frontend Running

http://localhost:3000 shows login page ✅ No console errors in browser developer tools
3

Database Connected

✅ Backend logs show successful Supabase connection ✅ Can create a user account through the frontend
4

Full Integration

✅ Can log in and access dashboard ✅ Can create a company record ✅ Can upload a test file

Troubleshooting

Backend Issues

Cause: Missing Python packagesSolution:
Cause: Port 8000 is occupied by another processSolution:
Cause: Invalid credentials or network issueSolution:
  • Verify SUPABASE_URL ends with .supabase.co
  • Check you’re using service_role key, not anon key
  • Test connection: curl https://your-project.supabase.co/rest/v1/

Frontend Issues

Cause: Package conflicts or corrupted cacheSolution:
Cause: TypeScript errors or corrupted build cacheSolution:
Cause: Frontend can’t reach backend or auth token issuesSolution:
  • Ensure backend is running on localhost:8000
  • Check NEXT_PUBLIC_API_URL in .env.local
  • Clear browser localStorage and try logging in again

Next Steps

Development Workflow

Learn the day-to-day development process

Architecture Overview

Understand how Zarna is structured

Set Up Integrations

Connect Gmail, Drive, and other services

API Documentation

Explore available endpoints

Getting Help

If you’re stuck:
  1. Check the troubleshooting section above
  2. Search existing documentation
  3. Contact support: support@zarna.com
Pro tip: Join our community Slack channel for faster responses from other developers!