Docker デプロイガイド

Docker を使用して GEO Wiki Pro をローカルまたはサーバーにクイックデプロイする完全ガイド

# Docker デプロイガイド > Docker で GEO Wiki Pro をワンクリックデプロイ、ローカル開発とサーバー本番環境をサポート --- ## 📋 前提条件 | 条件 | 最低要件 | |------|---------| | オペレーティングシステム | Linux / macOS / Windows (WSL2) | | Docker | 20.10+ | | Docker Compose | v2.0+ | | メモリ | 1GB+ | | ディスク容量 | 500MB+ | --- ## 🚀 クイックデプロイ(3 ステップ) ### ステップ 1:プロジェクトのクローン ```bash git clone https://github.com/your-org/geo-wiki-pro.git cd geo-wiki-pro ``` ### ステップ 2:環境変数の設定 ```bash cp .env.example .env ``` `.env` ファイルを編集し、必須パラメータを設定: ```env # 必須:JWT シークレット(少なくとも 32 文字) JWT_SECRET=your-super-secret-key-here # オプション設定 PORT=3002 CORS_ORIGINS=http://localhost:3000 RATE_LIMIT_WINDOW_MS=60000 RATE_LIMIT_MAX_REQUESTS=300 ``` ::: warning 必ず強力なランダムな `JWT_SECRET` を設定してください。本番環境ではデフォルト値を使用しないでください。 ::: ### ステップ 3:サービスの起動 ```bash docker compose up -d ``` サービスステータスの確認: ```bash curl http://localhost:3002/api/v1/health ``` 期待される出力: ```json { "status": "ok", "version": "2.9.0" } ``` --- ## 🏗️ アーキテクチャ概述 GEO Wiki Pro はフロントエンド・バックエンド分離アーキテクチャを採用: ``` ┌─────────────────┐ ┌─────────────────┐ │ Nginx │────▶│ Express.js │ │ (静的フロントエンド) │ (API バックエンド) │ │ ポート: 80/443 │ │ ポート: 3002 │ └─────────────────┘ └─────────────────┘ │ ▼ ┌─────────────┐ │ ファイルシステム │ │ data/ │ │ public/ │ └─────────────┘ ``` ### サービスコンポーネント | コンポーネント | 説明 | ポート | |---------------|------|--------| | Nginx | リバースプロキシ + 静的ファイル配信 | 80/443 | | Express.js | API サーバー | 3002 | | ファイルストレージ | Markdown ドキュメント + メディアファイル | - | --- ## ⚙️ 高度な設定 ### カスタムポート `docker-compose.yml` のポートマッピングを変更: ```yaml services: api: ports: - "8080:3002" # 外部ポート:内部ポート ``` ### データディレクトリのマウント ホストマシンにデータを永続化: ```yaml services: api: volumes: - ./data:/app/data - ./public/media:/app/public/media ``` ### HTTPS の設定 本番環境では、リバースプロキシを使用して HTTPS を設定することを推奨: ```nginx server { listen 443 ssl; server_name wiki.example.com; ssl_certificate /etc/ssl/certs/wiki.example.com.pem; ssl_certificate_key /etc/ssl/private/wiki.example.com.key; location / { proxy_pass http://localhost: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; } } ``` --- ## 🔒 セキュリティ設定 ### 初回ログイン デプロイ後、システムは管理者アカウントを自動作成: 1. `http://your-server:3002/login` にアクセス 2. デフォルトの管理者資格情報でログイン 3. **すぐにデフォルトパスワードを変更** ### 環境変数セキュリティ | 変数 | 説明 | セキュリティ推奨事項 | |------|------|---------------------| | `JWT_SECRET` | JWT 署名シークレット | `openssl rand -base64 32` で生成 | | `CORS_ORIGINS` | 許可された CORS オリジン | 本番環境では実際のドメインに制限 | | `RATE_LIMIT_*` | レート制限設定 | 予想されるトラフィック量に基づいて調整 | ::: danger `.env` ファイルをバージョン管理システム(Git)にコミットしないでください。`.gitignore` に `.env` が含まれていることを確認してください。 ::: --- ## 🐛 よくある問題 ### コンテナの起動失敗 ```bash # ログを確認 docker compose logs api # よくある原因: # 1. .env ファイルに JWT_SECRET が設定されていない # 2. ポートが使用中 # 3. Docker の権限不足 ``` ### データの永続化 ```bash # データディレクトリを確認 ls -la data/ # データをバックアップ tar -czf backup-$(date +%Y%m%d).tar.gz data/ public/media/ ``` ### バージョンの更新 ```bash # 最新コードをプル git pull origin main # 再ビルドして起動 docker compose down docker compose build --no-cache api docker compose up -d ``` --- ## 📊 監視とメンテナンス ### ヘルスチェック ```bash # API ヘルスステータス curl http://localhost:3002/api/v1/health # Docker コンテナステータス docker compose ps ``` ### ログ表示 ```bash # リアルタイムログ docker compose logs -f api # 最新 100 行のログ docker compose logs --tail 100 api ``` --- ## 📚 次のステップ - [最初のナレッジベースを作成](/docs/first-knowledge-base) — ゼロから製品ナレッジベースを構築 - [クイックスタートガイド](/docs/quick-start) — 5 分で製品開発を開始 - [FAQ](/docs/faq) — よくある質問 --- *最終更新: 2026-05-26 | バージョン: v2.9.0*