操作
バグ #583
未完了[子3] VPS-rootデプロイ実装
ステータス:
新規
優先度:
高め
担当者:
-
開始日:
2025-06-18
期日:
進捗率:
0%
予定工数:
説明
子チケット3: VPS-rootデプロイ実装¶
作業目的¶
機材予約システムをrental.call2arm.comドメインでVPS-root環境に安全にデプロイ
デプロイ作業内容¶
1. 環境準備¶
ディレクトリ構成作成
/root/projects/rental-system/
├── app/ # アプリケーション本体
├── docker/ # Docker設定
├── nginx/ # nginx設定
├── data/ # データベース・ログ
├── backup/ # バックアップ
└── docs/ # ドキュメント
必要パッケージインストール
- Docker最新版確認・更新
- Node.js 18.x環境確認
- SSL証明書更新(wildcard対応)
2. Dockerコンテナ設定¶
docker-compose.yml作成
- rental-app: Node.js アプリケーション
- rental-db: SQLite データファイル管理
- 既存proxy-networkへの接続
- ボリュームマウント設定
Dockerfile作成
- Node.js 18-alpine ベース
- アプリケーション依存関係インストール
- 本番環境最適化設定
- ヘルスチェック設定
3. nginx設定¶
rental.call2arm.com.conf作成
server {
listen 443 ssl;
server_name rental.call2arm.com;
# SSL設定(wildcard証明書使用)
ssl_certificate /etc/letsencrypt/live/call2arm.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/call2arm.com/privkey.pem;
# リバースプロキシ設定
location / {
proxy_pass http://rental-app:3000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
# API専用設定
location /api/ {
proxy_pass http://rental-app:3000;
proxy_set_header Content-Type application/json;
}
# 静的ファイル設定
location /static/ {
expires 30d;
add_header Cache-Control "public, immutable";
}
}
4. アプリケーション設定¶
環境変数設定(.env.production)
NODE_ENV=production
PORT=3000
APP_URL=https://rental.call2arm.com
# データベース
DB_PATH=/app/data/rental_system.db
# JWT設定
JWT_SECRET=<生成された秘密鍵>
JWT_EXPIRES_IN=24h
# LINE WORKS設定
LINEWORKS_CLIENT_ID=<実際のクライアントID>
LINEWORKS_CLIENT_SECRET=<実際のシークレット>
LINEWORKS_REDIRECT_URI=https://rental.call2arm.com/auth/callback
# セキュリティ設定
ALLOWED_IPS=192.168.0.0/16,10.0.0.0/8
SESSION_SECRET=<生成されたセッション秘密鍵>
# ログ設定
LOG_LEVEL=info
LOG_FILE=/app/logs/application.log
5. データベース初期化¶
SQLiteデータベース作成
- スキーマ作成(全テーブル・インデックス)
- 初期データ投入(カテゴリ・サンプル機材)
- 管理者ユーザー作成
- Bot設定データ投入
データ移行準備
- 既存データのインポート機能
- データ整合性チェック
- バックアップ・復旧手順
6. SSL・セキュリティ設定¶
証明書設定
- wildcard証明書の有効性確認
- 自動更新設定確認
- HTTPS強制リダイレクト
セキュリティ設定
- ファイアウォール設定確認
- IP制限設定(社内ネットワークのみ)
- セキュリティヘッダー設定
7. 監視・ログ設定¶
システム監視
- Docker Health Check設定
- アプリケーションメトリクス
- リソース使用量監視
ログ管理
- アプリケーションログ
- アクセスログ
- エラーログ
- ログローテーション設定
デプロイ手順¶
Phase 1: ステージング環境¶
- staging-rental.call2arm.com でのテストデプロイ
- 全機能動作確認
- 負荷試験・セキュリティ試験実施
- 問題修正・再試験
Phase 2: 本番環境準備¶
- 本番用設定ファイル準備
- データベース本番データ準備
- LINE WORKS本番アプリ設定
- 監視・アラート設定
Phase 3: 本番デプロイ¶
- メンテナンス画面表示(必要に応じて)
- アプリケーションデプロイ
- nginx設定適用・リロード
- 動作確認・ヘルスチェック
- 運用開始宣言
ロールバック計画¶
緊急時対応
- nginx設定無効化(1分以内)
- Dockerコンテナ停止(30秒以内)
- DNS設定変更(5分以内)
- 障害通知・報告
成果物¶
- 稼働中のrental.call2arm.com
- Docker環境一式
- nginx設定ファイル
- 運用手順書
- 監視・アラート設定
作業時間¶
16時間 (2営業日)
前提条件¶
- 仕様書・試験計画の完成
- VPS-root環境への管理者アクセス
- LINE WORKS管理者権限
- DNS設定権限
完了条件¶
- rental.call2arm.com での正常アクセス確認
- 全主要機能の動作確認
- SSL/TLS正常動作確認
- 監視システム正常動作確認
- 運用チームへの引き継ぎ完了
Redmine Admin さんが1日前に更新
親チケット#580「機材予約システム VPS-root デプロイプロジェクト」の子チケットとして設定。
作業順序: 子チケット3/5 - VPS-rootデプロイ実装フェーズ
子チケット2(試験計画策定)完了後に開始予定。
操作