Развертывание ArchiveBox: архивирование веб‑страниц

Пошаговая инструкция по развёртыванию ArchiveBox в Docker. Сохраняйте ссылки, страницы, закладки и организуйте личную библиотеку интернет-контента.

Не указано
Алексей Кузнецов
Алексей Кузнецов
Системный администратор21 января 2026 г.

Установка Docker и Docker Compose

Обновите системные пакеты и установите Docker и Docker Compose для управления контейнерами.

sudo apt update
sudo apt install docker.io docker-compose -y
sudo systemctl start docker
sudo systemctl enable docker
sudo usermod -aG docker $USER
# Перелогиньтесь после выполнения команды usermod

Создание директории и файла docker-compose.yml

Создайте папку для хранения данных и конфигурационный файл Docker Compose.

mkdir -p ~/archivebox && cd ~/archivebox
# Создайте файл docker-compose.yml с содержимым ниже

Содержимое docker-compose.yml

Создайте файл docker-compose.yml с настройками контейнера. Замените 'your_secret_key_here' на сгенерированную строку (мин. 32 символа).

version: '3.8'
services:
  archivebox:
    image: archivebox/archivebox:latest
    container_name: archivebox
    ports:
      - "8000:8000"
    volumes:
      - ./data:/data
    environment:
      - ALLOWED_HOSTS=*
      - SECRET_KEY=your_secret_key_here
    restart: unless-stopped
    deploy:
      resources:
        limits:
          memory: 2G

Запуск контейнера

Запустите контейнер ArchiveBox в фоновом режиме и проверьте его статус.

docker-compose up -d
docker ps

Инициализация ArchiveBox

Войдите в контейнер и выполните инициализацию системы архивации.

docker exec -it archivebox bash
archivebox init
exit

Создание администратора

Сгенерируйте учетные данные для доступа к веб-интерфейсу.

docker exec -it archivebox archivebox manage createsuperuser

Добавление первой ссылки

Добавьте ссылку через командную строку или веб-интерфейс для проверки работы системы.

docker exec -it archivebox archivebox add "https://example.com"

Доступ к веб-интерфейсу

Откройте браузер и перейдите по адресу сервера, используя порт 8000.

http://localhost:8000

Руководство: Как развернуть собственный сервер Archiving — ArchiveBox — для архивации веб-страниц, страниц из браузера, закладок и Pocket

Введение

Зачем архивировать веб-контент?

Интернет динамичен: страницы меняются, исчезают или блокируются. Архивация веб-контента позволяет сохранить копии для личного использования, исследования, избежания потери информации. Это важно для студентов, исследователей, журналистов и всех, кто хочет сохранить важные материалы. Архивирование помогает предотвратить потерю данных из-за "битых" ссылок или удаления контента.

Архивирование как услуга vs. самопроверка (самохостинг)

Существуют платные и бесплатные сервисы архивации (например, Wayback Machine, но они ограничены в частоте запросов и приватности). Самохостинг (самопроверка) дает полный контроль: данные хранятся на вашем сервере, обеспечивается конфиденциальность, нет ограничений на объем и частоту архивирования. ArchiveBox — это открытая альтернатива для самостоятельного развертывания.

Представление ArchiveBox

ArchiveBox — это мощный инструмент для архивации веб-страниц с открытым исходным кодом. Он поддерживает различные форматы: HTML, PDF, скриншоты, архивные копии (WARC). ArchiveBox позволяет импортировать ссылки из множества источников, включая экспорты из браузеров, Pocket, и работа через командную строку или веб-интерфейс. Ключевые возможности: автоматизация, поиск по метаданным, обновление архивов и простое управление.

Требования и подготовка окружения

Минимальные требования к серверу

  • Процессор: 2+ ядра (ARM или x86)
  • Оперативная память: 2+ GB (рекомендуется 4 GB для больших архивов)
  • Хранилище: 10+ GB (рекомендуется 50+ GB для архивирования множества страниц; зависит от объема контента)
  • Операционная система: Linux (Ubuntu/Debian, CentOS, или дистрибутивы на базе Debian для Docker)
  • Сеть: Стабильный интернет (желателен статический IP или домен для веб-интерфейса, если требуется доступ извне)
  • Дополнительно: Python 3.8+ (для ручной установки), Docker (для рекомендуемого способа)

Подготовка окружения

  1. Обновите систему:

    sudo apt update && sudo apt upgrade -y  # Для Debian/Ubuntu
    

    Для CentOS/RHEL: sudo yum update -y.

  2. Установите зависимости:

    • Для Docker: sudo apt install docker.io docker-compose -y (Debian/Ubuntu).
    • Для ручной установки: sudo apt install python3 python3-pip python3-venv git -y.
  3. Проверьте доступность портов: ArchiveBox использует порт 8000 для веб-интерфейса по умолчанию. Убедитесь, что он свободен (если развертываете локально, это не критично).

  4. Создайте пользователя для ArchiveBox (опционально, но рекомендуется для безопасности):

    sudo adduser archivebox --disabled-password --gecos ""
    sudo usermod -aG sudo archivebox
    sudo su - archivebox
    

Варианты установки

ArchiveBox предлагает два основных способа: Docker (рекомендуемый) и ручная установка на сервер. Docker проще, изолирован и обновляется легче. Ручная установка подходит для продвинутых пользователей, желающих интегрировать систему с существующим окружением.

Развертывание с помощью Docker (рекомендуемый способ)

Шаг 1: Установите Docker и Docker Compose

Если Docker еще не установлен:

# Для Debian/Ubuntu
sudo apt update
sudo apt install docker.io docker-compose -y
sudo systemctl start docker
sudo systemctl enable docker
# Добавьте текущего пользователя в группу docker (чтобы не использовать sudo)
sudo usermod -aG docker $USER
# Перелогиньтесь
exit

Проверьте: docker --version и docker-compose --version.

Шаг 2: Создайте директорию для ArchiveBox

mkdir -p ~/archivebox && cd ~/archivebox

Шаг 3: Создайте файл docker-compose.yml

Создайте файл docker-compose.yml с содержимым:

version: '3.8'
services:
  archivebox:
    image: archivebox/archivebox:latest
    container_name: archivebox
    ports:
      - "8000:8000"
    volumes:
      - ./data:/data
    environment:
      - ALLOWED_HOSTS=*
      - SECRET_KEY=your_secret_key_here  # Замените на случайную строку (min 32 символов)
    restart: unless-stopped
    # Опционально: добавьте ограничения ресурсов
    deploy:
      resources:
        limits:
          memory: 2G
  • ./data:/data: монтирует папку data на хосте в контейнер для сохранения архивов.
  • SECRET_KEY: сгенерируйте с помощью openssl rand -hex 32 и вставьте.
  • ALLOWED_HOSTS=*: разрешает доступ с любых хостов (для продакшена ограничьте конкретными IP).

Шаг 4: Запустите контейнер

docker-compose up -d

Проверьте статус: docker ps. Если все ок, контейнер будет работать в фоне.

Шаг 5: Первичная инициализация

Войдите в контейнер для инициализации:

docker exec -it archivebox bash
archivebox init

Выход: exit.

Шаг 6: Получите токен администратора

Сгенерируйте токен для веб-интерфейса:

docker exec -it archivebox archivebox manage createsuperuser

Следуйте инструкциям (логин, пароль). Токен можно также получить через archivebox token после входа.

Шаг 7: Проверка доступа

Откройте в браузере: http://localhost:8000 (или IP сервера). Войдите с созданным токеном или логином/паролем.

Ручная установка на сервер (Linux)

Шаг 1: Установите Python и зависимости

sudo apt update && sudo apt install python3 python3-pip python3-venv git -y

Шаг 2: Создайте виртуальное окружение

python3 -m venv ~/archivebox/venv
source ~/archivebox/venv/bin/activate

Шаг 3: Установите ArchiveBox

pip install archivebox

Проверьте: archivebox --version.

Шаг 4: Создайте директорию и инициализируйте

mkdir -p ~/archivebox/data
cd ~/archivebox/data
archivebox init

Шаг 5: Настройте переменные окружения

Добавьте в ~/.bashrc:

export SECRET_KEY=$(openssl rand -hex 32)
export ALLOWED_HOSTS=*

Примените: source ~/.bashrc.

Шаг 6: Запуск веб-сервера

archivebox server --port 8000

Для фонового запуска используйте screen или systemd (пример службы systemd ниже).

Шаг 7: Создайте суперпользователя

В отдельном терминале:

archivebox manage createsuperuser

Следуйте инструкциям для создания логина/пароля.

Базовая конфигурация и запуск

Конфигурация ArchiveBox

Конфигурационный файл находится в ~/.config/archivebox.conf или ./data/ArchiveBox.conf. Пример настроек:

SECRET_KEY=your_secret_key_here
OUTPUT_DIR=./data
TIMEZONE=Europe/Moscow
USE_COLORS=True

Для Docker: измените через переменные окружения в docker-compose.yml.

Запуск сервисов

  • Docker: docker-compose up -d (уже запущен).
  • Ручная установка:
    • Локально: archivebox server --port 8000.
    • Как служба (systemd): создайте файл /etc/systemd/system/archivebox.service:
      [Unit]
      Description=ArchiveBox Server
      After=network.target
      
      [Service]
      User=archivebox
      WorkingDirectory=/home/archivebox/archivebox/data
      ExecStart=/home/archivebox/archivebox/venv/bin/archivebox server --port 8000
      Restart=always
      
      [Install]
      WantedBy=multi-user.target
      
      Запустите: sudo systemctl enable --now archivebox.

Использование: добавление ссылок

Через командную строку

  1. Войдите в контейнер или активируйте venv.
  2. Добавьте ссылки:
    archivebox add "https://example.com"
    archivebox add --depth=1 "https://example.com"  # с дочерними ссылками
    
    Поддерживаемые форматы: просто URL, JSON (экспорты), текстовые файлы со ссылками.

Через веб-интерфейс

  1. Откройте http://localhost:8000.
  2. Нажмите "Добавить" (Add) в меню.
  3. Вставьте ссылки или загрузите файл (например, .html экспорта из браузера).

Импорт из внешних источников

  • Pocket: Экспортируйте закладки из Pocket в формате HTML или JSON, затем добавьте через archivebox add --import-file=export.json.
  • Браузерные экспорты: Chrome/Edge экспортируют в .html; Firefox — в .json. Используйте archivebox add --import-file=export.html.

Интеграция с браузером (расширения, экспорты)

Расширения для браузера

  • Chrome/Edge: Установите расширение "SingleFile" или "ArchiveBox Extension" (если доступно) или используйте "Save to ArchiveBox" (доступно в Chrome Web Store, настройте URL сервера).
  • Firefox: Аналогичные расширения, например, "MarkDownload" для экспорта в Markdown, затем добавляйте в ArchiveBox.
  • Настройка: В настройках расширения укажите ваш URL: http://server_ip:8000/add (API ArchiveBox).

Ручные экспорты

  1. В Chrome: Настройки → Экспорт → Закладки → Сохраните как HTML.
  2. В Firefox: История → Показать все историю → Экспорт → JSON.
  3. Загрузите файл на сервер и выполните archivebox add --import-file=export.html.

Дополнительные возможности (поиск, метаданные, обновление)

Поиск и метаданные

  • Поиск через CLI: archivebox list --search="ключевое слово".
  • Веб-интерфейс: Вкладка "Search" — полнотекстовый поиск по архивам, включая извлеченный текст и метаданные (дата, автор, теги).
  • Метаданные: Каждая запись содержит JSON с информацией: URL, дата архивации, размер, хеш. Доступ через archivebox info <ID>.

Обновление архивов

Периодически обновляйте архивы, чтобы отразить изменения:

archivebox update --all

Для Docker: docker exec archivebox archivebox update --all. Настройте cron для автоматизации:

# Добавьте в crontab (crontab -e)
0 2 * * * docker exec archivebox archivebox update --all  # Ежедневно в 2:00

Управление (капс, поиск, статистика)

Капс (ограничение ресурсов)

Используйте --size или настройки Docker:

archivebox add --size=50M https://example.com  # Ограничение размера архива

В Docker: добавьте mem_limit: 1G в docker-compose.yml под секцией deploy.

Поиск

  • CLI: archivebox list --search="python" --format=json.
  • Веб: Используйте поиск в интерфейсе, поддерживает регулярные выражения.

Статистика

archivebox stats

Выведет: количество записей, общий размер, даты архивирования. В веб-интерфейсе — дашборд с графиками.

Бекап и безопасность

Бекап

  • Файловый: Архивируйте папку data (Docker) или ~/archivebox/data (ручная установка):
    tar -czf archivebox_backup_$(date +%Y%m%d).tar.gz ~/archivebox/data
    
  • Регулярно: Настройте cron для еженедельного бекапа.
  • Cloud: Используйте rclone для синхронизации с S3/Google Drive.

Безопасность

  • HTTPS: Для доступа извне настройте Nginx с Let's Encrypt:
    sudo apt install nginx certbot python3-certbot-nginx -y
    sudo certbot --nginx -d yourdomain.com
    
    Настройте прокси на порт 8000.
  • Аутентификация: Используйте сильные пароли, токены. Отключите ALLOWED_HOSTS=* в продакшене.
  • Файрвол: sudo ufw allow 8000/tcp (и 80/443 для HTTPS).
  • Данные: Храните архивы на зашифрованном диске (LUKS). Регулярно обновляйте ArchiveBox и систему.

Альтернативные решения

Сuder

  • Описание: Легковесный архиватор, фокус на PDF и скриншоты. Простой CLI, без веб-интерфейса.
  • Когда использовать: Для минимальных требований без потребности в поиске или групповом управлении.
  • Установка: pip install suder. Пример: suder --url https://example.com --output ./.

Kottle

  • Описание: Инструмент для архивации из браузера с поддержкой расширений, интегрируется с Pocket и Notion.
  • Когда использовать: Если нужна тесная интеграция с браузером и другими сервисами.
  • Установка: Доступен как расширение для Chrome/Firefox или CLI. Установка: pip install kottle, затем kottle init.

Сравнение: ArchiveBox — самый полный для самостоятельного сервера; Suder — для простых задач; Kottle — для интеграции с браузером.

Частые проблемы и их решения

Проблема: Ошибка подключения к базе данных

Причина: Неправильный путь к хранилищу или отсутствие прав. Решение:

  • Docker: Проверьте монтирование volumes (docker logs archivebox).
  • Ручная установка: Убедитесь, что OUTPUT_DIR указан правильно, и права на папку: chmod -R 755 ~/archivebox/data.

Проблема: Сайты не архивируются (ошибки загрузки)

Причина: Блокировка ботами, отсутствие зависимостей. Решение: Установите playwright для JS-сайтов:

pip install playwright
playwright install chromium

В Docker: добавьте в docker-compose.yml image: archivebox/archivebox:latest и пересоберите.

Проблема: Медленная работа при большом объеме

Причина: Недостаток ресурсов или неоптимизированная база. Решение: Увеличьте RAM/CPU. Для Docker: docker-compose down && docker-compose up -d --scale archivebox=1 (если нужно). Очистите кэш: archivebox cleanup.

Проблема: Доступ к веб-интерфейсу только с localhost

Причина: Ограничение хостов. Решение: Измените ALLOWED_HOSTS на конкретный IP или домен. Для Docker: перестройте с новыми переменными.

Проблема: Обновление ArchiveBox

Решение (Docker): docker-compose pull && docker-compose up -d. (Ручная): pip install --upgrade archivebox.

Заключение и призыв к действию

ArchiveBox — надежное решение для самопроведенной архивации веб-контента, обеспечивающее полный контроль и гибкость. Начните с Docker для быстрого старта: разверните сервер, добавьте первые ссылки и интегрируйте с браузером. Регулярно делайте бекапы и настраивайте безопасность. Если вы исследователь, журналист или просто цените информацию — собственный сервер архивации станет неотъемлемым инструментом. Попробуйте развернуть ArchiveBox уже сегодня и защитите свои данные от непредсказуемого интернета! Для получения дополнительной помощи посетите официальный репозиторий на GitHub (archivebox/archivebox).

Поделиться:TelegramX / TwitterVK