バオタパネルデプロイガイド
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)