Docker container for sd-webui-infinite-image-browsing standalone mode.
docker run -d \
-p 8080:8080 \
-v /path/to/your/images:/outputs:ro \
-v iib-cache:/cache \
ghcr.io/pbanddev/infinite-image-browser-docker:latestlatest is built from upstream main, and the frontend assets are rebuilt from that checkout before the image is published.
vX.Y.Z is built from the matching upstream tag, and the frontend assets are rebuilt from that tagged checkout before the image is published.
Use a version tag for stability:
docker pull ghcr.io/pbanddev/infinite-image-browser-docker:v1.2.3This repo does not trust upstream checked-in vue/dist assets for release metadata. The Docker build rebuilds the frontend from the authoritative upstream source checkout so the served UI version stays aligned with the checked-out commit or tag.
If the image date and the app version look different, check the running container directly:
docker exec infinite-image-browser sh -lc 'curl -fsS http://127.0.0.1:8080/infinite_image_browsing/version'hash and tag are the source of truth for the running app, not the image build date.
Use the root compose file to run the published GHCR image:
services:
iib:
image: ghcr.io/pbanddev/infinite-image-browser-docker:latest
ports:
- "8080:8080"
volumes:
- /path/to/images:/outputs:ro
- iib-cache:/cache
restart: unless-stopped
volumes:
iib-cache:Start it with:
docker compose up -dAll environment variables are passed through to IIB. Docker sets sensible defaults for containerized usage.
| Variable | Default | Description |
|---|---|---|
PORT |
8080 |
Server port |
EXTRA_PATHS |
/outputs |
Paths to browse (comma-separated) |
EXTRA_OPTIONS |
Additional CLI args | |
IIB_DB_PATH |
/cache/iib.db |
Database location |
IIB_CACHE_DIR |
/cache |
Cache/thumbnails directory |
IIB_ACCESS_CONTROL |
enable |
Filesystem access control |
IIB_DB_FILE_BACKUP_MAX |
0 |
Max DB backups (0 = disabled) |
| Variable | Description |
|---|---|
IIB_SECRET_KEY |
Authentication key (if set, users must enter to access) |
IIB_SERVER_LANG |
Server language: en, zh, auto |
OPENAI_API_KEY |
OpenAI API key for AI features |
OPENAI_BASE_URL |
OpenAI-compatible API URL |
EMBEDDING_MODEL |
Embedding model for clustering |
AI_MODEL |
Chat model for AI features |
For full list, see IIB's .env.example.
docker run -d \
-p 8080:8080 \
-v /path/to/images:/outputs:ro \
-v /path/to/data:/data \
-e IIB_DB_PATH=/data/iib.db \
-e IIB_CACHE_DIR=/data/cache \
ghcr.io/pbanddev/infinite-image-browser-docker:latestThe container includes a default favicon. To use your own custom favicon, mount an SVG file to /app/custom/favicon.svg:
docker run -d \
-p 8080:8080 \
-v /path/to/images:/outputs:ro \
-v iib-cache:/cache \
-v /path/to/my-favicon.svg:/app/custom/favicon.svg:ro \
ghcr.io/pbanddev/infinite-image-browser-docker:latestservices:
iib:
image: ghcr.io/pbanddev/infinite-image-browser-docker:latest
ports:
- "8080:8080"
volumes:
- /path/to/images:/outputs:ro
- iib-cache:/cache
- ./my-favicon.svg:/app/custom/favicon.svg:ro
restart: unless-stopped
volumes:
iib-cache:If you have an existing IIB database with likes/tags:
- Copy your
iib.dbto a mounted volume - Set
IIB_DB_PATHto point to it - Run path migration (Windows paths → container paths):
docker exec <container> python migrate.py \ --db_path /data/iib.db \ --old_dir "C:\Your\Local\Output\Path" \ --new_dir "/outputs"
git clone https://github.com/PBandDev/infinite-image-browser-docker
cd infinite-image-browser-docker
docker compose -f compose.dev.yaml up --buildCheck that the runtime metadata, source tree, and embedded frontend assets stay in sync:
The shell verifier expects docker, curl, and python3 or python on the host.
./scripts/runtime/verify-image.sh ghcr.io/pbanddev/infinite-image-browser-docker:latest.\scripts\windows\verify-image.ps1 -ImageRef ghcr.io/pbanddev/infinite-image-browser-docker:latestAGPL-3.0