Analyze Docs

installation

Installing PacketPilot Analyze

Download

Download the Docker bundle from:

https://packetpilot.db-electronics.no/api/download/bundle

The bundle is a .zip file containing:

  • docker-compose.yml
  • backend/ — FastAPI application
  • frontend/ — Next.js web UI
  • ollama/ — Ollama setup (models downloaded at first run)
  • .env — environment configuration template

No license key is required to start. The free tier is unlimited for Solo (5 devices, 10 cases/month).


Prerequisites

Linux

# Check Docker version
docker --version        # requires Docker 20.x or later
docker compose version   # requires Docker Compose v2

Windows (WSL2)

  1. Install WSL2 with Ubuntu 22.04
  2. Install Docker Desktop with WSL2 integration enabled
  3. Open Ubuntu and verify:
docker --version
docker compose version

Installation Steps

1. Extract the Bundle

mkdir -p ~/packetpilot-analyze
cd ~/packetpilot-analyze
unzip ~/Downloads/PacketPilot-Analyze-Suite.zip

2. Configure Environment

Copy the environment template and review the defaults:

cp .env.example .env

Key variables in .env:

# Database
POSTGRES_PASSWORD=change_me

# Ollama (AI)
OLLAMA_BASE_URL=http://localhost:11434
OLLAMA_MODEL=mistral:latest

# License
PPRO_LICENSE_KEY=          # Leave blank for free Solo tier
LICENSE_SERVER_PORT=9000

# AI Summaries (requires Ollama)
AI_SUMMARIES_ENABLED=true

For a first-time install with no license key, leave PPRO_LICENSE_KEY blank. The Solo free tier activates automatically.

3. Start the Stack

docker compose up -d

Docker downloads the required images (first run only — may take 5-10 minutes depending on connection speed).

4. Download Ollama Model

On first run, Ollama needs to download an AI model. This is a one-time download:

docker compose logs -f ollama
# Wait for: "pulling model... done"

Common models (choose one via OLLAMA_MODEL in .env):

| Model | Size | Quality | Recommended For | |-------|------|---------|----------------| | mistral:latest | ~4 GB | Good | General network diagnostics | | llama3.2:latest | ~2 GB | Better | More detailed explanations | | nomic-embed-text | ~274 MB | — | RAG / knowledge retrieval |

5. Verify All Services Are Running

docker compose ps

Expected output:

NAME              STATUS      PORTS
backend           Up          0.0.0.0:8000->8000/tcp
frontend          Up          0.0.0.0:3000->3000/tcp
postgres          Up          0.0.0.0:5432->5432/tcp
ollama            Up          0.0.0.0:11434->11434/tcp
license-server    Up          0.0.0.0:9000->9000/tcp

6. Open the Web UI

Navigate to:

http://localhost:3000

You should see the PacketPilot Analyze dashboard. If this is your first visit, you'll be guided through creating an admin account.


Network Access

By default, Analyze binds to localhost on ports 3000 and 8000. To make it accessible from other machines on the network, change the binding in docker-compose.yml:

services:
  frontend:
    ports:
      - "0.0.0.0:3000:3000"   # Changed from 127.0.0.1:3000:3000
  backend:
    ports:
      - "0.0.0.0:8000:8000"   # Changed from 127.0.0.1:8000:8000

Then run docker compose restart to apply the change.


Data Storage

All case data is stored in the postgres Docker volume:

docker compose exec postgres pg_dump -U postgres packetpilot > backup_$(date +%Y%m%d).sql

Backups can be restored with:

cat backup_YYYYMMDD.sql | docker compose exec -T postgres psql -U postgres packetpilot

Updating

To update to a new version:

cd ~/packetpilot-analyze
docker compose down
# Backup data first (see above)
unzip PacketPilot-Analyze-Suite-vX.Y.zip   # new version
docker compose up -d

Your docker-compose.yml, .env, and data volumes are preserved. Only the service images are updated.


Uninstalling

docker compose down -v   # -v removes data volumes — WARNING: destroys all cases
rm -rf ~/packetpilot-analyze

Warning: Using -v removes all cases, findings, and stored artifacts permanently. Backup first if you need to preserve data.


Port Reference

| Service | Internal Port | Default External | |---------|--------------|-----------------| | Web UI | 3000 | localhost:3000 | | REST API | 8000 | localhost:8000 | | PostgreSQL | 5432 | Not exposed | | Ollama | 11434 | Not exposed | | License Server | 9000 | Not exposed |

Only ports 3000 and 8000 need to be accessible to users. All other ports are internal to the Docker network.


Upgrading an existing install

See the Install & Upgrade guide for upgrade paths, data-preservation guarantees, and how to transfer a license to a new machine.