# インストール トラブルシューティングのヒント付きの9Router詳細インストールガイド。 --- ## 要件 ### システム要件 - **Node.js**: バージョン 20.0.0以上 - **npm**: バージョン 10.0.0以上 (Node.jsに付属) - **OS**: macOS、Linux、Windows (WSL推奨) - **ディスク容量**: インストールに約200MB ### バージョンを確認 ```bash node --version # v20.x.x以上が表示されるはず npm --version # 10.x.x以上が表示されるはず ``` **Node.jsがない場合?** [nodejs.org](https://nodejs.org/)からインストール --- ## インストール方法 ### 方法1: グローバルインストール (推奨) どこからでも使用できるように9Routerをグローバルインストール: ```bash npm install -g 9router ``` **9Routerを起動:** ```bash 9router ``` **利点:** - ✅ どのディレクトリからでも実行 - ✅ シンプルなコマンド: `9router` - ✅ `npm update -g 9router` で自動更新 ### 方法2: ローカルインストール 特定のプロジェクトにインストール: ```bash mkdir my-9router cd my-9router npm install 9router ``` **9Routerを起動:** ```bash npx 9router ``` **利点:** - ✅ プロジェクトごとに分離 - ✅ プロジェクトごとのバージョン管理 - ✅ グローバル名前空間の汚染なし ### 方法3: ソースから (開発) GitHubからクローンしてビルド: ```bash git clone https://github.com/decolua/9router.git cd 9router/app npm install npm run build npm start ``` **利点:** - ✅ 最新の開発機能 - ✅ 開発に貢献可能 - ✅ カスタム変更 --- ## 初回実行 ### サーバーを起動 ```bash 9router ``` **何が起こるか:** 1. サーバーが `http://localhost:20128` で起動 2. ダッシュボードが自動的にブラウザで開く 3. `~/.9router` にデータディレクトリが作成される 4. APIキーが自動生成される ### ダッシュボードログイン **デフォルト認証情報:** - パスワード: `123456` **⚠️ パスワードをすぐに変更:** 1. ダッシュボードにログイン 2. Settings → Change Password 3. 強力なパスワードを使用 ### APIキーを取得 ``` Dashboard → Settings → API Keys → APIキーをコピー → CLIツールで使用 ``` **APIキー形式の例:** ``` 9r_1234567890abcdef1234567890abcdef ``` --- ## インストールを確認 ### サーバーステータスを確認 ```bash curl http://localhost:20128/health ``` **期待されるレスポンス:** ```json { "status": "ok", "version": "1.0.0" } ``` ### 利用可能なモデルを一覧表示 ```bash curl http://localhost:20128/v1/models \ -H "Authorization: Bearer your-api-key" ``` **期待されるレスポンス:** ```json { "object": "list", "data": [ { "id": "cc/claude-opus-4-5-20251101", "object": "model", "created": 1234567890, "owned_by": "claude-code" } ] } ``` ### チャットコンプリーションをテスト ```bash curl http://localhost:20128/v1/chat/completions \ -H "Authorization: Bearer your-api-key" \ -H "Content-Type: application/json" \ -d '{ "model": "cc/claude-opus-4-5-20251101", "messages": [ {"role": "user", "content": "Hello!"} ] }' ``` --- ## 設定 ### 環境変数 `.env` ファイルを作成するか、環境変数を設定: ```bash # セキュリティ (本番環境では必須) export JWT_SECRET="your-secure-secret-change-this" export INITIAL_PASSWORD="your-password" # ストレージ export DATA_DIR="~/.9router" # サーバー export PORT="20128" export NODE_ENV="production" # ロギング export ENABLE_REQUEST_LOGS="false" ``` ### データディレクトリ **デフォルトの場所:** `~/.9router` **内容:** ``` ~/.9router/ ├── db.json # データベース (プロバイダー、コンボ、使用量) ├── api-keys.json # APIキー └── logs/ # リクエストログ (有効化されている場合) ``` **場所を変更:** ```bash export DATA_DIR="/custom/path" 9router ``` ### ポート設定 **デフォルトポート:** `20128` **ポートを変更:** ```bash export PORT="3000" 9router ``` **またはコマンドラインで:** ```bash 9router --port 3000 ``` --- ## トラブルシューティング ### ポートがすでに使用されている **エラー:** ``` Error: listen EADDRINUSE: address already in use :::20128 ``` **解決策1: 既存のプロセスを終了** ```bash # ポート20128を使用しているプロセスを検索 lsof -i :20128 # プロセスを終了 kill -9 ``` **解決策2: 別のポートを使用** ```bash 9router --port 3000 ``` ### Permission Denied **エラー:** ``` Error: EACCES: permission denied, mkdir '/usr/local/lib/node_modules/9router' ``` **解決策: sudoを使用 (非推奨) またはnpm権限を修正** ```bash # npm権限を修正 (推奨) mkdir ~/.npm-global npm config set prefix '~/.npm-global' echo 'export PATH=~/.npm-global/bin:$PATH' >> ~/.bashrc source ~/.bashrc # 再度インストール npm install -g 9router ``` ### Node.jsバージョンが古すぎる **エラー:** ``` Error: The engine "node" is incompatible with this module ``` **解決策: Node.jsを更新** ```bash # nvmを使用 (推奨) nvm install 20 nvm use 20 # またはnodejs.orgからダウンロード ``` ### ダッシュボードが開かない **問題:** ダッシュボードが自動的に開かない **解決策1: 手動で開く** ``` http://localhost:20128 ``` **解決策2: ファイアウォールを確認** ```bash # macOS: システム環境設定 → セキュリティでNode.jsを許可 # Linux: iptablesを確認 # Windows: Windowsファイアウォールを確認 ``` ### プロバイダーに接続できない **問題:** OAuthログインが失敗、またはAPIキーが無効 **解決策1: インターネット接続を確認** ```bash ping google.com ``` **解決策2: プロバイダーのステータスを確認** - Claude Code: [status.anthropic.com](https://status.anthropic.com) - OpenAI: [status.openai.com](https://status.openai.com) - Gemini: [status.cloud.google.com](https://status.cloud.google.com) **解決策3: APIキーを再生成** ``` Dashboard → Provider → Disconnect → Reconnect ``` ### 高メモリ使用量 **問題:** 9RouterがRAMを使いすぎている **解決策: サーバーを再起動** ```bash # 停止 pkill -f 9router # 起動 9router ``` **または自動再起動にPM2を使用:** ```bash npm install -g pm2 pm2 start 9router --name 9router pm2 save ``` --- ## デプロイメントオプション ### ローカル開発 ```bash npm install -g 9router 9router ``` **ユースケース:** 個人コーディング、テスト ### VPS/クラウドサーバー ```bash # インストール npm install -g 9router # 設定 export JWT_SECRET="your-secure-secret" export INITIAL_PASSWORD="your-password" export NODE_ENV="production" # PM2で起動 npm install -g pm2 pm2 start 9router --name 9router pm2 save pm2 startup ``` **ユースケース:** チームアクセス、リモートコーディング ### Docker ```bash docker pull 9router/9router:latest docker run -d \ -p 20128:20128 \ -e JWT_SECRET="your-secure-secret" \ -e INITIAL_PASSWORD="your-password" \ -v 9router-data:/root/.9router \ --name 9router \ 9router/9router:latest ``` **ユースケース:** コンテナデプロイ、Kubernetes ### リバースプロキシ (Nginx) ```nginx server { listen 80; server_name your-domain.com; location / { proxy_pass http://localhost:20128; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection 'upgrade'; proxy_set_header Host $host; # SSE support for streaming proxy_buffering off; proxy_read_timeout 86400; } } ``` **ユースケース:** HTTPS、カスタムドメイン、ロードバランシング --- ## アンインストール ### グローバルインストールを削除 ```bash npm uninstall -g 9router ``` ### データディレクトリを削除 ```bash rm -rf ~/.9router ``` ### 設定を削除 ```bash # シェル設定から環境変数を削除 nano ~/.bashrc # または ~/.zshrc # 9router関連のエクスポートを削除 ``` --- ## 次のステップ - [スタートガイド](../getting-started.md) - プロバイダーを接続してコーディング開始 - [機能](../features/) - クォータトラッキング、コンボ、デプロイを確認 - [トラブルシューティング](../troubleshooting.md) - 一般的な問題の修正 --- ## ヘルプが必要? - **ウェブサイト**: [9router.com](https://9router.com) - **GitHub**: [github.com/decolua/9router](https://github.com/decolua/9router) - **Issues**: [github.com/decolua/9router/issues](https://github.com/decolua/9router/issues)