Polis は、AI を活用した感情収集プラットフォームです。アンケートよりも有機的で、フォーカスグループよりも手間がかかりません。
詳細な方法論については、Polis: 高次元意見空間のマッピングによる審議のスケーリング を参照してください。
Polis の利用または貢献に興味がある場合は、以下を参照してください。
- 📚 ナレッジベース: システムを理解し、使用するのに役立つ包括的な Wiki
- 🌐 メインデプロイメント: Polis のメインデプロイメントは https://pol.is であり、非営利団体や政府機関は無料で利用できます。
- 💬 ディスカッション: 質問(QA)とディスカッション
- ✔️ 課題: 明確に定義された技術的な課題
- 🏗️ プロジェクトボード: やや不完全ですが、それでも役立ちます。Projects Beta がリリースされた頃に停止しましたが、最終的には移行する Projects Beta Board があります。
- ✉️ 連絡先: 影響の大きいコンテキストで Polis を適用しており、上記の公開チャネルでは得られない追加のヘルプが必要な場合
Polis のデプロイまたは開発環境をセットアップしようとしている場合は、このドキュメントの残りの部分を読んでください 👇 ⬇️ 👇
Polis には、本番環境デプロイ または 開発環境 のいずれか(詳細は本ドキュメントの後半セクションを参照)で完全なシステムを実行するための Docker インフラストラクチャが付属しています。
その結果、Polis を実行するための唯一の前提条件は、最新の docker (Mac または Windows の場合は Docker Desktop) をインストールすることです。
何らかの理由で Docker を使用できない場合、このリポジトリのサブディレクトリ (math、server、delphi、*-client) にあるさまざまな Dockerfile は、システムを手動でセットアップする方法の参照として使用できます。
代替インフラストラクチャをサポートするために労力を費やすことに興味がある場合は、課題でお知らせください。
cp example.env .env
make startこれにより、開発オーバーレイ (下記参照) とデフォルトの構成値で docker compose が実行されます。
AirPlay レシーバーが有効になっている場合、Mac でエラーが発生する可能性があります。これはデフォルトでポート 5000 を使用し、Polis API_SERVER_PORT と衝突します。これは .env ファイルで変更するか、システム設定で AirPlay レシーバーを無効にすることができます。
localhost:80/createuser にアクセスして開始してください。
新しいバージョンの docker には、サブコマンドとして docker compose が組み込まれています。
古いバージョンを使用している場合 (そしてアップグレードしたくない場合) は、docker-compose を別途インストールし、以下の手順でそれを使用する必要があります。
ただし、スケーリングオプションとして Docker Swarm を利用する には、新しい docker compose コマンドが必要です。
多くの便利なコマンドは Makefile にあります。利用可能なコマンドのリストについては、make help を実行してください。
まずリポジトリをクローンし、コマンドラインでルートディレクトリに移動して、以下のコマンドを実行して docker コンテナをビルドして実行します。
example.env ファイルをコピーし、必要に応じて変更します (ただし、開発およびテスト目的ではそのまま動作するはずです)。
cp example.env .envdocker compose --profile postgres --profile local-services up --buildパーミッションエラーが発生した場合は、sudo を付けてこのコマンドを実行してみてください。
これにより問題が解決する場合は、他のすべてのコマンドでも sudo が必要になります。
将来 sudo を使用しないようにするには (WSL を搭載した Linux または Windows マシンで)、こちらでセットアップ手順に従うことができます。
docker イメージをビルドしたら、--build なしで実行できます。これは高速になる可能性があります。実行します。
docker compose --profile postgres --profile local-services upまたは単に
make startイメージを 再ビルド したい場合はいつでも、実行時に --build を再付加するだけです。コンテナを簡単に再ビルドして起動するもう 1 つの方法は、make start-rebuild です。
.env の構成値のみを変更した場合は、--force-recreate を使用して、完全に再ビルドせずにコンテナを再作成できます。例:
docker compose --profile postgres --profile local-services down
docker compose --profile postgres --profile local-services up --force-recreateコンテナの環境がどのように見えるかを確認するには、以下を実行します。
docker compose --profile postgres --profile local-services convertローカルまたはリモートデータベースを使用するには、--profile postgres フラグを省略します。.env ファイルで DATABASE_URL 環境変数をデータベースを指すように設定する必要があります。
make コマンドを使用する場合、POSTGRES_DOCKER を true または false に設定すると、docker compose を呼び出すときに --profile postgres を自動的に含めるかどうかが決定されます。
Makefile のコマンドには PROD を前に付けることができます。その場合、docker-compose.dev.yml の「開発オーバーレイ」構成は無視されます。
HTTP プロキシ (80/443) 以外のサービスからのポートは公開されません。コンテナはローカルディレクトリをマウントしたり、変更を監視したり、
またはそれ自体を再構築したりしません。理論的には、これは本番環境で Polis を実行する 1 つの方法です。
prod.env ファイルが必要です。
cp example.env prod.env (そしてそれに応じて更新)。
その後、次のようなものを実行できます。
make PROD start
make PROD start-rebuildローカルの MinIO および DynamoDB サービスなしでスタックを実行したい場合 (例: .env ファイルで構成された実際の AWS サービスへの接続をテストするため)、--profile local-services フラグを省略するだけです。
例: コンテナ化された DB で実行し、外部/実際のクラウドサービスに接続します。
docker compose --profile postgres up例: 外部 DB と外部/実際のクラウドサービスで実行 (本番環境に最も近い):
docker compose uphttp://localhost:80/home にアクセスして、セットアップをテストできるようになりました。
make start または開発構成で実行すると、OIDC シミュレーターが事前定義されたテストユーザーで自動的に起動します。以下を使用してすぐにログインできます。
- メール:
[email protected] - パスワード:
Te$tP@ssw0rd*
追加のテストユーザーが利用可能です。
[email protected]/Te$tP@ssw0rd*[email protected]から[email protected](すべてパスワードTe$tP@ssw0rd*)
OIDC シミュレーターの制限により、開発およびテスト環境では新しい管理者ユーザーを登録できません。
作業が完了したら、Ctrl+C を使用してプロセスを終了するか、「デタッチモード」で実行している場合は docker compose --profile postgres --profile local-services down と入力します。
システムを更新する場合は、以下を処理する必要がある場合があります。
- 新しいものがある場合は、⬆️ データベース移行を実行する
- Dockerfile に変更があった場合は、
--buildを付けて実行して docker イメージを更新します。- 最初から再ビルドしたい場合は
--no-cacheの使用を検討してください。ただし、これにははるかに時間がかかります。
- 最初から再ビルドしたい場合は
上記のコマンドで機能する Polis システムを起動して実行できますが、システムを適切に構成、保護、スケーリングするには追加の手順が必要です。 特に
- ⚙️ システムの構成、特に以下:
- サービスを提供するドメイン名
- サードパーティサービス (例: 自動コメント翻訳、スパムフィルタリングなど) の API キーを有効にして追加
- 🔏 SSL/HTTPS のセットアップ、サイトを安全に保つため
- 📈 スケーリング、大規模または多数の同時会話に対応するため
デプロイのセットアップに関するサポートについては、上記の公開チャネルをご利用ください。 ただし、影響の大きいコンテキストでデプロイしており、ヘルプが必要な場合は、お問い合わせください
Polis を実行した後 (上記参照)、以下を実行して開発者向けの便利な機能を有効にできます。
docker compose -f docker-compose.yml -f docker-compose.dev.yml --profile postgres up(初回実行時、またはコンテナを再構築する必要がある場合は --build を付けて実行)
これにより、以下が可能になります。
- サーバーコードのライブコードリロードと静的型チェック
- 実行中の数学プロセスに接続するための nREPL 接続ポートの開放
- データベースコンテナに直接接続するためのポートの開放
- クライアントリポジトリのライブコードリロード (処理中)
- その他
このコマンドは、docker-compose.yml ファイルで説明されているように、上記の開発者向けの便利な機能をベースシステムにレイヤー化する docker-compose.dev.yml オーバーレイ ファイルを利用します。
これらの機能を利用する必要がある docker コマンド (単に docker compose --profile postgres up だけでなく) には、これらの -f docker-compose.yml -f docker-compose.dev.yml 引数を指定できます。
独自の docker-compose.x.yml ファイルをオーバーレイとして作成し、docker-compose.yml ファイルにあるデフォルトとは異なる必要がある値を追加または変更し、上記の docker compose -f コマンドの 2 番目の引数として渡すことができます。
GitHub の PR の自動化されたエンドツーエンドブラウザテストには Cypress を使用しています (上記のバッジを参照)。
これらのテストをローカルで実行する方法の詳細については、e2e/README.md を参照してください。
多くの問題は、すべての docker コンテナを強制終了したり、docker を完全に再起動したりすることで解決する可能性があります。それでも解決しない場合は、すべての polis コンテナとボリューム (本番環境では使用しないでください!データベースボリュームを含む) を完全に削除して再構築します。
make start-FULL-REBUILD
その他の便利なコマンドについては、make help も参照してください。
過去のファイル再編成により、履歴を確認するのに以下の git 構成が役立つ場合があります。
git config --local include.path ../.gitconfigdocker compose をバックグラウンドプロセスとして実行したい場合は、--detach フラグを付けて up コマンドを実行し、docker compose --profile postgres --profile local-services down を使用して停止します。
開発マシンがすべての docker コンテナの処理に問題がある場合は、Docker Machine の使用 を検討してください。
npm/docker が特にネイティブライブラリで奇妙な状態になり、適切に回復できない場合があります。
Error: Cannot find module .... bcrypt のようなメッセージが表示されることがあります。
このような場合は、こちらの指示に従ってください。
一部の依存関係、特に nodejs と postgres のものを Rosetta ターミナル にインストールする必要がある場合があります。Apple コンピュータで奇妙なビルドの問題が発生している場合は、課題を作成するか、お問い合わせください。