Add ja docs (#530)

* docs: add Japanese README
* docs: Update README.ja.md
* docs: add DOCKER_DEPLOY.ja.md
---------
Co-authored-by: Ikko Ashimine <ashimine_ikko_bp@tenso.com>
This commit is contained in:
SkywalkerJi
2025-11-05 21:14:26 +09:00
committed by GitHub
parent 5328166018
commit c76780d850
5 changed files with 1818 additions and 0 deletions
+472
View File
@@ -0,0 +1,472 @@
# 🐳 Dockerワンクリックデプロイガイド
このガイドは、Dockerを使用してNOFX AIトレーディング競争システムを迅速にデプロイする方法を説明します。
## 📋 前提条件
開始する前に、システムに以下が必要です:
- **Docker**: バージョン20.10以上
- **Docker Compose**: バージョン2.0以上
### Dockerのインストール
#### macOS / Windows
[Docker Desktop](https://www.docker.com/products/docker-desktop/)をダウンロードしてインストール
#### Linux (Ubuntu/Debian)
> #### Docker Composeバージョンに関する注意
>
> **新規ユーザー推奨:**
> - **Docker Desktopを使用**: 最新のDocker Composeが自動的に含まれ、別途インストールは不要
> - シンプルなインストール、ワンクリックセットアップ、GUI管理を提供
> - macOS、Windows、一部のLinuxディストリビューションをサポート
>
> **既存ユーザー向け注意:**
> - **スタンドアロンdocker-composeの非推奨**: 独立したDocker Composeバイナリのダウンロードは推奨されません
> - **組み込みバージョンを使用**: Docker 20.10+には`docker compose`コマンド(スペース付き)が含まれています
> - 古い`docker-compose`をまだ使用している場合は、新しい構文にアップグレードしてください
*推奨:Docker Desktop(利用可能な場合)またはCompose組み込みのDocker CEを使用*
```bash
# Dockerをインストール(composeを含む)
curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh
# dockerグループにユーザーを追加
sudo usermod -aG docker $USER
newgrp docker
# インストールを確認(新しいコマンド)
docker --version
docker compose --version # Docker 24+にはこれが含まれており、別途インストール不要
```
## 🚀 クイックスタート(3ステップ)
### ステップ1:設定ファイルを準備
```bash
# 設定テンプレートをコピー
cp config.json.example config.json
# APIキーで設定ファイルを編集
nano config.json # または他のエディタを使用
```
**必須フィールド:**
```json
{
"traders": [
{
"id": "my_trader",
"name": "My AI Trader",
"ai_model": "deepseek",
"binance_api_key": "YOUR_BINANCE_API_KEY", // ← BinanceのAPIキー
"binance_secret_key": "YOUR_BINANCE_SECRET_KEY", // ← Binanceのシークレットキー
"deepseek_key": "YOUR_DEEPSEEK_API_KEY", // ← DeepSeekのAPIキー
"initial_balance": 1000.0,
"scan_interval_minutes": 3
}
],
"use_default_coins": true,
"api_server_port": 8080
}
```
### ステップ2:ワンクリック起動
```bash
# すべてのサービスをビルドして起動(初回実行)
docker compose up -d --build
# 以降の起動(リビルドなし)
docker compose up -d
```
**起動オプション:**
- `--build`: Dockerイメージをビルド(初回実行またはコード更新後に使用)
- `-d`: デタッチモードで実行(バックグラウンド)
### ステップ3:システムにアクセス
デプロイが完了したら、ブラウザを開いて以下にアクセス:
- **Webインターフェース**: http://localhost:3000
- **APIヘルスチェック**: http://localhost:8080/health
## 📊 サービス管理
### 実行状態を表示
```bash
# すべてのコンテナステータスを表示
docker compose ps
# サービスヘルスステータスを表示
docker compose ps --format json | jq
```
### ログを表示
```bash
# すべてのサービスログを表示
docker compose logs -f
# バックエンドログのみを表示
docker compose logs -f backend
# フロントエンドログのみを表示
docker compose logs -f frontend
# 最後の100行を表示
docker compose logs --tail=100
```
### サービスを停止
```bash
# すべてのサービスを停止(データを保持)
docker compose stop
# コンテナを停止して削除(データを保持)
docker compose down
# コンテナとボリュームを停止して削除(すべてのデータをクリア)
docker compose down -v
```
### サービスを再起動
```bash
# すべてのサービスを再起動
docker compose restart
# バックエンドのみを再起動
docker compose restart backend
# フロントエンドのみを再起動
docker compose restart frontend
```
### サービスを更新
```bash
# 最新のコードをプル
git pull
# リビルドして再起動
docker compose up -d --build
```
## 🔧 高度な設定
### ポートを変更
`docker-compose.yml`を編集してポートマッピングを変更:
```yaml
services:
backend:
ports:
- "8080:8080" # "your_port:8080"に変更
frontend:
ports:
- "3000:80" # "your_port:80"に変更
```
### リソース制限
`docker-compose.yml`にリソース制限を追加:
```yaml
services:
backend:
deploy:
resources:
limits:
cpus: '2'
memory: 2G
reservations:
cpus: '1'
memory: 1G
```
### 環境変数
`.env`ファイルを作成して環境変数を管理:
```bash
# .env
TZ=Asia/Tokyo
BACKEND_PORT=8080
FRONTEND_PORT=3000
```
次に`docker-compose.yml`で使用:
```yaml
services:
backend:
ports:
- "${BACKEND_PORT}:8080"
```
## 📁 データの永続化
システムは自動的にデータをローカルディレクトリに永続化します:
- `./decision_logs/`: AI判断ログ
- `./coin_pool_cache/`: コインプールキャッシュ
- `./config.json`: 設定ファイル(マウント済み)
**データの場所:**
```bash
# データディレクトリを表示
ls -la decision_logs/
ls -la coin_pool_cache/
# データをバックアップ
tar -czf backup_$(date +%Y%m%d).tar.gz decision_logs/ coin_pool_cache/ config.json
# データを復元
tar -xzf backup_20241029.tar.gz
```
## 🐛 トラブルシューティング
### コンテナが起動しない
```bash
# 詳細なエラーメッセージを表示
docker compose logs backend
docker compose logs frontend
# コンテナステータスを確認
docker compose ps -a
# リビルド(キャッシュをクリア)
docker compose build --no-cache
```
### ポートが既に使用中
```bash
# ポートを使用しているプロセスを検索
lsof -i :8080 # バックエンドポート
lsof -i :3000 # フロントエンドポート
# プロセスを強制終了
kill -9 <PID>
```
### 設定ファイルが見つからない
```bash
# config.jsonが存在することを確認
ls -la config.json
# 存在しない場合、テンプレートをコピー
cp config.json.example config.json
```
### ヘルスチェックが失敗
```bash
# ヘルスステータスを確認
docker inspect nofx-backend | jq '.[0].State.Health'
docker inspect nofx-frontend | jq '.[0].State.Health'
# ヘルスエンドポイントを手動でテスト
curl http://localhost:8080/health
curl http://localhost:3000/health
```
### フロントエンドがバックエンドに接続できない
```bash
# ネットワーク接続を確認
docker compose exec frontend ping backend
# バックエンドサービスが実行中か確認
docker compose exec frontend wget -O- http://backend:8080/health
```
### Dockerリソースをクリーン
```bash
# 未使用のイメージをクリーン
docker image prune -a
# 未使用のボリュームをクリーン
docker volume prune
# すべての未使用リソースをクリーン(注意して使用)
docker system prune -a --volumes
```
## 🔐 セキュリティ推奨事項
1. **config.jsonをGitにコミットしない**
```bash
# config.jsonが.gitignoreに含まれていることを確認
echo "config.json" >> .gitignore
```
2. **機密データには環境変数を使用**
```yaml
# docker-compose.yml
services:
backend:
environment:
- BINANCE_API_KEY=${BINANCE_API_KEY}
- BINANCE_SECRET_KEY=${BINANCE_SECRET_KEY}
```
3. **APIアクセスを制限**
```yaml
# ローカルアクセスのみを許可
services:
backend:
ports:
- "127.0.0.1:8080:8080"
```
4. **イメージを定期的に更新**
```bash
docker compose pull
docker compose up -d
```
## 🌐 本番環境デプロイ
### Nginxリバースプロキシの使用
```nginx
# /etc/nginx/sites-available/nofx
server {
listen 80;
server_name your-domain.com;
location / {
proxy_pass http://localhost:3000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
location /api/ {
proxy_pass http://localhost:8080/api/;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
}
```
### HTTPSの設定(Let's Encrypt
```bash
# Certbotをインストール
sudo apt-get install certbot python3-certbot-nginx
# SSL証明書を取得
sudo certbot --nginx -d your-domain.com
# 自動更新
sudo certbot renew --dry-run
```
### Docker Swarmの使用(クラスタデプロイ)
```bash
# Swarmを初期化
docker swarm init
# スタックをデプロイ
docker stack deploy -c docker-compose.yml nofx
# サービスステータスを表示
docker stack services nofx
# サービスをスケール
docker service scale nofx_backend=3
```
## 📈 監視&ロギング
### ログ管理
```bash
# ログローテーションを設定(docker-compose.ymlで既に設定済み)
logging:
driver: "json-file"
options:
max-size: "10m"
max-file: "3"
# ログ統計を表示
docker compose logs --timestamps | wc -l
```
### 監視ツール統合
Prometheus + Grafanaで監視を統合:
```yaml
# docker-compose.yml(監視サービスを追加)
services:
prometheus:
image: prom/prometheus
ports:
- "9090:9090"
volumes:
- ./prometheus.yml:/etc/prometheus/prometheus.yml
grafana:
image: grafana/grafana
ports:
- "3001:3000"
```
## 🆘 ヘルプを取得
- **GitHub Issues**: [Issueを提出](https://github.com/yourusername/open-nofx/issues)
- **ドキュメント**: [README.md](README.md)を確認
- **コミュニティ**: Discord/Telegramグループに参加
## 📝 コマンドチートシート
```bash
# 起動
docker compose up -d --build # ビルドして起動
docker compose up -d # 起動(リビルドなし)
# 停止
docker compose stop # サービスを停止
docker compose down # コンテナを停止して削除
docker compose down -v # コンテナとデータを停止して削除
# 表示
docker compose ps # ステータスを表示
docker compose logs -f # ログを表示
docker compose top # プロセスを表示
# 再起動
docker compose restart # すべてのサービスを再起動
docker compose restart backend # バックエンドを再起動
# 更新
git pull && docker compose up -d --build
# クリーン
docker compose down -v # すべてのデータをクリア
docker system prune -a # Dockerリソースをクリーン
```
---
🎉 おめでとうございます!NOFX AIトレーディング競争システムのデプロイに成功しました!
問題が発生した場合は、[トラブルシューティング](#-トラブルシューティング)セクションを確認するか、Issueを提出してください。
+1343
View File
File diff suppressed because it is too large Load Diff
+1
View File
@@ -320,6 +320,7 @@ docker compose up -d --build
- **Русский**: См. документацию Docker (скоро будет доступно) - **Русский**: См. документацию Docker (скоро будет доступно)
- **English**: See [DOCKER_DEPLOY.en.md](DOCKER_DEPLOY.en.md) - **English**: See [DOCKER_DEPLOY.en.md](DOCKER_DEPLOY.en.md)
- **中文**: 查看 [DOCKER_DEPLOY.md](DOCKER_DEPLOY.md) - **中文**: 查看 [DOCKER_DEPLOY.md](DOCKER_DEPLOY.md)
- **日本語**: [DOCKER_DEPLOY.ja.md](DOCKER_DEPLOY.ja.md)を参照
--- ---
+1
View File
@@ -323,6 +323,7 @@ docker compose up -d --build
- **Українська**: Дивіться документацію Docker (скоро буде доступно) - **Українська**: Дивіться документацію Docker (скоро буде доступно)
- **English**: See [DOCKER_DEPLOY.en.md](DOCKER_DEPLOY.en.md) - **English**: See [DOCKER_DEPLOY.en.md](DOCKER_DEPLOY.en.md)
- **中文**: 查看 [DOCKER_DEPLOY.md](DOCKER_DEPLOY.md) - **中文**: 查看 [DOCKER_DEPLOY.md](DOCKER_DEPLOY.md)
- **日本語**: [DOCKER_DEPLOY.ja.md](DOCKER_DEPLOY.ja.md)を参照
--- ---
+1
View File
@@ -319,6 +319,7 @@ docker compose up -d --build
**📖 详细的Docker部署教程、故障排查和高级配置:** **📖 详细的Docker部署教程、故障排查和高级配置:**
- **中文**: 查看 [DOCKER_DEPLOY.md](DOCKER_DEPLOY.md) - **中文**: 查看 [DOCKER_DEPLOY.md](DOCKER_DEPLOY.md)
- **English**: See [DOCKER_DEPLOY.en.md](DOCKER_DEPLOY.en.md) - **English**: See [DOCKER_DEPLOY.en.md](DOCKER_DEPLOY.en.md)
- **日本語**: [DOCKER_DEPLOY.ja.md](DOCKER_DEPLOY.ja.md)を参照
--- ---