【ArchiveBox】リバースプロキシ + Dockerを使ったインストールと初期設定

2024-03-06

Archiveboxの概要は以下の記事を参照してください。

前提条件

ストレージ容量を消費するため自宅サーバーで稼働(Docker Engineはインストール済み)。

VPSのYunohostでリバースプロキシ(SSL終端)

Archiveboxをインストールするサブドメイン、SSL証明書はYunoHostで設定を済ませておきます。

導入手順

docker-compose.ymlの作成

Githubから。Archiveboxと全文検索用のsonicを有効化します。

version: '3'
services:
  archivebox:
    image: 'archivebox/archivebox:latest'
    container_name: archivebox
    command: server --quick-init 0.0.0.0:8000
    ports:
      - 8098:8000
    environment:
      # add any ArchiveBox config options you want here
      - ALLOWED_HOSTS=*
      - PUBLIC_INDEX=False
      - PUBLIC_SNAPSHOTS=False
      - PUBLIC_ADD_VIEW=False
      - SEARCH_BACKEND_ENGINE=sonic
      - SEARCH_BACKEND_HOST_NAME=sonic
      - SEARCH_BACKEND_PASSWORD=SomeSecretPassword
      - MEDIA_MAX_SIZE=750m
      - SUBMIT_ARCHIVE_DOT_ORG=False
    volumes:
      - ./data:/data
    restart: always
  sonic:
    image: valeriansaliou/sonic:latest
    expose:
      - 1491
    environment:
      - SEARCH_BACKEND_PASSWORD=SomeSecretPassword
    volumes:
      - ./sonic.cfg:/etc/sonic.cfg:ro
      - ./data/sonic:/var/lib/sonic/store
    restart: always

sonicの準備の後、コンテナを起動

curl -O https://raw.githubusercontent.com/ArchiveBox/ArchiveBox/master/etc/sonic.cfg
sudo docker compose up -d

nginxの設定ファイル(YunoHost)

#sub_path_only rewrite ^/$ / permanent;
location / {

  proxy_pass        自宅サーバーのIPアドレス:ポート番号;
  proxy_redirect    off;
  proxy_set_header  Host $host;
  proxy_set_header  X-Real-IP $remote_addr;
  proxy_set_header  X-Forwarded-Proto $scheme;
  proxy_set_header  X-Forwarded-For $proxy_add_x_forwarded_for;
  proxy_set_header  X-Forwarded-Host $server_name;
  proxy_set_header  X-Forwarded-Port $server_port;

  proxy_http_version 1.1;
  proxy_set_header Upgrade $http_upgrade;
  proxy_set_header Connection "upgrade";

  # Include SSOWAT user panel.
  include conf.d/yunohost_panel.conf.inc;
  more_clear_input_headers 'Accept-Encoding';
}

動作確認

ブラウザからArchiveboxのインストールドメインにアクセスして動作確認します。

イニシャルセットアップ

Archiveboxをインストールしているサーバーでイニシャルセットアップ(データフォルダ、ユーザーの作成)を実行します。

sudo docker compose run archivebox init --setup

アカウントの作成後、必要に応じて閲覧権限を設定して下さい。

Archiveも問題なくできました。