Skip to content

Manual Setup (Without Docker)

If you prefer running PHP and MySQL natively instead of in containers. You still need Docker for Qdrant and the RAG API (they don't have native installers).

Make sure you have everything listed in Prerequisites.

1. Clone & Install Dependencies

git clone --recurse-submodules https://github.com/deforay/intelis-insights.git
cd intelis-insights
composer install

Empty llm-sidecar/ folder?

If you forgot --recurse-submodules, run:

git submodule update --init --recursive

2. Configure Environment

cp .env.example .env

Edit .env with your local values:

# Point to your local MySQL
DB_HOST=127.0.0.1
DB_PORT=3306
DB_NAME=intelis_insights
DB_USER=root
DB_PASSWORD=your-password

API keys can be added later via the Settings page

Once the app is running, go to Settings → API Keys to add keys for Anthropic, OpenAI, DeepSeek, Google, and Groq — no restart required. You can also set them in .env if you prefer:

ANTHROPIC_API_KEY=sk-ant-your-key-here

See Environment Variables for the full list.

3. Create the App Database

The application uses its own database for reports, chat sessions, and audit logs:

mysql -u root -p -e "CREATE DATABASE IF NOT EXISTS intelis_insights
  CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;"

Run the schema migrations in order:

mysql -u root -p intelis_insights < database/001_create_schema.sql
mysql -u root -p intelis_insights < database/002_create_vl_aggregate_tables.sql
mysql -u root -p intelis_insights < database/003_refresh_vl_aggregates.sql
mysql -u root -p intelis_insights < database/004_system_tables.sql
mysql -u root -p intelis_insights < database/seed.sql
Verify the tables were created

mysql -u root -p intelis_insights -e "SHOW TABLES;"
You should see tables like reports, chat_sessions, chat_messages, audit_logs, etc.

4. Start Qdrant & RAG API (Docker)

These two services run in Docker even for manual setup:

docker compose up -d qdrant rag-api

Verify they're healthy:

curl http://127.0.0.1:6333/healthz       # Qdrant — should return {"title":"..."}
curl http://127.0.0.1:8089/health         # RAG API — should return {"status":"ok"}

First run: model download

The RAG API downloads an embedding model (~200 MB) on first start. It may take up to 60 seconds before the health check passes.

5. Start the LLM Sidecar

cd llm-sidecar
bun install
bun run start
Don't have Bun?

Install it first:

curl -fsSL https://bun.sh/install | bash
source ~/.bashrc  # or ~/.zshrc

Verify:

curl http://127.0.0.1:3100/health         # Should return {"status":"ok"}

Leave this running in a terminal tab, then open a new tab for the next step.

6. Seed the Vector Database

If you have InteLIS data connected, seed the RAG index:

cd /path/to/intelis-insights   # back to root
bash bin/rag-refresh.sh

See RAG Seeding for details on what this does.

7. Start the Application

composer start

This starts the PHP development server at http://localhost:8080.

8. Verify

curl http://localhost:8080/health          # Should return {"status":"ok"}
curl http://localhost:8080/status          # Should show database: "connected"

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

Next Step

Run through the First-Run Checklist to verify everything works.