BookStackを導入したいと思っても、社内に検証用のサーバーを用意するまでが一番の壁という話をよく聞きます。稟議を通して仮想マシンを1台もらうまでに数週間、ということも珍しくありません。
そこで選択肢になるのがVPSです。月額数百円から借りられるうえ、不要になれば削除するだけで済みます。この記事では、BookStackをVPS 1台で動かす場合の必要スペックの見積もり方と、VPSを選ぶときの確認ポイント、公開サーバーで運用する際の注意点をまとめます。
なお、これまでの当ブログのBookStack記事は社内のAlmaLinuxサーバーを前提にしていました。インストール手順そのものはVPSでも変わらないため、手順部分は既存記事へのリンクで済ませています。
この記事のVPS部分は、構成の検討と公式ドキュメントの要件確認に基づくものです。特定のVPS事業者での実機検証は行っていません。 契約前に各社の最新の仕様を確認してください。

1. なぜVPSという選択肢が出てくるのか
BookStackは社内のナレッジ管理ツールとして使うものなので、本来は社内サーバーに置くのが筋です。それでもVPSが選択肢になるのは、次のような場面です。
- まず自分で触って評価したい。 稟議を出す前に、実際の画面を見て判断したい
- 社内にLinuxサーバーを立てる文化がない。 仮想基盤はあるが、申請と承認に時間がかかる
- 少人数のチームで使いたい。 数人で使うために社内リソースを確保するほどではない
- 社外の人と共有したい。 協力会社やフリーランスとドキュメントを共有する必要がある
特に1つ目は現実的です。BookStackは画面を見れば良さが伝わるツールなので、動くものを見せてから稟議を書くほうが圧倒的に速いという判断はあり得ます。
逆に、最初から社内の本番運用が決まっているなら、素直に社内サーバーに立ててください。VPSに置いた社内文書を後から移設するのは手間ですし、情報の置き場所としても筋が悪くなります。
2. BookStackを動かすのに必要なスペック
BookStackはPHPアプリケーションで、データベースにMySQLまたはMariaDBを使います。構成としてはよくあるLAMP環境です。
公式ドキュメントで示されている要件は、おおよそ次の通りです。詳細はBookStack公式ドキュメントで確認してください。
| 項目 | 要件の目安 |
|---|---|
| CPU | 1コアでも動作する |
| メモリ | 1GBが最低ライン。2GB以上を推奨 |
| ストレージ | OS込みで20GB程度から。画像を多用するなら余裕を見る |
| PHP | 8.1以降 |
| データベース | MySQL 8.0以降 / MariaDB 10.6以降 |
実務的な感覚では、メモリ1GBのプランは避けたほうが無難です。BookStackそのものは軽いのですが、同じサーバーにMySQLが同居するため、1GBだと余裕がありません。PDFエクスポート機能を使うとヘッドレスブラウザが動くので、そこでメモリを食います。
ストレージについては、テキストだけなら数GBで足りますが、BookStackは画像をそのまま貼り付けられるのが利点です。その使い方をするなら画像が積み上がるので、後から増やせるかどうかも見ておきます。
3. VPSを選ぶときの5つの確認ポイント
国内で使えるVPSはConoHa VPS、さくらのVPS、Xserver VPSなど複数あります。BookStackを動かす前提では、次の5点を見れば判断できます。
3.1 メモリのプラン構成
前述の通り2GB以上が目安です。1GBプランと2GBプランで月額がどれくらい違うかを見て、2GBを選べる範囲かを確認します。
3.2 対応OS
当ブログのBookStack記事はAlmaLinux 9系を前提にしています。同じ手順をそのまま使いたいなら、AlmaLinuxのテンプレートがあるVPSを選ぶのが確実です。
多くのVPSはAlmaLinux、Rocky Linux、Ubuntuあたりを用意していますが、バージョンが古いままのことがあるので、選べるバージョンまで確認してください。
3.3 スナップショット・バックアップ機能
これが実は一番重要です。BookStackは設定を変えながら育てていくツールなので、壊す前の状態に戻せるかで作業のしやすさが変わります。
有料オプションのことが多いので、料金と保存世代数を確認しておきます。
3.4 転送量の上限
社内ナレッジ用途であれば転送量が問題になることはまずありませんが、無制限か上限ありかは確認しておきます。
3.5 最低利用期間と解約条件
評価目的で借りるなら、ここは必ず見ます。月額課金なのか、時間課金なのか。長期割引の契約をしてしまうと、評価が終わっても解約できません。
まず試すだけなら、時間課金または月単位で解約できるプランを選んでください。
4. 構築の流れ
VPSを契約したあとの手順は、社内サーバーの場合とほとんど変わりません。当ブログの既存記事がそのまま使えます。
- VPSを契約してAlmaLinux 9系を選択する
- BookStackをインストールする → BookStackをAlmaLinux 9.4にインストールする手順
- 日本語化と基本設定を行う → BookStackの初期セットアップ①
- 検索の挙動を直す → BookStackで検索が正しく動作しない問題への対応
- PDFエクスポートの文字化けに対処する → PDFエクスポートで日本語が文字化けする場合の対処方法
なお、LDAP認証(AD連携)についてはVPS環境では通常設定できません。ADサーバーは社内にあるため、VPSからは到達できないからです。VPSで運用する場合は、BookStack標準のメールアドレス+パスワード認証を使うことになります。
契約直後に最低限やっておくことは次の通りです。
# パッケージを最新化する
sudo dnf update -y
# タイムゾーンを日本時間に設定する(ログの時刻を読みやすくするため)
sudo timedatectl set-timezone Asia/Tokyo
# 作業用ユーザーを作成し、sudo権限を与える
sudo useradd -m opsuser
sudo usermod -aG wheel opsuser
# SSHの公開鍵を配置してから、パスワード認証を無効化する
# ※ 鍵を置く前に無効化するとログインできなくなるので順序に注意
sudo vi /etc/ssh/sshd_config
# PasswordAuthentication no
# PermitRootLogin no
sudo systemctl restart sshd
5. 公開サーバーで運用するときの注意点
ここが社内サーバーとの最大の違いです。VPSはインターネットに直接さらされているため、社内前提の手順のままでは危険です。
5.1 アクセス元を制限する
最も効果があるのはIP制限です。会社や自宅の固定IPからのみアクセスできるようにします。
# firewalldでHTTP/HTTPSを特定IPからのみ許可する例
# 203.0.113.10 の部分は自分のグローバルIPに置き換える
sudo firewall-cmd --permanent --new-zone=trusted-web
sudo firewall-cmd --permanent --zone=trusted-web --add-source=203.0.113.10/32
sudo firewall-cmd --permanent --zone=trusted-web --add-service=http
sudo firewall-cmd --permanent --zone=trusted-web --add-service=https
sudo firewall-cmd --reload
固定IPが無い環境なら、VPNを経由させるか、最低でもBasic認証を重ねることを検討してください。BookStackのログイン画面が誰でも見える状態は避けたいところです。
5.2 HTTPSを必須にする
ログイン情報が平文で流れるのを防ぐため、Let’s Encryptで証明書を取得してHTTPS化します。ドメインが必要になるので、VPS契約時に併せて用意しておくと手戻りがありません。
5.3 バックアップを自動化する
BookStackのバックアップ対象は、データベースと画像などのアップロードファイルの2つです。
# データベースのダンプを日付付きで取得する
mysqldump -u bookstack -p bookstack > /backup/bookstack_$(date +%Y%m%d).sql
# アップロードされたファイル類をまとめて保存する
tar czf /backup/uploads_$(date +%Y%m%d).tar.gz /var/www/bookstack/public/uploads
これをcronで日次実行し、VPS外へ退避させます。同じVPS内に置いただけではバックアップになりません。
5.4 業務情報の取り扱いを確認する
当然ですが、会社の情報を社外のVPSに置いてよいかは、事前に確認が必要です。評価目的でダミーデータだけを入れるのか、実データを入れるのかで話がまったく変わります。ここは技術の問題ではなく、社内規程の問題です。
6. まとめ
BookStackをVPSで動かす場合のポイントを整理します。
- メモリ2GB以上を選ぶ。1GBはMySQLとの同居で余裕がない
- AlmaLinux 9系が選べるVPSなら、既存の手順記事がそのまま使える
- スナップショット機能の有無で、試行錯誤のしやすさが変わる
- 評価目的なら短期で解約できるプランを選ぶ
- 公開サーバーなので、IP制限・HTTPS・バックアップは社内サーバー以上に必須
- AD連携はVPSからは使えないため、標準認証で運用する
社内サーバーの調達を待つ間に、まずVPSで動かして評価してしまう。この進め方は、導入を検討している段階では十分に合理的です。実際に画面を見せられれば、稟議の説得力もまったく変わります。
次回は、BookStackのバックアップとバージョンアップ手順について、もう少し踏み込んで解説します。

コメント