Skip to content

Installation

This walks you from a clean machine to a working instance — backend, all supporting services, and the dashboard.

  1. Clone the repository.

    Terminal window
    git clone https://github.com/insight-source/insight-engine.git
    cd insight-engine
  2. Create a Clerk application.

    The dashboard uses Clerk for sign-in and won’t start without a key. Sign up (free), create an application, and copy the Publishable key from API Keys — you’ll use it in step 5.

    That’s all you need for email/password accounts. If you also want Google/GitHub social sign-in, copy the Secret key into app/.env as well (there’s a template at app/.env.example):

    Terminal window
    cp app/.env.example app/.env
    # fill in CLERK_PUBLISHABLE_KEY and CLERK_SECRET_KEY
  3. Start the platform.

    Terminal window
    docker compose up -d

    The first start downloads several container images (a few GB) and builds the backend — expect it to take a few minutes. Subsequent starts are fast.

    Before the backend comes up, a short-lived init-kek container creates the encryption key at app/.encrypted.bin that protects stored credentials (SMB passwords, Google grants). It runs once and exits — seeing it as “exited (0)” in docker compose ps is normal. Treat that file like a secret and back it up: lose it, and every stored credential becomes unreadable.

    By default the backend listens on port 8000 and the bundled Samba test server on port 445. To change either:

    Terminal window
    BACKEND_PORT=8000 SAMBA_PORT=1445 docker compose up -d
  4. Verify the backend is up.

    Terminal window
    curl -s -o /dev/null -w "%{http_code}\n" http://localhost:8000/docs
    # → 200

    http://localhost:8000/docs also serves the interactive API explorer in a browser.

  5. Start the dashboard.

    The React frontend runs with Node. Give it its environment first:

    Terminal window
    cd frontend
    cp .env.example .env.local

    Edit .env.local: set VITE_CLERK_PUBLISHABLE_KEY to the key from step 2, and VITE_BACKEND_URL=http://localhost:8000/api/v1. Then:

    Terminal window
    npm install
    npm run dev

    Open http://localhost:5173 in your browser. The backend’s CORS configuration allows localhost:5173 out of the box; if you serve the frontend from a different origin, see configuration.

    For a production-style deployment, build static files with npm run build and serve dist/ behind a web server (e.g. nginx) that also proxies /api/, /oauth/, and /webhooks/ to the backend.

  6. Create your account.

    Visit the dashboard, choose Sign Up, and register — the first account is created the same way as any other; there is no separate admin setup.

  7. Pull your first model.

    In the dashboard go to Models → Create Model and enter a model tag from the Ollama library. For a quick CPU test, tinyllama:latest (~640 MB) downloads fast — but see the note on small context windows before using it for real. For real answers on capable hardware, start with something like llama3.2.

  8. Connect data and chat.

    From here, everything works exactly as described in the rest of these docs — follow the quickstart. If you don’t have an SMB share handy, the bundled Samba service is preloaded for testing: connect a data source with username testuser, password testpass, remote system name SAMBA, IP address samba, and port 445.

Port Service Notes
8000 Backend API Configurable via BACKEND_PORT
5173 Dashboard (dev server) Configurable via --port
445 Bundled Samba test server Configurable via SAMBA_PORT

Everything else (PostgreSQL, Weaviate, Ollama, Redis, Tika) stays on the internal Docker network and is not exposed to the host.