Docker デプロイメントガイド
GEO Wiki Pro の商用ライセンスを取得したお客様向け。本番環境の標準 Docker デプロイ手順。
> ⚠️ **ライセンス取得済みのお客様専用**
>
> 本ドキュメントは **GEO Wiki Pro の商用ライセンスを購入済みのお客様**向けです。まだ購入されていない場合は、まず営業担当までご連絡ください:
>
> 📧 [[email protected]](mailto:[email protected])
>
> ご購入後、以下のものが提供されます:完全なソースコードパッケージ、デプロイメントドキュメント、技術サポート、バージョンアップグレード、カスタム開発。
---
## 📋 前提条件
デプロイを開始する前に、サーバーが以下の要件を満たしていることを確認してください:
| 要件 | 最小 | 推奨 |
|------|----------|----------|
| OS | Linux (Ubuntu 22.04+ / CentOS 8+ / Debian 11+) | Ubuntu 22.04 LTS |
| Docker | 20.10+ | 24.0+ |
| Docker Compose | v2.0+ | v2.20+ |
| CPU | 1 コア | 2 コア+ |
| メモリ | 1GB | 2GB+ |
| ディスク容量 | 500MB | 5GB+(バックアップ含む)|
| 帯域幅 | 1 Mbps | 5 Mbps+(アクセス量による)|
> 💡 サーバー選定のアドバイスやクラウドプロバイダーの割引については、[[email protected]](mailto:[email protected]) までお問い合わせください。
---
## 🚀 クイックデプロイ(4 ステップ)
### ステップ 1:ソースパッケージのアップロードと解凍
ご購入後に受け取ったソースパッケージをサーバーにアップロードし(SFTP または scp を使用)、解凍します:
```bash
# プロジェクトディレクトリの作成
sudo mkdir -p /opt/geowiki-pro
sudo chown $USER:$USER /opt/geowiki-pro
# ソースパッケージをアップロードした後、解凍
cd /opt/geowiki-pro
tar -xzf geowiki-pro-source.tar.gz
# 解凍結果の確認
ls -la
```
### ステップ 2:環境変数の設定
```bash
# 環境変数テンプレートのコピー
cp .env.example .env
# .env を編集(必須項目)
nano .env
```
**必須設定**:
```bash
# JWT シークレット(少なくとも 32 文字、openssl で生成推奨)
JWT_SECRET=<your-secure-random-secret>
# サービスポート(デフォルト 3002、必要に応じて変更)
PORT=3002
# データディレクトリ(絶対パスを使用)
DATA_DIR=/opt/geowiki-pro/data
```
**安全な JWT シークレットの生成**:
```bash
openssl rand -base64 48
```
### ステップ 3:サービスの起動
```bash
# 全サービスを起動(バックグラウンド)
docker-compose up -d
# ステータスの確認
docker-compose ps
# リアルタイムログの表示
docker-compose logs -f
```
### ステップ 4:デプロイの確認
```bash
# API ヘルスチェック
curl https://your-domain.com/api/v1/health
# 管理画面にアクセス
# ブラウザで開く:https://your-domain.com/admin
# デフォルトアカウント:admin(初回ログイン時にパスワード変更が必要)
```
> ✅ ヘルスチェックが `{"success": true}` を返せば、デプロイ成功です!
---
## 🏗️ アーキテクチャ
### サービス構成
| サービス | ポート | 説明 |
|------|------|------|
| Web フロントエンド | 3002 | React SPA、ドキュメント表示 |
| API サービス | 3002(同)| Node.js バックエンド、REST API |
| データストレージ | - | ファイルシステム(data/docs/, data/db.json)|
運用を簡素化するため、シングルコンテナでデプロイされます。
---
## ⚙️ 詳細設定
### カスタムポート
デフォルトポート(3002)を変更するには、`.env` を編集:
```bash
PORT=8080
```
`docker-compose.yml` のポートマッピングも更新:
```yaml
ports:
- "8080:3002" # 外部:内部
```
### データディレクトリのマウント
データセキュリティとバックアップの容易性のため、データディレクトリをホストにマウント:
```yaml
volumes:
- ./data:/app/data
- ./public/media:/app/public/media
- ./logs:/app/logs
```
### HTTPS の設定(推奨)
本番環境では HTTPS を強く推奨します。2 つのオプション:
**オプション A:Nginx リバースプロキシ + Let's Encrypt**
```nginx
server {
listen 443 ssl http2;
server_name geowiki.pro;
ssl_certificate /path/to/cert.pem;
ssl_certificate_key /path/to/key.pem;
location / {
proxy_pass http://localhost:3002;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
```
**オプション B:Cloudflare リバースプロキシ**(ゼロコンフィグ SSL)
ドメインの DNS を Cloudflare に向かせ、プロキシモードを有効化します。
---
## 🔒 セキュリティ設定
### 初回ログイン
1. デフォルトアカウント `admin` でログイン
2. **システムがパスワード変更を強制します**(最低 8 文字)
3. 管理画面でデフォルトの管理者メールを直ちに更新
### 環境変数のセキュリティ
```bash
# .env ファイルのパーミッション設定(所有者のみ読み書き可)
chmod 600 .env
# .env を Git にコミットしない
echo ".env" >> .gitignore
```
### JWT シークレットの定期ローテーション
90 日ごとに JWT シークレットをローテーションすることを推奨します。ライセンス取得済みのお客様は、技術サポートまでお問い合わせください。
---
## 🐛 トラブルシューティング
### コンテナ起動失敗
```bash
# 詳細ログの確認
docker-compose logs api
# 一般的な原因:
# 1. .env に JWT_SECRET が未設定(最低 32 文字必須)
# 2. ポート使用中:lsof -i :3002
# 3. Docker 権限不足:sudo usermod -aG docker $USER
```
### データバックアップ
```bash
# 手動バックアップ(cron での定期実行推奨)
tar -czf backup-$(date +%Y%m%d).tar.gz data/
# ライセンス取得済みのお客様:技術サポートまで自動バックアップソリューションについてお問い合わせください
```
### バージョンアップグレード
```bash
# 1. 現在のサービスを停止
docker-compose down
# 2. データをバックアップ(重要!)
tar -czf backup-before-upgrade.tar.gz data/
# 3. 新しいソースパッケージを解凍
tar -xzf geowiki-pro-vNEW.tar.gz
# 4. 新バージョンを起動
docker-compose up -d
# 5. 確認
curl https://your-domain.com/api/v1/health
```
> 💡 ライセンス取得済みのお客様は、[[email protected]](mailto:[email protected]) までアップグレードガイドと互換性情報をお問い合わせください。
---
## 📊 監視とメンテナンス
### ヘルスチェック
```bash
# API ヘルスチェック
curl https://your-domain.com/api/v1/health
# Docker コンテナステータス
docker-compose ps
```
### ログ表示
```bash
# リアルタイムログ
docker-compose logs -f
# 最後の 100 行
docker-compose logs --tail=100
```
### パフォーマンス監視
推奨ツール:
- **UptimeRobot**(無料):HTTP ヘルスチェック + ダウンタイムアラート
- **Prometheus + Grafana**(上級者向け):完全なメトリクス監視
- ライセンス取得済みのお客様:技術サポートまでカスタム監視ソリューションについてお問い合わせください
---
## 🆘 テクニカルサポート
### ライセンス取得済みのお客様向けサポート
- 📧 **メール**:[[email protected]](mailto:[email protected])
- 📞 **電話**:(ライセンス取得済みのお客様のみ)
- 💬 **WeChat グループ**:(ご購入後招待)
- 🕐 **応答時間**:営業日 4 時間以内に初回応答
### セルフサービスリソース
- 📖 [ユーザーマニュアル](/docs/geo-wiki-pro-user-manual)
- ❓ [FAQ](/docs/faq)
- 🛠️ [CLI ツール](/docs/cli-reference)
---
## 📚 次のステップ
デプロイ完了後、以下を推奨します:
1. **HTTPS の設定**(セキュリティ要件)
2. **自動バックアップの設定**(データ安全性)
3. **監視アラートの設定**(可用性)
4. **ライセンス取得済みのお客様 WeChat グループへの参加**(サポート + バージョン更新通知)
5. **ユーザーマニュアルを読む**([User Manual](/docs/geo-wiki-pro-user-manual))
GEO Wiki Pro へようこそ!ご質問がございましたら、営業チームまでお問い合わせください 🎉