Getting Started

Table of Contents

  1. Prerequisites
  2. Quick Installation
    1. 1. Clone the Repository
    2. 2. Build the Backend
    3. 3. Build the Frontend
    4. 4. Configure Environment
    5. 5. Initialize Database
    6. 6. Start Services
  3. Verify Installation
    1. Check Service Status
    2. Test API Health
    3. Access the UI
  4. Create Admin Account
    1. Via API
    2. Set Admin Role
  5. Next Steps

Prerequisites

Before installing NexusScribe, ensure you have:

  • Rust 1.75+ (curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh)
  • Node.js 20+ (nvm install 20)
  • Aegis-DB running on port 9091
  • Ollama running on port 11434 (optional, for AI features)

Quick Installation

1. Clone the Repository

git clone https://github.com/AutomataNexus/NexusScribe.git
cd NexusScribe

2. Build the Backend

# For local development (x86_64)
cargo build --release --target x86_64-unknown-linux-gnu

# For Raspberry Pi 5 (aarch64)
cargo build --release --target aarch64-unknown-linux-gnu

3. Build the Frontend

cd web
npm install
npm run build
cd ..

4. Configure Environment

cp .env.example .env
# Edit .env with your settings

Key environment variables:

Variable Description Example
DATABASE_URL Aegis-DB connection aegis://localhost:9091/default
JWT_SECRET JWT signing key (48+ chars) Generate with openssl rand -base64 48
OLLAMA_URL Ollama API endpoint http://localhost:11434
RESEND_API_KEY Email service API key re_xxxxx

5. Initialize Database

bash scripts/init-db.sh

6. Start Services

Using PM2 (recommended):

pm2 start ecosystem.config.js

Or manually:

# Backend
./target/release/nexus-scribe &

# Frontend
cd web && npm start &

Verify Installation

Check Service Status

pm2 status

Expected output:

┌─────────────┬────────┬───────┐
│ Service     │ Status │ Port  │
├─────────────┼────────┼───────┤
│ Backend API │ Online │ 8080  │
│ Frontend    │ Online │ 3000  │
│ Aegis-DB    │ Online │ 9091  │
│ Ollama      │ Online │ 11434 │
└─────────────┴────────┴───────┘

Test API Health

curl http://localhost:8080/health | jq

Access the UI

Open http://localhost:3000 in your browser.

Create Admin Account

Via API

curl -X POST http://localhost:8080/api/v1/auth/register \
  -H "Content-Type: application/json" \
  -d '{
    "email": "admin@example.com",
    "password": "SecurePassword123!",
    "display_name": "Admin User"
  }'

Set Admin Role

~/.local/bin/aegis-client -d nexusscribe query \
  "UPDATE users SET role = 'Admin' WHERE email = 'admin@example.com'"

Next Steps