Introducing Invisible Archive cover
Research notebook

Introducing Invisible Archive

Invisible Archive is a self-hosted file manager built around one unusual rule: a ZIP archive should behave like a directory. You can navigate into it, search its entries, generate thumbnails, and stream compatible media without first extracting the archive or downloading the whole file.

The Go backend resolves a request such as /photos/2023.zip/summer/beach.jpg by finding the physical archive and treating the remaining path as a virtual path inside it. A reference-counted LRU cache keeps active archives warm, while SQLite FTS5 provides indexed search. HTTP range support allows seeking in uncompressed media entries, and libvips handles the thumbnail pipeline.

The Vue interface offers grid, list, and details layouts, virtualized large directories, dark mode, waterfall image discovery, and an installable PWA. A companion Flutter app provides Android browsing and playback.

Deploy with Docker Compose

Create a .env file in the checkout:

APP_PORT=8881
LIBRARY_DIR=/path/to/your/media
CACHE_DIR=/path/to/your/cache

Then start the stack:

docker compose up -d

The source library is designed to be mounted read-only, while thumbnails and the SQLite index live under the cache path. Keep that boundary intact: the file manager is intended for browsing, not modifying the underlying archive collection.

Visit the Invisible Archive repository for current deployment files and implementation details.