-
-
Notifications
You must be signed in to change notification settings - Fork 0
Getting Started
- Docker 24+ and Docker Compose v2
- 8 GB RAM minimum (16 GB recommended when running local LLM via LM Studio)
- Git
git clone https://github.com/zach115th/iris-ng.git
cd iris-ng
# Copy and edit the environment file
cp .env.model .env
# Edit .env — set POSTGRES_PASSWORD, SECRET_KEY, IRIS_ADM_PASSWORD at minimum
docker compose -f docker-compose.dev.yml up -d --buildThe stack comes up on https://localhost (nginx with a self-signed cert).
Default admin credentials are whatever you set in .env.
| Container | Role |
|---|---|
iriswebapp_app |
Flask/gunicorn web + REST API |
iriswebapp_worker |
Celery default queue (hooks, modules) |
iriswebapp_ai_worker |
Celery ai_queue (AI jobs, concurrency=1) |
iriswebapp_db |
PostgreSQL 15 |
iriswebapp_nginx |
TLS termination + reverse proxy |
iriswebapp_rabbitmq |
RabbitMQ broker |
iriswebapp_claude_proxy |
Claude HTTP sidecar (optional, port 7440) |
IRIS-NG ships with an AI backend admin UI at /manage/settings → AI tab.
The default backend is LM Studio (always-on, runs locally). Configure the
primary slot URL to http://host.docker.internal:1234/v1 and the model name to
whatever you have loaded.
Optional: enable the Claude sidecar as the alt slot — see AI Features.
IRIS-NG is purely additive over v2.5.0-beta.1 (new tables and columns only — no renames, no removals), but vanilla DFIR-IRIS cannot connect to an iris-ng database without the schema additions in place.
scripts/import_vanilla_db.sh handles the full migration:
- Exports a Postgres dump from the old host
- Copies named volumes (uploaded evidence, report templates)
- Carries over secrets
- Restores on the new host and runs a post-restore schema sanity check
# On the source host (vanilla DFIR-IRIS):
bash scripts/import_vanilla_db.sh export
# On the destination host (iris-ng):
bash scripts/import_vanilla_db.sh import <path-to-export-bundle>The script supports vanilla DFIR-IRIS v2.4.x and v2.5.0-beta.1.
Always use --build --force-recreate together:
git pull
docker compose -f docker-compose.dev.yml up -d --build --force-recreateDo not omit --force-recreate. A plain up --build can leave worker
and ai_worker on the old container while only app is rebuilt, causing ORM
mapper state mismatches that crash hook tasks with a NotImplementedError deep
in task_hook_wrapper before any module's hooks_handler runs.
- Navigate to
https://localhost/login - Sign in with the admin credentials from
.env - Go to
/manage/modules→ enable IrisMISPSync if you have a MISP instance - Go to
/manage/settings→ AI tab → enter your LM Studio (or cloud) backend URL
| Port | Service |
|---|---|
443 |
IRIS-NG web UI and API (nginx, TLS) |
7440 |
Claude proxy sidecar (internal Docker network only) |
The default compose stack uses a self-signed certificate generated at container
start. For production, mount your own cert/key into the nginx container by
editing the docker-compose.dev.yml nginx volume mounts.