Skip to content

indice

indice is a web archive server written in Rust that functions like a reading room for web archives. When you point it at a pile of local or remote WACZ files it gives you:

  • Full-text search and faceting that provides hit-highlighted snippets, then narrow by collection, site, date, type, or language, with a timeline for navigating through time.
  • Provenance that lets you see how each crawl was made (software, operator, dates, seeds, page counts).
  • In-browser replay of archived pages via Webrecorder’s ReplayWeb.page.
  • A management workroom where authenticated users can edit collection metadata and descriptions using Markdown.
  • Page annotations where signed-in users can attach Markdown notes to a whole page or a selected passage.
  • Care with archived code. Replayed pages run their own JavaScript, so indice replays them on an origin of their own, where that script cannot act as the person reading. On a server, changes need a sign-in through your identity provider and a role you grant. Deploy covers the setup, and the threat model says what indice defends and what it does not.

It ships as a single self-contained binary, so there is no Solr, no Elasticsearch, and no separate database server. indice is built for small, local, and private use (a person indexing a handful of their own WACZ files on their laptop, with nothing sent to a hosted service) and uses the same architecture to scale up toward institutional collections. It prioritizes local ease of use, but aims to fit both ends of that range, rather than assuming the infrastructure of a large web archive.

An indice is a sign that points beyond itself, and the name gathers three senses of the same idea. Suzanne Briet argued that a wild antelope becomes a document once it is captured, catalogued, and set aside as evidence. She defined a document as “un indice concret ou symbolique, conservé ou enregistré” (a concrete or symbolic sign, preserved or recorded). Charles Sanders Peirce used index for the same family of sign: one bound to its object by a real, existential connection like smoke to fire, or a weathervane to the wind. Squint a little and a web capture is like that too: a trace connected to a moment of the live web. And, of course, indice builds a full-text index over the archives it serves, so the simplest meaning applies too.