{
  "generatedBy": "bench.mjs",
  "startedAt": "2026-10-05T12:37:08.482Z",
  "finishedAt": "2026-10-05T12:37:08.622Z",
  "machine": {
    "cpu": "Apple M1",
    "os": "Darwin 26.3",
    "arch": "arm64",
    "node": "v22.18.0",
    "python": "Python 3.13.5"
  },
  "metricCount": 56,
  "metrics": [
    {
      "metric": "docker_version",
      "value": "28.3.2",
      "unit": "",
      "note": "Docker Desktop engine; containerd image store (io.containerd.snapshotter.v1)"
    },
    {
      "metric": "ollama_version",
      "value": "0.35.1",
      "unit": "",
      "note": "native macOS binary on the host"
    },
    {
      "metric": "ollama_bind_address",
      "value": "127.0.0.1:11434",
      "unit": "",
      "note": "lsof listen address; OLLAMA_HOST not set"
    },
    {
      "metric": "container_to_host_ollama",
      "value": "0.35.1",
      "unit": "",
      "note": "curl http://host.docker.internal:11434/api/version from inside the Open WebUI container while Ollama listened on 127.0.0.1 only (Docker Desktop for Mac)"
    },
    {
      "metric": "models_seen_by_open_webui",
      "value": "qwen2.5:1.5b,arena-model",
      "unit": "",
      "note": "GET /api/models with OLLAMA_BASE_URL=http://host.docker.internal:11434"
    },
    {
      "metric": "registry_compressed_v0_11_3_mb",
      "value": 1656.2,
      "unit": "MB",
      "note": "sum of layer sizes in the linux/arm64 manifest on ghcr.io, 2026-10-05"
    },
    {
      "metric": "registry_compressed_v0_11_4_mb",
      "value": 1492.1,
      "unit": "MB",
      "note": "sum of layer sizes in the linux/arm64 manifest on ghcr.io, 2026-10-05"
    },
    {
      "metric": "registry_compressed_main_mb",
      "value": 1492.1,
      "unit": "MB",
      "note": "sum of layer sizes in the linux/arm64 manifest on ghcr.io, 2026-10-05"
    },
    {
      "metric": "registry_compressed_v0_11_3_slim_mb",
      "value": 1378.9,
      "unit": "MB",
      "note": "sum of layer sizes in the linux/arm64 manifest on ghcr.io, 2026-10-05"
    },
    {
      "metric": "registry_compressed_v0_11_4_slim_mb",
      "value": 175.9,
      "unit": "MB",
      "note": "sum of layer sizes in the linux/arm64 manifest on ghcr.io, 2026-10-05"
    },
    {
      "metric": "main_tag_same_layers_as_v0_11_4",
      "value": false,
      "unit": "",
      "note": ":main and :v0.11.4 arm64 manifests compared layer by layer on 2026-10-05; false means :main already resolved to a different build"
    },
    {
      "metric": "v0_11_4_layers_shared_with_v0_11_3",
      "value": 1,
      "unit": "layers",
      "note": "of 15; the update re-downloads almost the whole image"
    },
    {
      "metric": "image_disk_v0_11_3",
      "value": "6.49GB",
      "unit": "",
      "note": "docker image ls SIZE on the containerd store (unpacked + compressed content)"
    },
    {
      "metric": "image_disk_v0_11_4",
      "value": "5.85GB",
      "unit": "",
      "note": "docker image ls SIZE on the containerd store (unpacked + compressed content)"
    },
    {
      "metric": "pull_v0_11_3_s",
      "value": 1451.69,
      "unit": "s",
      "note": "docker pull wall time; download-bound on this connection (roughly 1.1-1.6 MB/s)",
      "n": 1
    },
    {
      "metric": "pull_v0_11_4_s",
      "value": 1122.18,
      "unit": "s",
      "note": "docker pull wall time; download-bound",
      "n": 1
    },
    {
      "metric": "first_start_to_health_s",
      "value": 329.86,
      "unit": "s",
      "note": "v0.11.3 on an empty volume until /health answered: full alembic migration chain from an empty database plus model downloads into cache/",
      "n": 1
    },
    {
      "metric": "seed_completion_s",
      "value": 3.94,
      "unit": "s",
      "note": "one non-streaming chat completion through Open WebUI to native Ollama",
      "n": 1
    },
    {
      "metric": "stop_container_s",
      "value": 11.78,
      "unit": "s",
      "note": "docker stop",
      "n": 1
    },
    {
      "metric": "backup_tar_s",
      "value": 94.87,
      "unit": "s",
      "note": "alpine:3 helper container, tar czf of the read-only volume to a bind-mounted host folder",
      "n": 1
    },
    {
      "metric": "backup_archive_mb",
      "value": 1009.9,
      "unit": "MB",
      "note": "openwebui-drill.tar.gz"
    },
    {
      "metric": "backup_archive_entries",
      "value": 211,
      "unit": "entries",
      "note": "tar -tzf | wc -l"
    },
    {
      "metric": "backup_has_webui_db",
      "value": true,
      "unit": "",
      "note": "grep webui.db in the listing"
    },
    {
      "metric": "backup_has_uploads",
      "value": true,
      "unit": "",
      "note": "grep uploads/ in the listing"
    },
    {
      "metric": "backup_extract_s",
      "value": 6.82,
      "unit": "s",
      "note": "tar -xzf on the Mac host",
      "n": 1
    },
    {
      "metric": "backup_sqlite_quick_check",
      "value": "ok",
      "unit": "",
      "note": "sqlite3 webui.db 'PRAGMA quick_check;' on the extracted copy"
    },
    {
      "metric": "backup_db_rows_chat_user_file",
      "value": "1/1/1",
      "unit": "",
      "note": "select count(*) from chat, user, file in the extracted webui.db"
    },
    {
      "metric": "backup_db_alembic_version",
      "value": "d4c1a8e37b62",
      "unit": "",
      "note": "alembic_version.version_num in the v0.11.3 database"
    },
    {
      "metric": "volume_total_mib",
      "value": 1066.7,
      "unit": "MiB",
      "note": "du -sk /data inside a helper container"
    },
    {
      "metric": "volume_cache_mib",
      "value": 1065.4,
      "unit": "MiB",
      "note": "du of cache/ (downloaded models, not user data)"
    },
    {
      "metric": "volume_cache_embedding_mib",
      "value": 922.7,
      "unit": "MiB",
      "note": "cache/embedding: sentence-transformers all-MiniLM-L6-v2 and TaylorAI bge-micro-v2"
    },
    {
      "metric": "volume_cache_whisper_mib",
      "value": 141.1,
      "unit": "MiB",
      "note": "cache/whisper: Systran faster-whisper-base"
    },
    {
      "metric": "volume_userdata_kb",
      "value": {
        "webui.db": 668,
        "uploads": 4,
        "vector_db": 356
      },
      "unit": "KiB",
      "note": "du -sk of the extracted archive: database, uploads, vector store"
    },
    {
      "metric": "rm_container_s",
      "value": 0.87,
      "unit": "s",
      "note": "docker rm",
      "n": 1
    },
    {
      "metric": "restart_to_health_after_update_s",
      "value": 23.81,
      "unit": "s",
      "note": "v0.11.4 on the existing volume (models already cached) until /health answered",
      "n": 1
    },
    {
      "metric": "migrations_run_on_update",
      "value": 0,
      "unit": "migrations",
      "note": "alembic 'Running upgrade' lines in the v0.11.4 startup log"
    },
    {
      "metric": "mount_after_update",
      "value": "volume aw-owui-data /var/lib/docker/volumes/aw-owui-data/_data -> /app/backend/data rw= true",
      "unit": "",
      "note": "docker inspect .Mounts on the new container"
    },
    {
      "metric": "before_update_version",
      "value": "0.11.3",
      "unit": "",
      "note": "GET /api/version"
    },
    {
      "metric": "before_update_old_session_token_http",
      "value": 200,
      "unit": "HTTP",
      "note": "GET /api/v1/auths/ with the token issued at signup on v0.11.3"
    },
    {
      "metric": "before_update_password_signin",
      "value": true,
      "unit": "",
      "note": "POST /api/v1/auths/signin with the same dummy credentials"
    },
    {
      "metric": "before_update_data_intact",
      "value": true,
      "unit": "",
      "note": "chats=1 title='AW update drill chat' users=1 upload sha256[:16]=a297436599580954 (expected a297436599580954)"
    },
    {
      "metric": "after_update_version",
      "value": "0.11.4",
      "unit": "",
      "note": "GET /api/version"
    },
    {
      "metric": "after_update_old_session_token_http",
      "value": 200,
      "unit": "HTTP",
      "note": "GET /api/v1/auths/ with the token issued at signup on v0.11.3"
    },
    {
      "metric": "after_update_password_signin",
      "value": true,
      "unit": "",
      "note": "POST /api/v1/auths/signin with the same dummy credentials"
    },
    {
      "metric": "after_update_data_intact",
      "value": true,
      "unit": "",
      "note": "chats=1 title='AW update drill chat' users=1 upload sha256[:16]=a297436599580954 (expected a297436599580954)"
    },
    {
      "metric": "after_restore_version",
      "value": "0.11.4",
      "unit": "",
      "note": "GET /api/version"
    },
    {
      "metric": "after_restore_old_session_token_http",
      "value": 200,
      "unit": "HTTP",
      "note": "GET /api/v1/auths/ with the token issued at signup on v0.11.3"
    },
    {
      "metric": "after_restore_password_signin",
      "value": true,
      "unit": "",
      "note": "POST /api/v1/auths/signin with the same dummy credentials"
    },
    {
      "metric": "after_restore_data_intact",
      "value": true,
      "unit": "",
      "note": "chats=1 title='AW update drill chat' users=1 upload sha256[:16]=a297436599580954 (expected a297436599580954)"
    },
    {
      "metric": "rotated_key_version",
      "value": "0.11.4",
      "unit": "",
      "note": "GET /api/version"
    },
    {
      "metric": "rotated_key_old_session_token_http",
      "value": 401,
      "unit": "HTTP",
      "note": "GET /api/v1/auths/ with the token issued at signup on v0.11.3"
    },
    {
      "metric": "rotated_key_password_signin",
      "value": true,
      "unit": "",
      "note": "POST /api/v1/auths/signin with the same dummy credentials"
    },
    {
      "metric": "rotated_key_data_intact",
      "value": true,
      "unit": "",
      "note": "chats=1 title='AW update drill chat' users=1 upload sha256[:16]=a297436599580954 (expected a297436599580954)"
    },
    {
      "metric": "restore_extract_s",
      "value": 37.17,
      "unit": "s",
      "note": "alpine:3 tar xzf into a fresh named volume",
      "n": 1
    },
    {
      "metric": "restore_start_to_health_s",
      "value": 56.15,
      "unit": "s",
      "note": "v0.11.4 on the restored volume, port 3001",
      "n": 1
    },
    {
      "metric": "restore_from_archive_only",
      "value": "original container and volume deleted before the restore",
      "unit": "",
      "note": "so every verified record came from the archive"
    }
  ],
  "log": [
    ""
  ]
}
