Independent testing Updated August 2026 387 self-hosting guides 5 VPS providers tested

guide

VPSでPlaneをセルフホストする方法(完全ガイド)

オープンソースのJira代替であるPlaneを、公式インストーラーでVPSに導入する手順。実際のサイジング、13コンテナ構成、DNS、バックアップ、アップグレードまで解説します。

Planeは、課題、サイクル、モジュール、ページを扱うオープンソースのプロジェクト管理ツールで、JiraやLinearと同じ領域にあります。同時に、小さなVPSに載せるアプリとしてはかなり重い部類です。Community Editionは13個のコンテナからなるスタックを持ち込むため、このガイドの要点はdocker compose upと打つことではなく、サーバーを正しくサイジングすることにあります。

Planeをセルフホストする理由

クラウド版はユーザー数に応じて課金されます。セルフホストすればその費用がなくなり、課題の履歴、添付ファイル、プロジェクトデータを自分の管理下のインフラに置けます。課題管理ツールが顧客名、セキュリティ上の指摘、未公開のロードマップを抱えているなら、これは重要な点です。Community EditionはAGPL-3.0ライセンスなので、商用のチームでもライセンス料なしで運用できます。

引き換えは現実的です。アップグレード、バックアップ、Postgresの面倒を自分で見ることになります。チームの誰もその役目を引き受けたくないのであれば、正直な答えはクラウド版です。

前提条件

Planeのドキュメントは要件を明快に書いています。

この4GBという下限は水増しではありません。スタックはweb、admin、space、api、worker、beat-worker、migrator、live、プロキシに加えてpostgres:15.7-alpine、valkey/valkey:7.2.11-alpine、rabbitmq:3.13.6-management-alpine、minio/minioを動かします。13個のコンテナは、ユーザーが1人もログインしないアイドル状態でも4GBの大半を消費します。

サーバーをこれから選ぶなら、Contabo、Hetzner Cloud、DigitalOceanのいずれにも基準を満たすプランがあります。下のサイジング表と、より広い選択肢についてはVPS比較の全体版をご覧ください。

手順1:4GBを超えるプランを選ぶ

Planeの導入がつまずくのはたいていここです。ほぼすべてのプロバイダーで最安のプランはRAM 1GBであり、これはPlaneが定める最小要件の4分の1です。

プランvCPU / RAM / ディスク価格Planeでの評価
Contabo Cloud VPS 44 / 8GB / 100GB SSD5.50 EUR/月(税別)推奨の8GBを満たす
Hetzner CX334 / 8GB / 80GB NVMe8.49 EUR/月(税別)推奨の8GBを満たす
Hetzner CX232 / 4GB / 40GB NVMe5.49 EUR/月(税別)ちょうど最小要件。少人数チームなら十分
DigitalOceanのエントリー1 / 1GB / 25GB6 USD/月小さすぎる。Planeは動かない

Ubuntu 24.04 LTSを入れたら、root以外のユーザーを作成してファイアウォールを有効にします。

sudo apt update && sudo apt upgrade -y
sudo adduser plane
sudo usermod -aG sudo plane
sudo ufw allow OpenSSH && sudo ufw allow 80 && sudo ufw allow 443
sudo ufw enable

手順2:Dockerをインストールする

PlaneにはCompose v2が必要です。サポートが終了したv1のスクリプトではなくdocker-compose-pluginを入れるため、Docker公式のリポジトリからインストールします。

sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
sudo usermod -aG docker $USER

いったんログアウトして入り直し、v2であることを確認します。

docker compose version

手順3:先にDNSをサーバーへ向ける

これはインストーラーを走らせる前に済ませてください。インストーラーはセットアップ中にドメインを尋ね、その値をWEB_URLとCORS_ALLOWED_ORIGINSに書き込みます。DNSがまだ解決しない状態では証明書の発行に失敗し、後から環境設定ファイルを手で直すことになります。

plane.example.comのAレコードをVPSのIPアドレスに向け、解決されるまで待ちます。

dig +short plane.example.com

手順4:公式インストーラーを実行する

Planeは、ビルド済みイメージを取得して管理用のdocker-compose.yamlを書き出す単一のインストールスクリプトを配布しています。

curl -fsSL https://prime.plane.so/install/ | sh -

スクリプトはドメインを尋ねた後、Express(既定値のまま)とAdvanced(変数を個別に設定)を提示します。初回は Express が適切です。完了するとPlaneは80番と443番ポートで公開され、これらはLISTEN_HTTP_PORTとLISTEN_HTTPS_PORTで制御されます。

リポジトリについて1点。GitHubにあるdocker-compose.ymlはイメージを取得せず、各サービスをソースからビルドします。これは開発者向けの手順で、ビルドにはアプリを動かすよりはるかに多くのRAMが必要になり、4GBのVPSでは失敗するか極端に遅くなります。インストーラーを使ってください。

https://plane.example.comを開いて最初のアカウントを作成します。このアカウントがインスタンスの管理者になります。管理画面は/god-mode/にあり、SMTP、サインアップ制限、認証方式をそこで設定します。

手順5:本当に大事な部分をバックアップする

データを保持しているのは2つです。PostgreSQLのボリュームと、すべての添付ファイルを保存するMinIOのボリュームです。VPSのスナップショットは両方をカバーしますが、選んで復元できるデータベースのダンプも持っておく価値があります。

docker exec plane-db pg_dump -U plane plane | gzip > plane-$(date +%F).sql.gz

ダンプはサーバーの外へコピーしてください。バックアップ対象のディスクの上に置いたバックアップは、バックアップではありません。

Planeのセルフホスト向けVPS比較

プロバイダー4GBを満たす最小プラン月額補足リンク
ContaboCloud VPS 4 - 4 vCPU、8GB、100GB SSD5.50 EUR(税別)推奨の8GBへの最安ルートContabo
Hetzner CloudCX23 - 2 vCPU、4GB、40GB NVMe5.49 EUR(税別)最小要件を満たす。8GBならCX33が8.49 EURHetzner
DigitalOcean2 vCPU、4GB、80GB SSD24 USD割高だが、ドキュメントとスナップショットはここが最良DigitalOcean
Vultr2 vCPU、4GB、80GB SSD20 USD3社で最安。リージョンの選択肢が広いVultr
Linode(Akamai)2 vCPU、4GB、80GB SSD24 USD性能が安定し、APIが強力Linode

傾向は明らかです。米国のプロバイダーは4GB帯に20〜24 USDを課しており、これは欧州の同等品のおよそ3〜4倍です。1つの地域の1つのオフィスで使う課題管理ツールに、この差額を正当化するのは困難でしょう。

選択肢の全体像はVPS比較の完全版をご覧ください。

チームがつまずきやすい点

ドキュメントではなく製品ページを見てサイジングする。 Planeは見た目こそWebアプリですが、振る舞いは小さなプラットフォームです。4GBは目標ではなく下限です。

SMTPを飛ばす。 /god-mode/でメールを設定しないと招待が届かず、ワークスペースに誰も追加できません。チームを迎える前に設定してください。

バックアップでMinIOを忘れる。 Postgresだけをダンプすると、課題とコメントは全部あるのに添付が全部ないという状態になります。

チームがすでに課題管理ツールの中で仕事をしていて、それにユーザー単位の料金を払いたくないなら、Planeは手間をかける価値があります。サーバーをきちんとサイジングし、バックアップを別の場所に置けば、あとは静かに動き続けるサービスです。

他のセルフホスト向けプロジェクトやヒントは、awesome-selfhostedのリストやr/selfhostedコミュニティをご覧ください。

Frequently asked questions

RAM 1GBや2GBのVPSでPlaneをセルフホストできますか?

できません。Plane自身のドキュメントが下限をCPU2コアとRAM 4GBと定めており、Community EditionのcomposeスタックはPostgreSQL、Valkey、RabbitMQ、MinIOを含む13個のコンテナを起動します。2GBのサーバーではインストーラーは動きますが、実運用に入るとコンテナがOOMで停止させられます。実際に動く最小値は4GB、ドキュメントが本番向けに推奨するのは8GBです。

Planeを新しいバージョンへアップグレードするには?

インストーラーがサーバーに配置した管理スクリプトを再実行してアップグレードを選ぶか、インストール先のディレクトリでdocker compose pullを実行してからdocker compose up -dを実行します。migratorコンテナが起動時にデータベースのマイグレーションを適用するため、事前にPostgreSQLのダンプを取り、VPSのスナップショットも作成してください。メジャーバージョンでは環境変数が変わることがあるので、まずリリースノートに目を通してください。

Planeの運用にドメイン名は必要ですか?

実質的には必要です。インストーラーはセットアップ中にドメインを尋ね、その値をWEB_URLとCORS_ALLOWED_ORIGINSに書き込みます。フロントエンドとAPIはこの値を使って通信します。ローカルでの試用ならIPアドレスだけでも動きますが、アドレスを変えた時点でCORSが壊れますし、ドメインがなければLet's Encryptの証明書も発行できません。