> ## Content Index
> Fetch the complete content index at: https://blog.uptime.bet/llms.txt
> Use this file to discover other available public pages before exploring further.

# ArchiveBox 0.9.77: Build Your Own Self-Hosted Web Archive with Docker Compose
- URL: https://blog.uptime.bet/archivebox-self-hosted-web-archive-docker/
- Published: 2026-10-30T08:00:00.000Z
- Updated: 2026-10-30T08:00:00.000Z
- Description: ArchiveBox saves web pages as HTML, PDF, screenshots, WARC and more on your own server. What is new in 0.9.76/0.9.77, privacy tips and a Docker Compose setup.
- Author: Alexandre Nebeling
- Tags: Trending, Self-Hosted, Open Source, Docker, Homelab, Productivity

Bookmarks are a promise you make to your future self: "I'll read this later." The problem is that the web doesn't keep that promise. Blog posts vanish, docs get restructured, forum threads go private, and that one GitHub issue with the perfect workaround suddenly returns a 404\. If you've ever hit a dead link exactly when you needed it, ArchiveBox is the tool you've been missing.

ArchiveBox shipped two releases this week, **v0.9.76** and the follow-up **v0.9.77** (both on 27 October 2026), with faster archiving, new importers and smoother replay. That makes it a great moment to take a fresh look at one of the oldest and most complete self-hosted web archiving projects out there.

## What is ArchiveBox?

[ArchiveBox](https://github.com/ArchiveBox/ArchiveBox?ref=blog.uptime.bet) is a self-hosted, MIT-licensed app that takes the URLs you feed it and saves a local copy of each page in several redundant formats. Think of it as your own private Wayback Machine: you decide what gets saved, where it lives and who can see it.

What sets it apart is its focus on **durable, standard formats**. Instead of locking your archive into a proprietary database, ArchiveBox stores everything as ordinary files and folders: HTML, PNG, PDF, TXT, JSON, WARC and an SQLite index. Even if you stopped running ArchiveBox one day, you could still open your snapshots with normal tools.

You can drive it through a web UI, a CLI, a REST API, a browser extension, or by browsing the data folder directly.

![ArchiveBox web interface with live capture progress and snapshot library](https://blog.uptime.bet/content/images/2026/10/live.progress.ui.webp)

The ArchiveBox web UI showing live capture progress and the snapshot library (v0.9.76). [Source: ArchiveBox release notes](https://github.com/ArchiveBox/ArchiveBox/releases/tag/v0.9.76?ref=blog.uptime.bet) (MIT)

## Key features

- **Many output formats per page.** For a normal website, ArchiveBox can save the original HTML, a self-contained SingleFile HTML, a screenshot, a PDF, a WARC file, extracted article text (via Readability and Mercury), the favicon, headers and more.
- **Media and code, too.** Video and audio links are downloaded with `yt-dlp` (including subtitles and metadata), and GitHub/GitLab/Bitbucket links can be cloned as Git repositories.
- **Flexible inputs.** Add URLs one by one, pipe in a text file, import browser bookmarks or history, RSS feeds, or link-saving services like Pinboard.
- **Built-in scheduling.** `archivebox schedule` runs recurring imports (for example from an RSS feed) through the same orchestrator as the web server, so you don't need a separate cron container.
- **Permissions per snapshot.** You can control whether the index is public, whether guests can submit URLs, and whether new snapshots are public or private.
- **Integrations.** There's a REST API, webhooks, a browser extension, and optional add-ons such as a chat bot (Slack, Telegram, WhatsApp and others) and ChangeDetection.io integration.
- **Optional Archive.org submission.** By default, URLs can also be sent to the Internet Archive; you can turn that off.

## What's new in v0.9.76 and v0.9.77

According to the official release notes, the highlights of this week's releases are:

- **Automatic social media importing.** You can back up posts, bookmarks, likes and photos from sites like X, Facebook, Instagram and Reddit. A new AI-assisted engine creates a custom importer for a source and repairs it when the site changes; scheduled imports afterwards run the saved script without AI. It works by connecting a logged-in browser profile (called a *Persona*).
- **Chat bot.** The optional ArchiveBox Chat Bot lets you save links by sending them in Slack, Telegram, WhatsApp, Zulip and similar chats.
- **Faster archiving.** The project says archiving now averages about one minute per URL, even with thousands of queued tasks on modest hardware.
- **Better replay** of saved pages (missing styles, images and redirected resources), **Memento API** support, and several **privacy and security fixes** that keep private captures and browser cookies out of public replay.
- v0.9.77 is a small follow-up with install fixes, faster API browsing of large collections, and updated capture tools including newer SingleFile packages.

![ArchiveBox importer selection screen for social media and other sources](https://blog.uptime.bet/content/images/2026/10/importers.webp)

The new importer screen in ArchiveBox v0.9.76: pick a source or create a custom importer. [Source: ArchiveBox release notes](https://github.com/ArchiveBox/ArchiveBox/releases/tag/v0.9.76?ref=blog.uptime.bet) (MIT)

## Why self-host a web archive?

- **Link rot is real.** Pages you rely on for documentation, research or homelab troubleshooting can disappear at any time.
- **Privacy.** Public archiving services see every URL you submit. With ArchiveBox the list stays on your own server (as long as you disable the Archive.org option for private links).
- **Private content.** You can archive things a public crawler can't reach, such as pages behind a login, using a browser profile you control.
- **Your data, your formats.** Everything is plain files, easy to back up and easy to read without the app.

## Installing ArchiveBox with Docker Compose

Docker Compose is the installation method the project recommends. You need a Linux (or macOS) host with Docker and the Compose plugin, and enough disk space (more on that below).

### 1\. Create a directory

```bash
mkdir -p ~/archivebox/data && cd ~/archivebox

```

### 2\. Create the `docker-compose.yml`

You can download the official file with `curl -fsSL 'https://docker-compose.archivebox.io' > docker-compose.yml`, which also contains commented-out optional services. A trimmed-down version based on that file looks like this:

```yaml
services:
  archivebox:
    image: archivebox/archivebox:0.9.77
    restart: unless-stopped
    ports:
      - "5797:5797"
    volumes:
      - ./data:/data              # main data dir, ideally on a fast local SSD
      - tmp:/tmp/archivebox       # lets one-off "docker compose run" commands share the runners
    environment:
      - BASE_URL=https://archive.example.com   # the URL you will use to reach ArchiveBox
      - PUBLIC_ADD_VIEW=False                   # don't let anonymous users submit URLs
      - ARCHIVEDOTORG_ENABLED=False             # don't send your URLs to Archive.org
    shm_size: 1gb                 # Chrome needs a decent shared memory pool
    pids_limit: 2048              # avoids low task limits with Chrome and parallel extractors

volumes:
  tmp:

```

A few notes:

- The official file uses `archivebox/archivebox:latest`. I pinned the version here so upgrades happen when *you* decide. At the time of writing, `latest` and `0.9.77` point to the same image on Docker Hub.
- `ARCHIVEDOTORG_ENABLED` is `True` in the official file. Set it to `False` if you plan to archive anything private.
- `BASE_URL` and the security mode can also be configured in the first-run wizard in the web UI. If you're only testing locally, you can leave `BASE_URL` out.

### 3\. Start it

```bash
docker compose pull
docker compose up -d --wait

```

A new collection is initialized automatically on the first start.

### 4\. Finish setup in the browser

Open `/admin/` on the address you use to reach the server, for example `http://your-server:5797/admin/` (on the same machine, the docs suggest `http://admin.archivebox.localhost:5797/admin/`). There you create the first admin account and finish the web setup.

If you'd rather create the admin user automatically, the compose file supports `ADMIN_USERNAME` and `ADMIN_PASSWORD`. Just don't commit those to Git; an `.env` file with restricted permissions is a better place.

### 5\. Add your first URLs

```bash
# a single page
docker compose exec archivebox archivebox add 'https://example.com'

# a page plus every link on it (one level deep)
docker compose exec archivebox archivebox add --depth=1 'https://news.ycombinator.com'

# a whole list of URLs from a text file
docker compose exec -T archivebox archivebox add < ~/Downloads/bookmarks.txt

```

Use `-T` whenever you pipe data into a Compose command. `docker compose exec archivebox archivebox help` lists all other commands.

## Configuration tips

**Lock down visibility first.** This is the most important tip. By default, the README lists `PUBLIC_INDEX=True` and `PERMISSIONS=public`, which means anonymous visitors can browse your snapshot list and newly added snapshots are public. For a personal archive you'll usually want the opposite:

```bash
docker compose run --rm archivebox config --set PUBLIC_INDEX=False
docker compose run --rm archivebox config --set PERMISSIONS=private
docker compose run --rm archivebox config --set PUBLIC_ADD_VIEW=False
docker compose restart archivebox

```

**Be careful with logged-in archiving.** The project warns that anyone who can view your archives may be able to see cookies, session tokens or private URLs that were used during archiving. Use a dedicated browser profile for ArchiveBox, keep private snapshots private, and don't share them without checking their contents.

**Put it behind a reverse proxy.** For access from other devices, run it behind Traefik, Caddy or Nginx Proxy Manager with HTTPS, and set `BASE_URL` to the public address. If it only needs to be reachable at home, consider binding the port to a VPN or LAN interface instead of exposing it to the internet.

**Mind your disk space.** According to the docs, ArchiveBox uses anywhere from about 1 GB to about 50 GB per 1,000 snapshots, mostly depending on whether video and audio downloads are enabled. Ways to keep it under control:

- Lower `YTDLP_MAX_SIZE` or disable media downloads with `YTDLP_ENABLED=False` if you don't need them.
- Turn off extractors you don't need.
- Use a compressing filesystem such as ZFS or Btrfs.
- Keep `data/index.sqlite3` on a reliable local SSD. The bulky `data/archive/` folder can live on a slower HDD or a network share (there's a commented example volume mount for that in the official compose file).

**Slow sites or broken certificates?** Increase `TIMEOUT` (default 60 seconds), or set `CHECK_SSL_VALIDITY=False` for sites with bad certificates.

**Feed it from your RSS reader.** If you already run a feed reader like [CommaFeed](https://blog.uptime.bet/commafeed-self-hosted-rss-reader-docker/), you can let ArchiveBox import the same feeds on a schedule and keep a permanent copy of every article. Check `archivebox schedule --help` for the exact options in your version.

**Back it up.** An archive is only useful if it survives a dead disk. Back up the whole `data/` folder, and if you want to know when your backup jobs silently stop, a tool like [Healthchecks](https://blog.uptime.bet/healthchecks-self-hosted-cron-job-monitoring-docker/) is a perfect companion.

## Limitations to keep in mind

- **It's resource-hungry.** ArchiveBox runs a headless Chrome plus tools like `wget` and `yt-dlp` for each URL. That's why the compose file reserves 1 GB of shared memory. A tiny VPS or an older Raspberry Pi will struggle with large imports.
- **Storage grows fast**, especially with media downloads enabled (see above).
- **Fast-moving releases.** The 0.9 series is moving quickly, with release candidates for 0.9.78 already on Docker Hub. Pin your version, read the release notes, and back up before upgrading.
- **Public defaults.** As mentioned, the default visibility settings are open. Change them before adding anything personal.
- **AI importers are optional.** The new social media importers use AI to build the importer script. If you don't want that, you can stick to classic URL, bookmark and RSS imports.

## ArchiveBox vs. Linkwarden vs. Karakeep

If you're mainly looking for a bookmark manager, two popular self-hosted projects are worth knowing:

|            | ArchiveBox                                                                          | Linkwarden                                               | Karakeep                                              |
| ---------- | ----------------------------------------------------------------------------------- | -------------------------------------------------------- | ----------------------------------------------------- |
| Focus      | Web archiving and long-term preservation                                            | Collaborative bookmark manager that also preserves pages | "Bookmark everything" app for links, notes and images |
| License    | MIT                                                                                 | AGPL-3.0                                                 | AGPL-3.0                                              |
| Highlights | Many output formats (WARC, SingleFile, PDF, media, Git), CLI and plain-file storage | Collecting, reading and annotating, collaboration        | AI-based automatic tagging, full-text search          |

Rule of thumb: if you want a nice app to organize and read bookmarks, look at Linkwarden or Karakeep. If you want the most complete, format-agnostic copy of a page that will still open in ten years, ArchiveBox is the specialist.

## Conclusion

ArchiveBox is not the prettiest bookmark app, and it's not meant to be. It's a serious archiving tool that saves pages in multiple open formats, runs entirely on your own hardware and gives you a CLI, an API and a web UI on top. With this week's releases it got faster, better at replaying pages and gained new ways to import content.

If you've lost one too many important links, spin it up with Docker Compose, lock down the visibility settings, and start feeding it the pages you don't want to lose. Do you already archive the web at home? Let us know which tool you use.

## Sources

- [ArchiveBox on GitHub](https://github.com/ArchiveBox/ArchiveBox?ref=blog.uptime.bet) (README, MIT license)
- [ArchiveBox v0.9.77 release notes](https://github.com/ArchiveBox/ArchiveBox/releases/tag/v0.9.77?ref=blog.uptime.bet)
- [ArchiveBox v0.9.76 release notes](https://github.com/ArchiveBox/ArchiveBox/releases/tag/v0.9.76?ref=blog.uptime.bet)
- [Official docker-compose.yml (v0.9.77)](https://github.com/ArchiveBox/ArchiveBox/blob/v0.9.77/docker-compose.yml?ref=blog.uptime.bet)
- [ArchiveBox Wiki: Docker](https://github.com/ArchiveBox/ArchiveBox/wiki/Docker?ref=blog.uptime.bet)
- [archivebox/archivebox on Docker Hub](https://hub.docker.com/r/archivebox/archivebox?ref=blog.uptime.bet)
- [Linkwarden on GitHub](https://github.com/linkwarden/linkwarden?ref=blog.uptime.bet)
- [Karakeep on GitHub](https://github.com/karakeep-app/karakeep?ref=blog.uptime.bet)