ArchiveBox — это решение для самостоятельного архивирования в интернете, позволяющее сохранять и просматривать сайты в автономном режиме. В этом руководстве объясняется, как самостоятельно разместить ArchiveBox в Docker VPS и опубликовать его с помощью обратного прокси-сервера Caddy.
Настройте ArchiveBox
Войдите в свой Docker VPS по SSH.
Переключитесь на пользователя docker.
su - docker
Создайте новый пустой каталог для ArchiveBox и его данных.
mkdir ~/archivebox && cd ~/archivebox
Загрузите официальный файл Docker Compose для ArchiveBox.
curl -O 'https://raw.githubusercontent.com/ArchiveBox/ArchiveBox/master/docker-compose.yml'
(Необязательно) Вы можете настроить политику перезапуска для ArchiveBox. Например, чтобы всегда автоматически перезапускаться, отредактируйте docker-compose.yml
и установите restart: always
, как показано здесь.
services:
archivebox:
image: ${DOCKER_IMAGE:-archivebox/archivebox:latest}
command: server --quick-init 0.0.0.0:8000
ports:
- 8000:8000
restart: always
environment:
- ALLOWED_HOSTS=*
- MEDIA_MAX_SIZE=750m
volumes:
- ./data:/data.
Запустите начальную настройку.
docker-compose run archivebox init --setup
Введите имя пользователя, адрес электронной почты и пароль для пользователя с правами администратора веб-интерфейса.
Запустим сервер
docker-compose up -d
Можно проверить работу archivebox по адресу: http://IP вашего сервера:8000

Если archivebox не запустился, настройте брандмауэр. На этом можно было бы закончить, но мы хотим, чтобы archivebox открывался не по IP адресу, а по доменному имени, для этого подключим DNS и настроим обратный прокси сервер.
Вернитесь в учётную запись пользователя root. Все последующие действия должны выполняться от имени пользователя root.
exit
Установите правила брандмауэра UFW
Если на сервере включен брандмауэр UFW, который разрешает трафик SSH на порту 22. Чтобы разрешить доступ к веб-серверу, включите HTTP на порту 80 и HTTPS на порту 443.
# ufw allow 80
# ufw allow 443
Включите брандмауэр и проверьте состояние.
# ufw enable
# ufw status
Добавьте сервер в DNS
Caddy обрабатывает сертификаты SSL/TLS и перенаправляет веб-трафик на ArchiveBox. Чтобы автоматические сертификаты Caddy работали, вы должны иметь возможность определять свой сервер по имени.
Направьте запись DNS A вашего сервера на IP-адрес вашего сервера Docker VPS.
Убедитесь, что записи DNS верны. Замените указанное ниже имя на DNS-имя вашего сервера.
# dig archivebox.example.com
Убедитесь, что у вас есть раздел «Ответ» и что IP-адрес соответствует DNS-имени вашего сервера.
;; ANSWER SECTION:
archivebox.example.com. 3600 IN A 192.0.2.123
Настройте обратный прокси-сервер Caddy
Установите Caddy.
# apt install -y debian-keyring debian-archive-keyring apt-transport-https
# curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/gpg.key' | sudo apt-key add -
# curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/debian.deb.txt' | sudo tee -a /etc/apt/sources.list.d/caddy-stable.list
# apt update
# apt install caddy
Отредактируйте файл конфигурации Caddy.
# nano /etc/caddy/Caddyfile
Замените содержимое на строки ниже и укажите доменное имя вашего сервера.
archivebox.example.com
reverse_proxy localhost:8000
Перезагрузите конфигурацию.
# caddy reload --config /etc/caddy/Caddyfile
Перейдите на свой новый сайт по названию, чтобы убедиться, что он работает. Например:
https://archivebox.example.com