バオタパネルデプロイガイド

GEO Wiki Pro バオタパネル完全デプロイガイド、パネルのインストールから Nginx リバースプロキシの設定まで、トラブルシューティング情報を含む

# バオタパネルデプロイガイド > GEO Wiki Pro バオタパネル完全デプロイガイド、パネルのインストールから Nginx リバースプロキシの設定まで、トラブルシューティング情報を含む --- ## 概要 バオタパネルは中国で広く使われているサーバー管理ツールで、ウェブサイト、データベース、SSL 証明書などのグラフィカルインターフェース管理を提供します。この記事では、バオタパネルで GEO Wiki Pro をデプロイする方法を説明します。 --- ## 前提条件 | 条件 | 説明 | |------|------| | サーバー | Linux サーバー(推奨 Ubuntu 20.04+ / CentOS 7+) | | バオタパネル | バオタパネルがインストール済み | | Node.js | v18 以上 | | PM2 | プロセス管理用 | --- ## ステップ 1:Node.js のインストール バオタパネルの **ソフトウェアストア** → **Node.js バージョンマネージャー** から Node.js 18+ をインストール。 またはコマンドラインを使用: ```bash # Node.js 18 をインストール curl -fsSL https://deb.nodesource.com/setup_18.x | sudo -E bash - sudo apt-get install -y nodejs # インストール確認 node -v # v18.x.x と表示されるはず npm -v # 9.x.x と表示されるはず ``` --- ## ステップ 2:コードのアップロード 1. バオタパネルでウェブサイトディレクトリを作成:`/www/wwwroot/geowiki` 2. GEO Wiki Pro コードをそのディレクトリにアップロード 3. コードファイルを展開 ```bash cd /www/wwwroot/geowiki npm install --production ``` --- ## ステップ 3:環境変数の設定 `.env` ファイルを作成: ```bash cat > .env << 'EOF' NODE_ENV=production PORT=3002 JWT_SECRET=your-secret-key-here-min-32-chars BASE_URL=https://your-domain.com EOF ``` ::: warning `JWT_SECRET` は必ず設定し、少なくとも 32 文字以上にしてください。本番環境ではランダムに生成された強力なシークレットを使用してください。 ::: --- ## ステップ 4:サービスの起動 PM2 を使用してプロセスを管理: ```bash # PM2 をインストール npm install -g pm2 # サービスを起動 pm2 start server/index.js --name geo-wiki # 起動時自動起動を設定 pm2 save pm2 startup ``` サービスの動作確認: ```bash pm2 status curl http://localhost:3002/api/v1/health ``` --- ## ステップ 5:Nginx リバースプロキシの設定 バオタパネル → **ウェブサイト** → **設定** → **リバースプロキシ**: | 設定項目 | 値 | |---------|-----| | プロキシ名 | geowiki | | ターゲット URL | http://127.0.0.1:3002 | | 送信ドメイン | $host | または手動で Nginx 設定を編集: ```nginx server { listen 80; server_name your-domain.com; location / { proxy_pass http://127.0.0.1:3002; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; } } ``` --- ## ステップ 6:SSL 証明書の設定 バオタパネル → **ウェブサイト** → **SSL** → 無料の Let's Encrypt 証明書を申請。 --- ## トラブルシューティング ### 1. PM2 起動後すぐに終了する **原因**: Node.js バージョンの非互換性または依存関係の不足。 **解決策**: ```bash # ログを確認 pm2 logs geo-wiki # Node.js バージョンが >= 18 であることを確認 node -v # 依存関係を再インストール npm install --production ``` ### 2. Nginx 502 Bad Gateway **原因**: Node.js サービスが起動していないか、ポートが一致しない。 **解決策**: ```bash # サービスが実行中か確認 pm2 status # ポートが正しいか確認 netstat -tlnp | grep 3002 ``` ### 3. ファイルアップロード失敗 **原因**: Nginx のアップロードサイズ制限。 **解決策**: Nginx 設定に追加: ```nginx client_max_body_size 50M; ``` ### 4. Cookie / ログイン問題 **原因**: Nginx が Cookie を正しく転送していない。 **解決策**: `proxy_set_header Host $host;` が設定されていることを確認。 ### 5. 静的ファイル 404 **原因**: Nginx が静的ファイルパスを優先的にマッチングしている。 **解決策**: SPA フォールバック設定が正しいことを確認: ```nginx location / { proxy_pass http://127.0.0.1:3002; try_files $uri $uri/ /index.html; } ``` ### 6. HSTS による SSL エラー **原因**: Helmet がデフォルトで HSTS を有効にしており、HTTP 環境でブラウザが HTTPS に強制アップグレードする。 **解決策**: SSL を使用していない場合は `.env` で `ENABLE_HSTS=false` を設定。 --- ## よく使うコマンド ```bash # ステータス確認 pm2 status # ログ表示 pm2 logs geo-wiki # サービス再起動 pm2 restart geo-wiki # サービス停止 pm2 stop geo-wiki # サービス削除 pm2 delete geo-wiki ``` --- ## 関連ドキュメント - [Docker デプロイガイド](/docs/docker-deployment) - [5 分クイックスタート](/docs/quick-start) - [セキュリティメカニズム](/docs/security)