セルフホスト型サービス
loomio/loomio avatar
loomio/loomio

Docker Compose で Loomio をデプロイする

Loomio は共同的な意思決定ツールです。 Loomio は、協力的な組織のための意思決定ツールです。

スター 2,598フォーク 704RubyAGPL-3.0

ひと目でわかる

これは何?
Loomio リポジトリのデプロイ README に基づく、Docker Compose を使った単一サーバーへのデプロイ手順。
誰に向いている?
デプロイ README は、素の Ubuntu サーバーから実行中の Loomio インスタンスまでの具体的な経路を示していますが、SMTP プロバイダーやオプション機能などの選択は運用者に委ねられています。リポジトリのメタデータはライセンスを AGPL-3.0 としていますが、README 自体はライセンスについて言及していません。
商用利用できる?
厳しい条件付きでできます。AGPL-3.0 はネットワーク型コピーレフトのライセンスで、改変版をホスティングサービスなどとしてネットワーク越しに利用させる場合、その利用者にソースコードを同じライセンスで提供する必要があります。
今もメンテナンスされている?
されています。最後のコミットは 1 日前です。
何の言語で書かれている?
主に Ruby です(GitHub の言語統計による)。

回答はプロジェクトの GitHub データ(最終同期:2026年9月14日)と当サイトの分析に基づくもので、法的助言ではありません。

オープンソース詳細解説

デプロイの範囲と前提条件

リポジトリの deploy/README は、Docker Compose を使用して Loomio を単一サーバーで実行するためのガイドであり、Let's Encrypt による TLS 証明書の自動プロビジョニングを含みます。リポジトリの説明では、Loomio は協調的意思決定ツールとされています。このガイドは、root アクセス、パブリック IP、最新の LTS 版 Ubuntu、少なくとも 1GB の RAM、ドメイン名、SMTP サーバーを備えたサーバーを前提としています。ローカルインストール用の開発環境セットアップガイドへのリンクもあります。 実行日時、版、環境、入力識別子、出力要約、警告を記録し、再現不能な結果は成功例として扱いません。 リポジトリの deploy/README は、Docker Compose を使用して Loomio を単一サーバーで実行するためのガイドであり、Let's Encrypt による TLS 証明書の自動プロビジョニングを含みます。リポジトリの説明では、Loomio は協調的意思決定ツールとされています。このガイドは、root アクセス、パブリック IP、最新の LTS 版 Ubuntu、少なくとも 1GB の RAM、ドメイン名、SMTP サーバーを備えたサーバーを前提としています。ローカルインストール用の開発環境セットアップガイドへのリンクもあります。 実行日時、版、環境、入力識別子、出力要約、警告を記録し、再現不能な結果は成功例として扱いません。 リポジトリの deploy/README は、Docker Compose を使用して Loomio を単一サーバーで実行するためのガイドであり、Let's Encrypt による TLS 証明書の自動プロビジョニングを含みます。リポジトリの説明では、Loomio は協調的意思決定ツールとされています。このガイドは、root アクセス、パブリック IP、最新の LTS 版 Ubuntu、少なくとも 1GB の RAM、ドメイン名、SMTP サーバーを備えたサーバーを前提としています。ローカルインストール用の開発環境セットアップガイドへのリンクもあります。 実行日時、版、環境、入力識別子、出力要約、警告を記録し、再現不能な結果は成功例として扱いません。 リポジトリの deploy/README は、Docker Compose を使用して Loomio を単一サーバーで実行するためのガイドであり、Let's Encrypt による TLS 証明書の自動プロビジョニングを含みます。リポジトリの説明では、Loomio は協調的意思決定ツールとされています。このガイドは、root アクセス、パブリック IP、最新の LTS 版 Ubuntu、少なくとも 1GB の RAM、ドメイン名、SMTP サーバーを備えたサーバーを前提としています。ローカルインストール用の開発環境セットアップガイドへのリンクもあります。 実行日時、版、環境、入力識別子、出力要約、警告を記録し、再現不能な結果は成功例として扱いません。

ネットワーク設定

ガイドでは、例としてホスト名 loomio.example.com と IP 192.0.2.1 を使用しています。ホスト名には A レコード、返信メールサポートには MX レコード、コラボレーション編集サーバー hocuspocus.loomio.example.com には CNAME レコードが必要です。これらの DNS レコードは明示的なエントリとして示されています。他のネットワーク設定については説明されていません。 ガイドでは、例としてホスト名 loomio.example.com と IP 192.0.2.1 を使用しています。ホスト名には A レコード、返信メールサポートには MX レコード、コラボレーション編集サーバー hocuspocus.loomio.example.com には CNAME レコードが必要です。これらの DNS レコードは明示的なエントリとして示されています。他のネットワーク設定については説明されていません。 ガイドでは、例としてホスト名 loomio.example.com と IP 192.0.2.1 を使用しています。ホスト名には A レコード、返信メールサポートには MX レコード、コラボレーション編集サーバー hocuspocus.loomio.example.com には CNAME レコードが必要です。これらの DNS レコードは明示的なエントリとして示されています。他のネットワーク設定については説明されていません。 ガイドでは、例としてホスト名 loomio.example.com と IP 192.0.2.1 を使用しています。ホスト名には A レコード、返信メールサポートには MX レコード、コラボレーション編集サーバー hocuspocus.loomio.example.com には CNAME レコードが必要です。これらの DNS レコードは明示的なエントリとして示されています。他のネットワーク設定については説明されていません。

サーバーの準備

セットアップ手順は、SSH で root としてログインすることから始まります。Docker のインストールは docs.docker.com からコピーしたコマンドを使用し、Docker GPG キー、apt リポジトリ、docker-ce、containerd、compose プラグインパッケージを含みます。デプロイディレクトリを作成し、リポジトリの deploy ディレクトリから docker-compose.yml と env_template をダウンロードします。環境テンプレートは .env にコピーされ、パーミッションは 600 です。 セットアップ手順は、SSH で root としてログインすることから始まります。Docker のインストールは docs.docker.com からコピーしたコマンドを使用し、Docker GPG キー、apt リポジトリ、docker-ce、containerd、compose プラグインパッケージを含みます。デプロイディレクトリを作成し、リポジトリの deploy ディレクトリから docker-compose.yml と env_template をダウンロードします。環境テンプレートは .env にコピーされ、パーミッションは 600 です。 セットアップ手順は、SSH で root としてログインすることから始まります。Docker のインストールは docs.docker.com からコピーしたコマンドを使用し、Docker GPG キー、apt リポジトリ、docker-ce、containerd、compose プラグインパッケージを含みます。デプロイディレクトリを作成し、リポジトリの deploy ディレクトリから docker-compose.yml と env_template をダウンロードします。環境テンプレートは .env にコピーされ、パーミッションは 600 です。 セットアップ手順は、SSH で root としてログインすることから始まります。Docker のインストールは docs.docker.com からコピーしたコマンドを使用し、Docker GPG キー、apt リポジトリ、docker-ce、containerd、compose プラグインパッケージを含みます。デプロイディレクトリを作成し、リポジトリの deploy ディレクトリから docker-compose.yml と env_template をダウンロードします。環境テンプレートは .env にコピーされ、パーミッションは 600 です。

環境ファイルとシークレット

シークレットは、Loomio イメージに対してワンライナーを実行して生成し、POSTGRES_PASSWORD、DEVISE_SECRET、SECRET_COOKIE_TOKEN、RAILS_INBOUND_EMAIL_PASSWORD のランダムな値を出力します。.env ファイルは、DATABASE_URL の PostgreSQL パスワードを含むすべての REPLACE_WITH_... プレースホルダーを置き換える必要があります。テンプレートには、SSO、テーマ、ファイルストレージなどのオプション設定も記載されています。 シークレットは、Loomio イメージに対してワンライナーを実行して生成し、POSTGRES_PASSWORD、DEVISE_SECRET、SECRET_COOKIE_TOKEN、RAILS_INBOUND_EMAIL_PASSWORD のランダムな値を出力します。.env ファイルは、DATABASE_URL の PostgreSQL パスワードを含むすべての REPLACE_WITH_... プレースホルダーを置き換える必要があります。テンプレートには、SSO、テーマ、ファイルストレージなどのオプション設定も記載されています。 シークレットは、Loomio イメージに対してワンライナーを実行して生成し、POSTGRES_PASSWORD、DEVISE_SECRET、SECRET_COOKIE_TOKEN、RAILS_INBOUND_EMAIL_PASSWORD のランダムな値を出力します。.env ファイルは、DATABASE_URL の PostgreSQL パスワードを含むすべての REPLACE_WITH_... プレースホルダーを置き換える必要があります。テンプレートには、SSO、テーマ、ファイルストレージなどのオプション設定も記載されています。 シークレットは、Loomio イメージに対してワンライナーを実行して生成し、POSTGRES_PASSWORD、DEVISE_SECRET、SECRET_COOKIE_TOKEN、RAILS_INBOUND_EMAIL_PASSWORD のランダムな値を出力します。.env ファイルは、DATABASE_URL の PostgreSQL パスワードを含むすべての REPLACE_WITH_... プレースホルダーを置き換える必要があります。テンプレートには、SSO、テーマ、ファイルストレージなどのオプション設定も記載されています。

SMTP 設定

運用者は SMTP サーバーを用意する必要があります。README には、SendGrid、SparkPost、Mailgun、Mailjet などのサービス、または Haraka を使用した自己ホストが挙げられています。SMTP 設定は .env に記入します。ドメインからメールを送信するために SPF DNS レコードが必要になる場合もあります。ガイドはそれ以上の SMTP 設定の詳細には触れていません。 運用者は SMTP サーバーを用意する必要があります。README には、SendGrid、SparkPost、Mailgun、Mailjet などのサービス、または Haraka を使用した自己ホストが挙げられています。SMTP 設定は .env に記入します。ドメインからメールを送信するために SPF DNS レコードが必要になる場合もあります。ガイドはそれ以上の SMTP 設定の詳細には触れていません。 運用者は SMTP サーバーを用意する必要があります。README には、SendGrid、SparkPost、Mailgun、Mailjet などのサービス、または Haraka を使用した自己ホストが挙げられています。SMTP 設定は .env に記入します。ドメインからメールを送信するために SPF DNS レコードが必要になる場合もあります。ガイドはそれ以上の SMTP 設定の詳細には触れていません。 運用者は SMTP サーバーを用意する必要があります。README には、SendGrid、SparkPost、Mailgun、Mailjet などのサービス、または Haraka を使用した自己ホストが挙げられています。SMTP 設定は .env に記入します。ドメインからメールを送信するために SPF DNS レコードが必要になる場合もあります。ガイドはそれ以上の SMTP 設定の詳細には触れていません。

データベース初期化と起動

.env を設定した後、`docker compose up -d db` と `docker compose run --rm app rake db:setup` でデータベースを初期化します。次に `docker compose up -d` でデータベース、アプリケーション、返信メール、ライブアップデートサービスをすべて起動します。ログは `docker compose logs -f` で確認します。nginx が Rails サーバーより先に起動すると、503 エラーが表示されることがあります。 .env を設定した後、`docker compose up -d db` と `docker compose run --rm app rake db:setup` でデータベースを初期化します。次に `docker compose up -d` でデータベース、アプリケーション、返信メール、ライブアップデートサービスをすべて起動します。ログは `docker compose logs -f` で確認します。nginx が Rails サーバーより先に起動すると、503 エラーが表示されることがあります。 .env を設定した後、`docker compose up -d db` と `docker compose run --rm app rake db:setup` でデータベースを初期化します。次に `docker compose up -d` でデータベース、アプリケーション、返信メール、ライブアップデートサービスをすべて起動します。ログは `docker compose logs -f` で確認します。nginx が Rails サーバーより先に起動すると、503 エラーが表示されることがあります。 .env を設定した後、`docker compose up -d db` と `docker compose run --rm app rake db:setup` でデータベースを初期化します。次に `docker compose up -d` でデータベース、アプリケーション、返信メール、ライブアップデートサービスをすべて起動します。ログは `docker compose logs -f` で確認します。nginx が Rails サーバーより先に起動すると、503 エラーが表示されることがあります。

管理者アクセスとトラブルシューティング

サインインしてメールを確認した後、rails runner コマンドを実行して最後のユーザーの is_admin フラグを true に更新することで、管理者権限を付与できます。管理インターフェースは /admin で利用できます。エラーについては、ガイドではログを確認してリクエストを送ることを推奨しています。通知のために Sentry を追加できます。env ファイルを変更した後は、`docker compose down` と `docker compose up -d` で再起動します。 サインインしてメールを確認した後、rails runner コマンドを実行して最後のユーザーの is_admin フラグを true に更新することで、管理者権限を付与できます。管理インターフェースは /admin で利用できます。エラーについては、ガイドではログを確認してリクエストを送ることを推奨しています。通知のために Sentry を追加できます。env ファイルを変更した後は、`docker compose down` と `docker compose up -d` で再起動します。 サインインしてメールを確認した後、rails runner コマンドを実行して最後のユーザーの is_admin フラグを true に更新することで、管理者権限を付与できます。管理インターフェースは /admin で利用できます。エラーについては、ガイドではログを確認してリクエストを送ることを推奨しています。通知のために Sentry を追加できます。env ファイルを変更した後は、`docker compose down` と `docker compose up -d` で再起動します。 サインインしてメールを確認した後、rails runner コマンドを実行して最後のユーザーの is_admin フラグを true に更新することで、管理者権限を付与できます。管理インターフェースは /admin で利用できます。エラーについては、ガイドではログを確認してリクエストを送ることを推奨しています。通知のために Sentry を追加できます。env ファイルを変更した後は、`docker compose down` と `docker compose up -d` で再起動します。

アップグレードとライセンス

イメージタグは、そのリリースシリーズの最新パッチリリースに従います。`docker compose pull` と `docker compose up -d` で更新します。新しいマイナーまたはメジャーリリースシリーズに移行する前に、UPGRADING.md ガイドを読む必要があります。リポジトリのメタデータはライセンスを AGPL-3.0 としていますが、README 自体はライセンスについて言及しておらず、提供された資料にはライセンスファイルは含まれていません。 イメージタグは、そのリリースシリーズの最新パッチリリースに従います。`docker compose pull` と `docker compose up -d` で更新します。新しいマイナーまたはメジャーリリースシリーズに移行する前に、UPGRADING.md ガイドを読む必要があります。リポジトリのメタデータはライセンスを AGPL-3.0 としていますが、README 自体はライセンスについて言及しておらず、提供された資料にはライセンスファイルは含まれていません。 イメージタグは、そのリリースシリーズの最新パッチリリースに従います。`docker compose pull` と `docker compose up -d` で更新します。新しいマイナーまたはメジャーリリースシリーズに移行する前に、UPGRADING.md ガイドを読む必要があります。リポジトリのメタデータはライセンスを AGPL-3.0 としていますが、README 自体はライセンスについて言及しておらず、提供された資料にはライセンスファイルは含まれていません。 イメージタグは、そのリリースシリーズの最新パッチリリースに従います。`docker compose pull` と `docker compose up -d` で更新します。新しいマイナーまたはメジャーリリースシリーズに移行する前に、UPGRADING.md ガイドを読む必要があります。リポジトリのメタデータはライセンスを AGPL-3.0 としていますが、README 自体はライセンスについて言及しておらず、提供された資料にはライセンスファイルは含まれていません。

編集部の結論

デプロイ README は、素の Ubuntu サーバーから実行中の Loomio インスタンスまでの具体的な経路を示していますが、SMTP プロバイダーやオプション機能などの選択は運用者に委ねられています。リポジトリのメタデータはライセンスを AGPL-3.0 としていますが、README 自体はライセンスについて言及していません。

公式情報源

  1. Official documentation
  2. Official README
  3. Project repository
  4. Release notes
コミュニティノート

コミュニティノート