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;"
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.