いわゆる 「あとで読む」 系のサービスとして個人的に長年使わせてもらっていた 「Pocket」 ですが、残念ながら 2025 年 7 月をもってサービス提供が終了することが発表されました。
外出先とかで、スマホでちょっと調べ物して、家帰ってからきちんと調べよう、みたいな場合に、「Pocket」 にとりあえず保存しておいて、家や職場の PC から開いたり、逆に PC 側からスマホに URL を渡したいときとかにも Firefox ならワンクリックで済むのでとても重宝していたんですが、まぁ終わっちまうということであれば仕方がない。代替サービスを探す必要があります。
つーか Obsidian Clipper でいけるか
Pocket からのインポートさえ何とかなれば......https://t.co/AzRQpabXFM— Yoshiki Kato (@burnworks) May 23, 2025
同様のサービスは他にもあって、例えば有名どころだと、Instapaper や Raindrop.io などが筆頭か。最近は、Obsidian が Obsidian Web Clipper という Web サイトを簡単に保存する機能をリリースしてたりもしますので、その辺も使えそう。
各サービス、それぞれ特徴があると思いますけども、記事の全文や一部を資料として保存しておきたい場合は 「Obsidian Web Clipper」 をすでに使っているので、それはそのまま運用し続けるとして、私が、Pocket でやっていたような、「一時的な URL の保存」 程度だとちょっと機能が大げさというか、もっと簡単に、シンプルにしたい。
じゃあ、もうそういうサービスを自前で立てちまうか、と思ったところで 「Wallabag」 が使いやすそうだったので、今回はこれをセルフホスティングすることにしました。
- wallabag/wallabag: wallabag is a self hostable application for saving web pages: Save and classify articles. Read them later. Freely.
- Wallabag - a self hostable application for saving web pages
Wallabag とは?
Wallabag は、オープンソースで開発されている 「あとで読む」 ツールです。公式サーバを利用することもできますし、自分のサーバ上にセルフホスティングして運用することもできるため、データの完全なコントロールとプライバシー保護が可能です。
iOS / Android 向けの公式アプリや PWA (Progressive Web Apps) にも対応し、タグ付けや全文検索、ハイライト機能を備えつつ、シンプルな UI とカスタマイズ性の高さが特徴で、今回の私の用途にはちょうどよい選択肢でした。
セルフホスティングしても iOS / Android 向けの公式アプリから自分のサーバにログインすることで問題なく使えますし、カスタマイズしたい人にとっては API を使用して独自のアプリケーションを開発することが容易なのもよい点と言えるでしょう。
さくらの VPS (Ubuntu 22.04 LTS) 上で Wallabag をセルフホスティングする
すでに複数の Web サイトを運用しているさくらの VPS 上にセルフホスティングします。なので、今回の記事では、OS や Web サーバなどのセットアップについては省略します。
前提条件
- OS: Ubuntu 22.04 LTS
- Web サーバ: nginx
- PHP: PHP 8.1.2
- DB: MySQL 8.0.42
データベースは、SQLite も利用可能ですが、私の環境では MySQL がすでに運用中だったのでそれを利用しました。その他、git や make はインストール済みという前提です。
必要なパッケージのインストール
まず、Wallabag の動作に必要な PHP Extensions (PHP 拡張モジュール) とツールをインストールします。
まず、私の環境では composer (PHP の依存関係管理ツール) だけが入っていなかったので以下でインストールします。
sudo apt install -y composer
問題なくインストールされたか確認。
composer --version
次に PHP 拡張モジュールをインストールします。
sudo apt install -y php-cli php-fpm php-mysql php-sqlite3 php-curl php-gd php-mbstring php-xml php-zip php-intl php-bcmath php-tidy
MySQL データベースの準備
MySQL の設定をしますが、すでに必要なユーザーの作成などは終わっている前提で、Wallabag で使用する DB (wallabag) のみ新規作成しておきます。
sudo mysql -u [username] -p
CREATE DATABASE wallabag CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
EXIT;
Wallabag のダウンロードとインストール
まずは今回 Wallabag をインストールするディレクトリに移動します。wallabag.example.com
というホスト名で運用する前提。
cd /var/www/wallabag.example.com
次に Wallabag を git clone
します。
sudo git clone https://github.com/wallabag/wallabag.git
所有者を変更しておきます。
sudo chown -R www-data:www-data wallabag
wallabag ディレクトリに移動してインストールを実行します。
cd wallabag
sudo -u www-data make install
インストールは、ウィザード形式で進みます。以下のような設問がくるので、ご自身の利用環境に合わせて設定していってください。
Some parameters are missing. Please provide them.
database_driver (pdo_mysql): pdo_mysql
database_host (127.0.0.1):
database_port (null): 3306
database_name (wallabag): wallabag
database_user (root): [your_db_username]
database_password (null): [your_password]
database_path (null):
database_table_prefix (wallabag_):
database_socket (null):
database_charset (utf8mb4):
domain_name ('https://your-wallabag-instance.wallabag.org'): https://wallabag.example.com
server_name ('Your wallabag instance'): Wallabag
mailer_dsn ('smtp://127.0.0.1'):
locale (en):
secret (CHANGE_ME_TO_SOMETHING_SECRET_AND_RANDOM): [your_secret]
twofactor_sender (no-reply@wallabag.org):
fosuser_registration (true): false
fosuser_confirmation (true): false
fos_oauth_server_access_token_lifetime (3600):
fos_oauth_server_refresh_token_lifetime (1209600):
from_email (no-reply@wallabag.org):
rss_limit (50):
rabbitmq_host (localhost):
rabbitmq_port (5672):
rabbitmq_user (guest):
rabbitmq_password (guest):
rabbitmq_prefetch_count (10):
redis_scheme (tcp):
redis_host (localhost):
redis_port (6379):
redis_path (null):
redis_password (null):
sentry_dsn (null):
secret (CHANGE_ME_TO_SOMETHING_SECRET_AND_RANDOM):
については、ランダムな文字列を生成して指定しましょう。
fosuser_registration (true): false
(ユーザー登録機能を無効に) としているのは、私の場合、個人で使用して管理ユーザー以外は不要だからですが、チームで使用する場合などは有効にしておきましょう。
続けて以下のような設問がきます。
It appears that your database already exists. Would you like to reset it? (yes/no) [no]:
> yes
初回インストールなので、DB の中身をリセットしてセットアップしてもらいます。yes
で進むと、DB の初期設定が行われます。
Dropping database, creating database and schema...
Clearing the cache...
Database successfully setup.
続けて管理ユーザーの作成を行います。yes
で進みましょう。
Would you like to create a new admin user (recommended)? (yes/no) [yes]:
> yes
以下のように設問がくるので、答えていくだけです。
Username [wallabag]:
> [username]
Password [wallabag]:
> [your_password]
Email [wallabag@wallabag.io]:
> [your_email_address]
Administration successfully setup.
これでインストールは完了です。簡単。
nginx のバーチャルホスト設定
最後に Wallabag 用のバーチャルホストを追加していきます。
まずは設定ファイルを作成します。
sudo vim /etc/nginx/sites-available/wallabag.example.com
設定ファイルの内容としては下記のような感じですが、私の環境では、fcgiwrap.conf
などがすでに設定済みだったので読み込むだけにしています。もし、PHP をはじめてインストールして設定する場合などはこの辺も適時設定してください。
server {
listen 80;
listen [::]:80;
server_name wallabag.example.com;
root /var/www/wallabag.example.com/wallabag/web;
index index.php;
location / {
try_files $uri /app.php$is_args$args;
}
location ~ ^/app\.php(/|$) {
fastcgi_pass unix:/run/php/php8.1-fpm.sock;
fastcgi_split_path_info ^(.+\.php)(/.*)$;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
fastcgi_param DOCUMENT_ROOT $realpath_root;
internal;
}
# 既存のfcgiwrap.confを読み込み
include /etc/nginx/fcgiwrap.conf;
}
設定ファイルを保存したら、シンボリックリンクを作成して設定を有効化します。
sudo ln -s /etc/nginx/sites-available/wallabag.example.com /etc/nginx/sites-enabled/
nginx を再起動します。
sudo nginx -t
sudo systemctl reload nginx
サーバ証明書の設定 (Let's Encrypt)
最後に Let's Encrypt を使用してサーバ証明書を設定すれば終わりです。certbot はインストールされている前提。
sudo certbot --nginx -d wallabag.example.com
問題なく完了したら、ドメインにアクセスしてみましょう。Wallabag のログイン画面が表示されれば成功です。
Wallabag にログイン
Wallabag のインストールと設定が正しく行われていれば、ログイン画面が表示されます。設定時に作成した管理ユーザーの情報でログインしましょう。
無事ログインするとクイックスタート画面が表示されます。
設定画面から、言語を 「日本語」 にすれば日本語化されます。その他、テーマを選択したりもできますのでお好みで。
Firefox のアドオン や Chrome のアドオン、iOS アプリや、Android アプリなどから利用するには、API 設定から 「Client ID」 と 「クライアントシークレット」 の発行が必要です。
クライアント API 設定画面から最初のアプリケーションを登録しましょう。
「クライアントの名前」 だけ入力して 「新しいクライアントを作成」 すると、次の画面で 「Client ID」 と 「クライアントシークレット」 が表示されますので、これを控えておきます。
ブラウザアドオンやスマートフォンアプリで Wallabag にログインする際、先ほど控えた 「Client ID」 と 「クライアントシークレット」 を入力し、ログインするとブラウザやアプリから簡単に URL を登録することが可能になります。
ということで、しばらくこれで運用してみようと思います。