indice

Web archive server · written in Rust

Free & open source · AGPL-3.0

indiceA reading room for web archives.

indice turns your collection of WACZ files into an archive you can actually use: full-text search with faceted, temporal browsing; the provenance of every crawl; and in-browser replay using trusted Webrecorder tooling. Import straight from your file system, cloud storage, Browsertrix or Archive-It. You can even annotate the pages you find. One self-contained binary that scales from your laptop to multiuser organizational setups.

brew install edsu/indice/indiceor a prebuilt binary, Docker, or cargo →
single binarymacOS · Linux · Windowsno databaseruns offline

What you get

Full-text search, faceted & temporal

Hit-highlighted snippets across page text, titles, and metadata; then narrow by collection, site, date, type, or language, with a month timeline for moving through time.

Provenance up front

See how each crawl was made, including software, operator, dates, seeds, page counts.

Faithful in-browser replay

Archived pages replay client-side, exactly as captured, right in the reader's browser.

Replay is entirely Webrecorder's work (ReplayWeb.page / wabac.js).

Import from Browsertrix & Archive-It

Bring collections in from Browsertrix or Archive-It, or index any WACZ over HTTP, and descriptive metadata carries straight into a finding aid. See the sources ↓

Careful with archived code

Replayed pages run their own JavaScript, so indice replays them on an origin of their own, where that script can't act as the person reading. Changes need a sign-in and a role you grant.The threat model →

Annotations on the record

Signed-in users attach Markdown notes to a whole page or a selected passage; they're public to read, highlight in place on replay, and turn up in search.How annotations work →

The reading room

indice homepage: search box, browse-by-year and top-sites, and a collection card
Search & browse. A calm front page: search, browse by year or site, and collection cards.
A collection page rendered as a finding aid with creator, dates, rights, subjects, and crawl provenance
Finding aids, not folders. Each collection reads like an archival description, with fixity and crawl provenance stored as Markdown files you can edit.
Search results with a faceted sidebar and hit-highlighted snippets
Slice and dice. Facets for collection, year, site, type, and language beside hit-highlighted results.
The webrecorder.net homepage replaying inside indice via ReplayWeb.page
Replay in place. Archived pages replay exactly as captured. Here is webrecorder.net being replayed, wrapped in indice's chrome.
The replay viewer with a Notes panel: a passage is highlighted in the replayed page and two Markdown notes are listed beside it
Notes on the record. Signed-in readers annotate a whole page or a selected passage; the note highlights in place, and is public to read and searchable.

How it works at the command line

Index

Point indice at local or remote WACZ files. It builds an embedded full-text index and reads each crawl's provenance.

indice index --collection "Example" *.wacz

Serve

Run the single binary. It serves the read-only reading room over HTTP.

indice serve

Search & replay

Readers search with facets and a timeline, then open any page and watch it replay in their browser.

Bring your archives

Works with the archives you already have.

Browsertrix

Browse your Browsertrix org and import collections and crawls in a few clicks, or index and replay themstraight from Browsertrix's cloud storage, without downloading a thing. indice serves the very same ReplayWeb.page engine Browsertrix does, so replay is identical.

Archive-It

Pull a collection's WARCs from Archive-It over WASAPI; indice builds the WACZ, indexes it, and carries the descriptive metadata straight into a finding aid.

Cloud & remote storage

Point indice at a WACZ hosted over HTTP(S), in object storage, or behind a presigned URL, and it indexes and replays it with byte-range reads, without needing to download the entire file.

Built for range

One tool, laptop to institution.

indice ships as a single self-contained binary that uses the embedded Tantivy search engine library. So there's no Solr, Elasticsearch, or separate database to keep online. The same model that indexes a handful of your own WACZ files on a laptop should scale up towards institution sized collections. It aims to fit both ends of that range, rather than assuming the infrastructure of a large web archive.

Small & private

Index a few crawls on your laptop. Nothing is sent to a hosted service; it runs offline.

One binary, no database. WACZ files index in seconds, and search results return in milliseconds. Try it →

Scaled up

Serve an institutional reading room behind a proxy, with the same single binary.

The index is compact. Adding a million pages results in an index that is about 1.5 GB on disk. How it scales →

Curate in the workroom

Turn the reading room into a workroom.

Run in management mode or behind a SSO provider and a warm clay "red-tape" accent marks write mode: add archives, import from Browsertrix or Archive-It, and write finding aids in place. No command line needed.

Management docs →
indice in management mode: a clay-accented app bar with a Manage chip and a New collection button
Workroom mode. The clay accent and “Manage” chip signal you're editing the archive.

Why “indice”?

An indice is a sign that points beyond itself. Suzanne Briet argued that a wild antelope becomes a document once it is captured, catalogued, and placed in a zoo, an

“indice concret ou symbolique, conservé ou enregistré.”Suzanne Briet, Qu'est-ce que la documentation ? (1951)

Charles Sanders Peirce used index for the same family of sign — one bound to its object by a real connection, like smoke to fire. 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. Three senses of the same idea.

Install

Homebrew (macOS / Linux)

brew install edsu/indice/indice

brew upgrade indice tracks new releases.

Prebuilt binary

# macOS · Linux · Windows
Download from the releases page

Latest release ↗ unpack and run; a sample archive is included.

Cargo

cargo install --git \
  https://github.com/edsu/indice \
  --locked indice

Needs a Rust toolchain.

Docker

docker run -p 8080:8080 \
  -v indice-data:/data \
  ghcr.io/edsu/indice:latest

Or the compose stack with automatic HTTPS.

Colophon

How indice was made.

indice has been built in the open over the course of 2026, in small increments, with substantial help from Claude Code, Anthropic's AI coding assistant. It is the work of a single developer working alongside a language model, not the product of an institution or a large team. It is alpha software: expect rough edges, and know that careful technical review is genuinely welcome.

It stands on the web archiving community's shoulders. Replay is entirely Webrecorder's ReplayWeb.page and wabac.js; the WACZ format, Browsertrix, and Archive-It's WASAPI shape how archives come in. Its framing is borrowed from documentation theory: Suzanne Briet's antelope, Peirce's index, and from the archival tradition of the finding aid.