{"id":29626342,"url":"https://github.com/kajilabteam/elpis_manager","last_synced_at":"2026-07-03T21:02:07.649Z","repository":{"id":234675599,"uuid":"786331013","full_name":"kajiLabTeam/elpis_manager","owner":"kajiLabTeam","description":null,"archived":false,"fork":false,"pushed_at":"2025-07-04T06:50:14.000Z","size":5095,"stargazers_count":0,"open_issues_count":41,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-07-04T07:35:46.739Z","etag":null,"topics":["elpis"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"agpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/kajiLabTeam.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":".github/CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":".github/CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2024-04-14T05:49:36.000Z","updated_at":"2025-07-04T06:50:33.000Z","dependencies_parsed_at":"2024-04-20T11:31:53.935Z","dependency_job_id":"53c2e5ba-b9a9-404d-bb75-b236f6c74a7c","html_url":"https://github.com/kajiLabTeam/elpis_manager","commit_stats":null,"previous_names":["kajilabteam/autonomylink_go","kajilabteam/elpis_manager"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/kajiLabTeam/elpis_manager","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kajiLabTeam%2Felpis_manager","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kajiLabTeam%2Felpis_manager/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kajiLabTeam%2Felpis_manager/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kajiLabTeam%2Felpis_manager/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kajiLabTeam","download_url":"https://codeload.github.com/kajiLabTeam/elpis_manager/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kajiLabTeam%2Felpis_manager/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":266255459,"owners_count":23900147,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["elpis"],"created_at":"2025-07-21T07:05:54.875Z","updated_at":"2025-10-24T00:34:33.408Z","avatar_url":"https://github.com/kajiLabTeam.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003e 「elpis（エルピス）」は、ギリシャ神話において希望や期待を象徴する女神です。パンドラの箱の神話では、あらゆる災厄が解き放たれた後、最後に箱の中に残ったのが「エルピス（希望）」でした。この神話は、逆境の中でも希望を持つことの重要性を伝えています。\n\n企業では、プロジェクト名にギリシャ神話から名前を付けることがあります。本プロジェクトでもその慣例に従い、正式名称ではありませんが、暫定的に「elpis」と名付けています。\n\n## インストールの前に\n\nelpisプロジェクトの全体像や技術的な背景を理解するためには、以下のドキュメントを事前に確認しておくことをおすすめします。\n\n- [研究概要](https://kjlb.esa.io/posts/5571)\n- [デプロイサーバ](https://kjlb.esa.io/posts/6399)\n- [DB設計](https://kjlb.esa.io/posts/5762)\n- [API定義](https://kjlb.esa.io/posts/6697)\n- [データフロー](https://kjlb.esa.io/posts/5751)\n- [関連研究](https://kjlb.esa.io/posts/5810)\n\n## 必要条件\n\n- **Go** 1.22以上\n- **Python** 3.10以上\n  - [uv](https://zenn.dev/turing_motors/articles/594fbef42a36ee)の導入が必要\n- **Node.js** 22以上\n- **Docker** / **Docker Compose**\n\n## インストール\n\n1. リポジトリをクローンします。\n\n    ```sh\n    git clone git@github.com:kajiLabTeam/elpis_manager.git\n    cd elpis_manager\n    ```\n\n2. 必要な依存関係をインストールします。\n\n    ```sh\n    cd ./manager \u0026\u0026 go mod download\n    cd ../echo \u0026\u0026 go mod download\n    ```\n\n## 使い方\n\n### サーバーの起動方法\n\n#### 方法1: Docker Composeで立ち上げる\n\nDocker Composeを使用して、すべてのサービスをバックグラウンドで起動します。\n\n```sh\nmake up\n```\n\nサービスの状態を確認するには:\n\n```sh\ndocker compose ps\n```\n\nすべてのサービスを停止するには:\n\n```sh\nmake down\n```\n\n#### 方法2: ローカル環境で立ち上げる\n\nローカル環境で各サービスを個別に起動します。\n\n1. **データベースの起動**\n\n    データベースサービスのみを起動します。\n\n    ```sh\n    make db-up\n    ```\n\n2. **プロキシサービスの起動**\n\n    別のターミナルで、プロキシサービスをローカルで起動します。\n\n    ```sh\n    make run-proxy\n    ```\n\n3. **マネージャーサービスの起動**\n\n    別のターミナルで、マネージャーサービスをローカルで起動します。\n\n    ```sh\n    make run-manager\n    ```\n\n4. **推定モデルサービスの起動**\n\n    別のターミナルで、推定モデルサービスをローカルで起動します。\n\n    ```sh\n    make run-est-model\n    ```\n\n5. **推定APIサービスの起動**\n\n    別のターミナルで、推定APIサービスをローカルで起動します。\n\n    ```sh\n    make run-est-api\n    ```\n\n6. **サービスの停止**\n\n    関連するボリュームを削除します。\n\n    ```sh\n    make db-down\n    ```\n\n### OpenAPIの参照方法\n\n本プロジェクトには、API仕様を確認・テストするためのSwagger UI、Swagger Editor、およびSwagger APIサービスが含まれています。現在はManagerのAPI状況を確認できます。\n\n#### Swagger UIの使用\n\nSwagger UIを使用してAPIドキュメントを閲覧できます。\n\n1. **Swagger UIサービスの起動**\n\n    Docker Composeでサービスを起動している場合、`make up`コマンドで自動的に起動します。\n\n2. **Swagger UIにアクセス**\n\n    ブラウザで以下のURLにアクセスしてください。\n\n    ```\n    http://localhost:8002\n    ```\n\n    これにより、`openapi.yaml`ファイルに基づいたAPIドキュメントが表示されます。\n\n#### Swagger Editorの使用\n\nSwagger Editorを使用して、OpenAPI仕様を編集・確認できます。\n\n1. **Swagger Editorサービスの起動**\n\n    Docker Composeでサービスを起動している場合、`make up`コマンドで自動的に起動します。\n\n2. **Swagger Editorにアクセス**\n\n    ブラウザで以下のURLにアクセスしてください。\n\n    ```\n    http://localhost:8001\n    ```\n\n    `openapi.yaml`ファイルを編集・保存すると、変更内容がリアルタイムで反映されます。\n\n#### Swagger APIの使用\n\nSwagger APIを使用して、モックサーバーを立ち上げてAPIの挙動をテストできます。\n\n1. **Swagger APIサービスの起動**\n\n    Docker Composeでサービスを起動している場合、`make up`コマンドで自動的に起動します。\n\n2. **Swagger APIにアクセス**\n\n    モックサーバーは以下のURLで稼働しています。\n\n    ```\n    http://localhost:8003\n    ```\n\n    このエンドポイントに対してAPIリクエストを送信すると、`openapi.yaml`に基づいたレスポンスが返されます。\n\n#### FastAPIのOpenAPIドキュメントの参照\n\nFastAPIを使用した推定APIサービスは、自動的にOpenAPIドキュメントを生成し、Swagger UIを提供しています。これにより、APIのエンドポイントやリクエスト・レスポンスの詳細を確認できます。\n\n1. **推定APIサービスの起動**\n\n    Docker Composeでサービスを起動している場合、`make up`コマンドで自動的に起動します。ローカルで起動している場合は、以下のコマンドを使用します。\n\n    ```sh\n    make run-est-api\n    ```\n\n2. **Swagger UIにアクセス**\n\n    ブラウザで以下のURLにアクセスしてください。\n\n    ```\n    http://localhost:8101/docs\n    ```\n\n    これにより、推定APIのSwagger UIが表示されます。\n\n3. **Redocによるドキュメントの閲覧**\n\n    FastAPIはRedocもサポートしています。以下のURLでアクセスできます。\n\n    ```\n    http://localhost:8101/redoc\n    ```\n\n    こちらからもAPIドキュメントを閲覧できます。\n\n4. **OpenAPIスキーマの取得**\n\n    OpenAPI仕様そのものを取得したい場合は、以下のURLからJSON形式でダウンロードできます。\n\n    ```\n    http://localhost:8101/openapi.json\n    ```\n\n### エンドツーエンドテストの実行\n\nプロジェクトには、各サービスのエンドツーエンドテスト用のシェルスクリプトが用意されています。以下のMakeコマンドを使用してテストを実行できます。\n\n- **個別のテストを実行**\n\n    - **推定APIのテスト**\n\n        ```sh\n        make run-test-est-api\n        ```\n\n    - **マネージャーサービスのテスト**\n\n        ```sh\n        make run-test-manager\n        ```\n\n    - **プロキシサービスのテスト**\n\n        ```sh\n        make run-test-proxy\n        ```\n\n    - **ウェブサービスのテスト**\n\n        ```sh\n        make run-test-web\n        ```\n\n### その他のコマンド\n\n- **サービスの再起動**\n\n    全サービスを再起動するには:\n\n    ```sh\n    make restart\n    ```\n\n- **特定のサービスを再起動**\n\n    - マネージャーサービスのみを再起動:\n\n        ```sh\n        make restart-manager\n        ```\n\n    - プロキシサービスのみを再起動:\n\n        ```sh\n        make restart-proxy\n        ```\n\n    - 推定APIサービスのみを再起動:\n\n        ```sh\n        make restart-est-api\n        ```\n\n- **Dockerイメージのビルド**\n\n    ```sh\n    make build\n    ```\n\n- **クリーンアップ**\n\n    すべてのサービスを停止し、コンテナ、ネットワーク、ボリュームを削除します。\n\n    ```sh\n    make clean\n    ```\n\n### Python (uv)\n\n推定サーバにはPythonを使った機械学習モデルを採用しています。以下のリンクから`uv`を導入してください。\n\n[uvの導入ガイド](https://zenn.dev/turing_motors/articles/594fbef42a36ee)\n\n- **推定APIサービスのローカル起動**\n\n    ```sh\n    make run-est-api\n    ```\n\n### ヘルプの表示\n\n利用可能なすべてのMakeコマンドを確認するには:\n\n```sh\nmake help\n```\n\n### ライセンス\n\n現状のelpisプロジェクトは、GPLv3ライセンスの下で公開されています。ライセンスの詳細については、[LICENSE](LICENSE)ファイルを参照してください。\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkajilabteam%2Felpis_manager","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkajilabteam%2Felpis_manager","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkajilabteam%2Felpis_manager/lists"}