Archive inventory
The CDX index of the Internet Archive: every captured URL of the domain. Paged crawl for large sites, up to 50,000 URLs per run.
Windows 10/11 · MIT · no installer
Site Restorer pulls a site's saved copy out of the Internet Archive, assembles it into a browsable local build, and reports honestly what came back — and what is gone for good.
No Python needed Portable executable Any CMS
Background
On the night of 1–2 November 2026, the hosting provider Beget suffered an attack on its infrastructure management plane. The provider confirmed the loss of customer data: virtual server contents, S3 object storage and Kubernetes clusters, with VPS binary backups lost as well.
The site this project started with was hosted there: the domain still resolved, the server did not respond, and no backups existed. The only remaining source was the web archive — 1,638 URLs and 9,476 snapshots spanning ten years.
Features
The app does four things: finds out what the archive kept, downloads it, assembles an offline copy and verifies the result.
The CDX index of the Internet Archive: every captured URL of the domain. Paged crawl for large sites, up to 50,000 URLs per run.
HTML, CSS, scripts and images are fetched concurrently. Concurrency adapts by AIMD: 2 → 24 workers, backing off on HTTP 429.
Nothing already downloaded is requested twice. An interrupted run continues where it stopped, and archive rate limits are handled with backoff rather than errors.
Absolute links are rewritten to relative ones. CMS caches with hashes in filenames and image thumbnails are handled heuristically, so styles and pictures do not break.
Every built page is scanned; internal and broken links are counted. report.html shows coverage by file type, total size and the list of errors.
A link from an email, a search result or the archive itself; wrong keyboard layout; IDN domains. Tested on Bitrix, WordPress, MODX, Craft CMS and Laravel.
SiteRestorer.exe --cli --site example.com --out D:\mirror
site\the browsable copy, serve it locallymirror\raw files from the archivedata\inventory.jsonl — the URL listreport.htmlcoverage reportFor scripting there is a CLI: --site, --out, --workers, --rate, --limit, --lang. Details in the README.
How it works
A domain, a link with tracking parameters or an archive URL. The input is cleaned automatically, including wrong keyboard layout and IDN.
Defaults to Documents\SiteRestore\site. Any drive and directory will do.
Downloading runs in the background: progress by file type, a request log, and a “Stop” button at any moment.
report.html shows coverage, size and broken links. Serve the copy with a local web server.
cd Documents\SiteRestore\site
python -m http.server 8080
Why a server. The copy is plain HTML, but links like /catalog/ will not resolve when the file is opened by double-click. Any local static server works; if Python is installed, the two lines on the left are enough.
Case study
The project started with this site: a product catalogue, a blog and PDF catalogues. No files, no backups, no hosting access.
Full write-up with the numbers — in the project docs.
The domain resolves, the server is gone, no backups exist. The archive is the only source left: pages, articles, the catalogue.
You need a copy for the record, a migration or a client handover — without admin access and with the old CMS gone.
Compare what the site looked like a year ago, or bring back a deleted section or a page that vanished.
Limits
No promises of magic: the tool carefully extracts what the archive actually preserved.
If the Internet Archive crawler never fetched a file, it is missing from every snapshot. The report says so instead of substituting a placeholder.
The copy is pages and assets. Forms, sign-in, cart, search and AJAX will not work: content and structure are what comes back.
The Internet Archive throttles requests from a single IP. Large sites take hours, which is normal — resuming makes it survivable.
Download
Links point to the latest build in GitHub Releases. It is a single self-contained binary: no interpreter or libraries to install.
Unblock.cmd from the archive). The source code and CI builds are public — you can compile it yourself.
The same tool is also built on other stacks: Rust — 6.9 MB (GUI, Windows x64) and 3.3 MB (static CLI for Linux); Go — 7.9–8.8 MB (Linux x64/arm64, Windows x64/x86). Full size matrix and build commands are in BUILD.md.
All versions, checksums and release notes live on the Releases page.
The project runs without ads, subscriptions or telemetry. If Site Restorer brought your site back or saved you a night's work, you can thank the author on Boosty. It is the most direct way to speed up new releases.
FAQ
python -m http.server — any other static server will do as well.www) and nearby years: for every URL the closest snapshots are probed.