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 へようこそ!ご質問がございましたら、営業チームまでお問い合わせください 🎉