このプロジェクトについて

## プロジェクトの位置づけ 萌芽(Mengya)は、母婴健康・育児コンテンツプラットフォームのローカル従来型直接デプロイ工程であり、開発者のローカルデバッグ、ソースコードのホットリロード開発、およびDocker環境のない軽量ホストへのデプロイを対象としています。リポジトリにはDocker版の兄弟プロジェクトも用意されています。 ## アーキテクチャの特徴 - **モノリシック一体型ホスティング**:フロントエンドの本番ビルド成果物をDjangoのtemplatesおよびstaticディレクトリに統合し、単一のPythonプロセスでSPAページ、静的リソース、バックエンドAPIを統一的にホスティングします。実行環境にNode.jsの常駐サービスは不要です。 - **データストレージ**:ローカルSQLite3(backend/db.sqlite3)、自動マイグレーションに対応。 - **技術スタック**:Python 3.10+、Django + DRF、React + Vite(フロントエンドを二次開発する場合のみNode.js 18+が必要)。 - **セキュリティ分離**:フロントエンドとバックエンドはループバックアドレスにバインドし、外部アクセスはNginxリバースプロキシを経由します。SNIにより443ポートでホストマシンの他のHTTPSサイトと共存可能で、SAN拡張を含む自己署名証明書を自動生成し、80から443へのリダイレクトを内蔵します。 ## 運用スクリプト run.sh start / restart / stop / status / add_nginx / init_data / help などのコマンドを提供し、コマンドライン引数でポート、管理者アカウントのユーザー名・パスワード・ニックネーム、SNIドメインをカスタマイズでき、自動的に.envに書き込みます。起動前にキャッシュと.gitの冗長オブジェクトを自動クリーンアップし、.envが存在しない場合はテンプレートから自己修復的に初期化します。 ## 機能モジュール - **管理者アカウント管理**:起動時にensure_adminを実行し、単一管理者のライフサイクルを保証し、過去の管理者アカウントを自動クリーンアップし、一般登録ユーザーのデータは保持します。 - **ログインセキュリティリスク管理**:パスワードおよび秘密の質問の誤り回数、ロックカウントダウン、画像認証コード、パスワード找回の試行回数制限。管理者アカウントは凍結されず、待機と認証コードのみがトリガーされます。 - **権限管理マトリクス**:6大モジュールにわたる計31項目の細粒度権限(ページメニューとCRUD操作)をカバーし、グローバルデフォルトとユーザー単位のカスタマイズに対応、親子権限の再帰的連動、管理者は無効化不可の最高権限を持ちます。 - **コンテンツと業務**:妊娠週暦、胎教ストーリー、妊娠レシピ、幼児百科、出産準備リスト、商品ライブラリとブランド、商品お気に入り、購入チャネルリンク。 - **AIアシスタント**:個人または管理者から継承したAPI Keyの設定と接続テストに対応し、マルチエンジンのネット検索フェイルオーバー(DuckDuckGo、Google、Bing、360、搜狗、百度、雅虎)、タイムアウト時はローカル知識ベースに降格し、回答には情報ソースを明記します。 - **赤ちゃんプロフィール**:未出生(予定日、胎名)と出生済み(誕生日、体重)の2モードに対応し、妊娠・育児段階と双方向同期、大きな赤ちゃんの月齢は「X歳Xヶ月」で表示します。 - **監査ログ**:認証、ユーザー管理、段階変更、商品、お気に入り、健康、出産準備リスト、AI問答などの行為をカバーし、フィルタリングとCSVエクスポートに対応します。 ## ディレクトリ構造 backend(Django工程、apps、config、db.sqlite3、requirements.txt)、frontend(Vite + Reactソースコード)、logs(ログとPID)、.env、run.sh。 ## 適用シーン スタンドアロンまたは軽量サーバー上で最小限の依存関係で母婴コンテンツプラットフォームを運用し、細粒度の権限とセキュリティリスク管理能力を必要とするデプロイヤーに適しています。