Thanks to visit codestin.com
Credit goes to github.com

Skip to content

mameshivaa/polis

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Polis

Polis は、AI を活用した感情収集プラットフォームです。アンケートよりも有機的で、フォーカスグループよりも手間がかかりません。

詳細な方法論については、Polis: 高次元意見空間のマッピングによる審議のスケーリング を参照してください。

Docker Image Builds E2E Tests


🎈 🪁 まずはこちらから! 🪁 🎈

Polis の利用または貢献に興味がある場合は、以下を参照してください。

Polis のデプロイまたは開発環境をセットアップしようとしている場合は、このドキュメントの残りの部分を読んでください 👇 ⬇️ 👇


⚡ Polis の実行

Polis には、本番環境デプロイ または 開発環境 のいずれか(詳細は本ドキュメントの後半セクションを参照)で完全なシステムを実行するための Docker インフラストラクチャが付属しています。 その結果、Polis を実行するための唯一の前提条件は、最新の docker (Mac または Windows の場合は Docker Desktop) をインストールすることです。

何らかの理由で Docker を使用できない場合、このリポジトリのサブディレクトリ (mathserverdelphi*-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 には、サブコマンドとして docker compose が組み込まれています。 古いバージョンを使用している場合 (そしてアップグレードしたくない場合) は、docker-compose を別途インストールし、以下の手順でそれを使用する必要があります。 ただし、スケーリングオプションとして Docker Swarm を利用する には、新しい docker compose コマンドが必要です。

多くの便利なコマンドは Makefile にあります。利用可能なコマンドのリストについては、make help を実行してください。

コンテナのビルドと実行

まずリポジトリをクローンし、コマンドラインでルートディレクトリに移動して、以下のコマンドを実行して docker コンテナをビルドして実行します。

example.env ファイルをコピーし、必要に応じて変更します (ただし、開発およびテスト目的ではそのまま動作するはずです)。

cp example.env .env
docker 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

ローカルまたはリモート (非 Docker) データベースの使用

ローカルまたはリモートデータベースを使用するには、--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 up

インスタンスのテスト

http://localhost:80/home にアクセスして、セットアップをテストできるようになりました。

事前定義されたテストアカウントの使用

make start または開発構成で実行すると、OIDC シミュレーターが事前定義されたテストユーザーで自動的に起動します。以下を使用してすぐにログインできます。

追加のテストユーザーが利用可能です。

OIDC シミュレーターの制限により、開発およびテスト環境では新しい管理者ユーザーを登録できません。

シャットダウン

作業が完了したら、Ctrl+C を使用してプロセスを終了するか、「デタッチモード」で実行している場合は docker compose --profile postgres --profile local-services down と入力します。

システムの更新

システムを更新する場合は、以下を処理する必要がある場合があります。

  • 新しいものがある場合は、⬆️ データベース移行を実行する
  • Dockerfile に変更があった場合は、--build を付けて実行して docker イメージを更新します。
    • 最初から再ビルドしたい場合は --no-cache の使用を検討してください。ただし、これにははるかに時間がかかります。

🚀 本番環境デプロイ

上記のコマンドで機能する Polis システムを起動して実行できますが、システムを適切に構成、保護、スケーリングするには追加の手順が必要です。 特に

サポート

デプロイのセットアップに関するサポートについては、上記の公開チャネルをご利用ください。 ただし、影響の大きいコンテキストでデプロイしており、ヘルプが必要な場合は、お問い合わせください


💻 開発ツール

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 コンテナを強制終了したり、docker を完全に再起動したりすることで解決する可能性があります。それでも解決しない場合は、すべての polis コンテナとボリューム (本番環境では使用しないでください!データベースボリュームを含む) を完全に削除して再構築します。

make start-FULL-REBUILD

その他の便利なコマンドについては、make help も参照してください。

Git の構成

過去のファイル再編成により、履歴を確認するのに以下の git 構成が役立つ場合があります。

git config --local include.path ../.gitconfig

バックグラウンドプロセスとして実行

docker compose をバックグラウンドプロセスとして実行したい場合は、--detach フラグを付けて up コマンドを実行し、docker compose --profile postgres --profile local-services down を使用して停止します。

開発環境として Docker Machine を使用する

開発マシンがすべての docker コンテナの処理に問題がある場合は、Docker Machine の使用 を検討してください。

npm がライブラリを見つけられない問題の解決

npm/docker が特にネイティブライブラリで奇妙な状態になり、適切に回復できない場合があります。 Error: Cannot find module .... bcrypt のようなメッセージが表示されることがあります。

このような場合は、こちらの指示に従ってください。

Apple Silicon (M1 & M2) チップに関する問題

一部の依存関係、特に nodejs と postgres のものを Rosetta ターミナル にインストールする必要がある場合があります。Apple コンピュータで奇妙なビルドの問題が発生している場合は、課題を作成するか、お問い合わせください。

©️ ライセンス

AGPLv3 (セクション 7 の追加許可付き)

About

🌌 Open Source AI for large scale open ended feedback

Resources

License

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • JavaScript 25.8%
  • Python 24.1%
  • Jupyter Notebook 23.9%
  • TypeScript 15.6%
  • Clojure 5.3%
  • SCSS 1.9%
  • Other 3.4%