投稿日:

Dockerでwallabag構築

はじめに

Dockerでwallabagを構築した際の作業メモ

wallabagはWebページをオフラインでも読めるように保存しておく,いわゆる「後で読む」サービスをセルフホストできるソフトウェア.
動機としては「後で読む」ことよりも,他ブラウザ・PC間で共有できるオンラインブックマーク的なものが欲しくて構築した.

wallabag画面

Unread(未読)の他,アーカイブやタグ機能を使って保存したWebページの分類分けができる.

手順

docker関連ファイル準備

wallabag公式ページ

マニュアル

GitHub- wallabag/wallabag

GitHub- wallabag/docker

DockerHub

docker-compose

github(wallabag/docker)のサンプルを参考にして以下のように作成した.

dokcer-compose.yml
version: '3'
services:
  wallabag:
    image: wallabag/wallabag
    container_name: "wallabag"
    environment:
      - MYSQL_ROOT_PASSWORD=wallaroot
      - SYMFONY__ENV__DATABASE_DRIVER=pdo_mysql
      - SYMFONY__ENV__DATABASE_HOST=db
      - SYMFONY__ENV__DATABASE_PORT=3306
      - SYMFONY__ENV__DATABASE_NAME=wallabag
      - SYMFONY__ENV__DATABASE_USER=wallabag
      - SYMFONY__ENV__DATABASE_PASSWORD=wallapass
      - SYMFONY__ENV__DATABASE_CHARSET=utf8mb4
      - SYMFONY__ENV__MAILER_HOST=127.0.0.1
      - SYMFONY__ENV__MAILER_USER=~
      - SYMFONY__ENV__MAILER_PASSWORD=~
      - [email protected]
      - SYMFONY__ENV__DOMAIN_NAME={your domain (ex)https://test.com}
      - SYMFONY__ENV__SERVER_NAME="{your server name}"
    ports:
      - "80:80"
    volumes:
      - ./images:/var/www/wallabag/web/assets/images
    depends_on:
      - db
      - redis
  db:
    image: mariadb
    container_name: "wallabag-db"
    environment:
      - MYSQL_ROOT_PASSWORD=wallaroot
    volumes:
      - ./data:/var/lib/mysql
  redis:
    image: redis:alpine
    container_name: "wallabag-redis"

githubのサンプルでは各サービスに以下のようなヘルスチェックの設定があったが、個人用でそこまでは不要かなと思ったので除外

    healthcheck:
      test: ["CMD", "wget" ,"--no-verbose", "--tries=1", "--spider", "http://localhost"]
      interval: 1m
      timeout: 3s

ディレクトリ構成

立ち上げ前のディレクトリ構成は以下となる.

/wallabag
|--docker-compose.yml

各コンテナのデータはdocker-composeファイルと同じディレクトリに格納するようマウント先を指定したため,最終的なディレクトリ構造は以下のようになる.

/wallabag
|--docker-compose.yml
|--data
|  |--[MariaDBデータ]
|--images
|  |--[Wallabagデータ]

バックアップ/リカバリする場合はこのディレクトリごとコピーすれば良いはず.

立ち上げ

docker-compose.ymlを配置したディレクトリにて以下コマンドでコンテナを立ち上げる.

$ docker-compose up -d

https://test.com にアクセスしてwallabagのログイン画面が表示されることを確認する.

ログイン画面

wallabag/wallabagでログインできる.

初期画面

手順ここまで.ありがとうございました.

参考

「後で読む」サービスのwallabagを自分で建てよう - Qiita