[{"data":1,"prerenderedAt":493},["ShallowReactive",2],{"navigation":3,"doc-/infra-and-deploy/environments":217,"docs-all-paths":438},[4,19,39,63,87,111,127,195,211],{"title":5,"path":6,"stem":7,"children":8},"Welcome","/welcome","01.welcome",[9,11,15],{"title":5,"path":6,"stem":10},"01.welcome/index",{"title":12,"path":13,"stem":14},"Astar とは（5分）","/welcome/product-in-5-min","01.welcome/01.product-in-5-min",{"title":16,"path":17,"stem":18},"事業文脈","/welcome/business-context","01.welcome/02.business-context",{"title":20,"path":21,"stem":22,"children":23},"Getting Started","/getting-started","02.getting-started",[24,27,31,35],{"title":25,"path":21,"stem":26},"はじめかた","02.getting-started/index",{"title":28,"path":29,"stem":30},"リポジトリ取得と環境構築","/getting-started/repo-setup","02.getting-started/01.repo-setup",{"title":32,"path":33,"stem":34},"日々の開発ループ","/getting-started/dev-loop","02.getting-started/02.dev-loop",{"title":36,"path":37,"stem":38},"検証の 4 層","/getting-started/verification-tiers","02.getting-started/03.verification-tiers",{"title":40,"path":41,"stem":42,"children":43},"Architecture","/architecture","03.architecture",[44,47,51,55,59],{"title":45,"path":41,"stem":46},"アーキテクチャ","03.architecture/index",{"title":48,"path":49,"stem":50},"マルチテナンシーと RLS","/architecture/multi-tenancy-rls","03.architecture/01.multi-tenancy-rls",{"title":52,"path":53,"stem":54},"認可モデル","/architecture/authorization","03.architecture/02.authorization",{"title":56,"path":57,"stem":58},"AI サブシステム","/architecture/ai-subsystem","03.architecture/03.ai-subsystem",{"title":60,"path":61,"stem":62},"データモデル","/architecture/data-model","03.architecture/04.data-model",{"title":64,"path":65,"stem":66,"children":67},"Backend","/backend","04.backend",[68,71,75,79,83],{"title":69,"path":65,"stem":70},"バックエンド","04.backend/index",{"title":72,"path":73,"stem":74},"層構造","/backend/layering","04.backend/01.layering",{"title":76,"path":77,"stem":78},"規約","/backend/conventions","04.backend/02.conventions",{"title":80,"path":81,"stem":82},"テスト","/backend/testing","04.backend/03.testing",{"title":84,"path":85,"stem":86},"マイグレーション","/backend/migrations","04.backend/04.migrations",{"title":88,"path":89,"stem":90,"children":91},"Frontend","/frontend","05.frontend",[92,95,99,103,107],{"title":93,"path":89,"stem":94},"フロントエンド","05.frontend/index",{"title":96,"path":97,"stem":98},"モジュール内部構造","/frontend/module-anatomy","05.frontend/01.module-anatomy",{"title":100,"path":101,"stem":102},"API アクセスの一本道","/frontend/api-access-chain","05.frontend/02.api-access-chain",{"title":104,"path":105,"stem":106},"i18n","/frontend/i18n","05.frontend/03.i18n",{"title":108,"path":109,"stem":110},"デザインシステム","/frontend/design-system","05.frontend/04.design-system",{"title":112,"path":113,"stem":114,"children":115},"Go Agent And Cli","/go-agent-and-cli","06.go-agent-and-cli",[116,119,123],{"title":117,"path":113,"stem":118},"Go agent と CLI","06.go-agent-and-cli/index",{"title":120,"path":121,"stem":122},"Go agent","/go-agent-and-cli/go-agent","06.go-agent-and-cli/01.go-agent",{"title":124,"path":125,"stem":126},"CLI","/go-agent-and-cli/cli","06.go-agent-and-cli/02.cli",{"title":128,"path":129,"stem":130,"children":131},"Modules","/modules","07.modules",[132,135,139,143,147,151,155,159,163,167,171,175,179,183,187,191],{"title":133,"path":129,"stem":134},"モジュール","07.modules/index",{"title":136,"path":137,"stem":138},"テーブル","/modules/table","07.modules/01.table",{"title":140,"path":141,"stem":142},"ドキュメントツリー","/modules/document","07.modules/02.document",{"title":144,"path":145,"stem":146},"AIチャット","/modules/ai","07.modules/03.ai",{"title":148,"path":149,"stem":150},"認証・権限","/modules/auth","07.modules/04.auth",{"title":152,"path":153,"stem":154},"AI取込","/modules/organize","07.modules/05.organize",{"title":156,"path":157,"stem":158},"ストレージ","/modules/storage","07.modules/06.storage",{"title":160,"path":161,"stem":162},"NAS同期","/modules/sync","07.modules/07.sync",{"title":164,"path":165,"stem":166},"ワークスペース","/modules/workspace","07.modules/08.workspace",{"title":168,"path":169,"stem":170},"テナントとメンバーシップ","/modules/tenant-membership","07.modules/09.tenant-membership",{"title":172,"path":173,"stem":174},"検索","/modules/search","07.modules/10.search",{"title":176,"path":177,"stem":178},"表示ビュー","/modules/display","07.modules/11.display",{"title":180,"path":181,"stem":182},"テンプレート","/modules/template","07.modules/12.template",{"title":184,"path":185,"stem":186},"メール","/modules/mail","07.modules/13.mail",{"title":188,"path":189,"stem":190},"電話","/modules/phone","07.modules/14.phone",{"title":192,"path":193,"stem":194},"リアルタイム","/modules/realtime","07.modules/15.realtime",{"title":196,"path":197,"stem":198,"children":199},"Infra And Deploy","/infra-and-deploy","08.infra-and-deploy",[200,203,207],{"title":201,"path":197,"stem":202},"インフラとデプロイ","08.infra-and-deploy/index",{"title":204,"path":205,"stem":206},"環境の種類","/infra-and-deploy/environments","08.infra-and-deploy/01.environments",{"title":208,"path":209,"stem":210},"セルフホスト構成","/infra-and-deploy/self-host","08.infra-and-deploy/02.self-host",{"title":212,"path":213,"stem":214,"children":215},"docs-map","/docs-map","09.docs-map/index",[216],{"title":212,"path":213,"stem":214},{"id":218,"title":204,"body":219,"description":432,"extension":433,"meta":434,"navigation":435,"path":205,"seo":436,"stem":206,"__hash__":437},"docs/08.infra-and-deploy/01.environments.md",{"type":220,"value":221,"toc":425},"minimark",[222,225,234,239,252,316,327,330,336,375,378,415],[223,224,204],"h1",{"id":204},[226,227,228,229,233],"p",{},"Astar Management には大きく 2 つの実行環境があります。ローカル開発の起動手順そのものは ",[230,231,232],"a",{"href":33},"はじめに / dev-loop"," にあります。ここでは「何が local と本番で違うか」「なぜそうなっているか」を整理します。",[235,236,238],"h2",{"id":237},"ローカル開発環境worktree-slot","ローカル開発環境（worktree slot）",[226,240,241,242,246,247,251],{},"複数の git worktree を並行して動かせるよう、",[243,244,245],"strong",{},"worktree ごとに 0〜9 の \"slot\" が割り当てられ","、ポート・DB・キャッシュがすべて分離されます（",[248,249,250],"code",{},"infrastructure/local/worktree-env.sh","）。",[253,254,255,282,303],"ul",{},[256,257,258,261,262,265,266,269,270,273,274,277,278,281],"li",{},[243,259,260],{},"共有 PostgreSQL コンテナ",": ",[248,263,264],{},"astarmanagement-postgres-dev","（",[248,267,268],{},"infrastructure/local/docker/postgresql/","）が全 worktree で共有され、worktree ごとに別データベース（例: ",[248,271,272],{},"astarmanagement_dev_wt1","）が作られます（",[248,275,276],{},"infrastructure/local/worktree-db.sh","）。init スクリプトが拡張機能と ",[248,279,280],{},"app_user"," ロールを作成し、以降のマイグレーションは Spring Boot 起動時の Flyway が担当します。",[256,283,284,287,288,291,292,295,296,291,299,302],{},[243,285,286],{},"ポート",": 直接アクセスは ",[248,289,290],{},"http://localhost:{3000+slot}","（frontend）/ ",[248,293,294],{},"http://localhost:{8080+slot}","（backend）。Caddy プロキシ経由なら名前付き URL ",[248,297,298],{},"http://{worktree}.localhost:1355",[248,300,301],{},"http://api-{worktree}.localhost:1355","（backend）が使えます。",[256,304,305,265,308,311,312,315],{},[243,306,307],{},"周辺サービス",[248,309,310],{},"infrastructure/local/docker/storage/","）: MinIO（オブジェクトストレージ）、",[248,313,314],{},"fake-gcs-server","（GCS 互換モック）、Mailpit（送信メールのキャプチャ・確認）、GreenMail（IMAP/SMTP テストサーバー）、Kreuzberg（OCR/テキスト抽出）をコンテナで用意しています。",[317,318,320],"callout",{"type":319},"info",[226,321,322,323,326],{},"worktree の provisioning・起動・停止は ",[248,324,325],{},"/wt"," skill が担当します（DB 作成・ポート割当・Caddy 同期を含む）。上記スクリプトを直接叩く必要は通常ありません。",[235,328,329],{"id":329},"本番環境",[226,331,332,333,335],{},"本番は GCP + Cloudflare のハイブリッドです。全体構成は前ページ ",[230,334,201],{"href":197}," を参照。ここで押さえておくべき差分:",[253,337,338,359,365],{},[256,339,340,346,347,350,351,354,355,358],{},[243,341,342,345],{},[248,343,344],{},"api.astarworks.com"," は Cloudflare Tunnel 経由","（GCE VM 上の ",[248,348,349],{},"cloudflared"," コンテナが ",[248,352,353],{},"localhost:8080"," へブリッジ）。Tunnel にはリクエストボディ ",[243,356,357],{},"100MB の上限","があり、これを超えるアップロードはオリジン側に痕跡を残さず失敗します。大きなファイルの取り扱いを設計するときはこの制約を前提にしてください。",[256,360,361,364],{},[243,362,363],{},"バックエンドは Cloud Run ではなく GCE VM","（コスト最適化のため 2026-03-17 に移行）。常時起動ワークロードは Cloud Run より GCE の方が安いという判断です。重い/バースト処理（OCR・Office変換・PDF出力）だけが個別の Cloud Run サービスに切り出されています。",[256,366,367,370,371,374],{},[243,368,369],{},"フロントエンドは Cloudflare Pages","。",[248,372,373],{},"ghcr.io"," に push される frontend の Docker イメージは本番配信には使われず、self-host 用 Kubernetes/Helm チャートの専用ビルドです（次ページ参照）。",[235,376,377],{"id":377},"リリースとバージョンの基点",[253,379,380,397],{},[256,381,382,383,393,394,396],{},"リリースは ",[243,384,385,388,389,392],{},[248,386,387],{},"/release"," skill による git tag (",[248,390,391],{},"vX.Y.Z",") の push"," で開始します（詳細は ",[230,395,201],{"href":197}," の「リリースパイプライン」節）。",[256,398,399,400,406,407,410,411,414],{},"バージョンの基点は ",[243,401,402,403,405],{},"直前の ",[248,404,391],{}," タグの系列","です。",[248,408,409],{},"origin/main"," の最新コミットを基点だと思い込まないこと — ローカル ",[248,412,413],{},"main"," が origin より意図的に進んでいる（未 push の作業がある）状態は珍しくありません。",[317,416,418],{"type":417},"warning",[226,419,420,421,424],{},"本番の Cloud SQL・GCE VM・Cloud Run サービスには直接ログイン/操作しない。変更はすべて Terraform（PR → CI apply）か ",[248,422,423],{},"release.yml","（タグ push）経由。",{"title":426,"searchDepth":427,"depth":427,"links":428},"",2,[429,430,431],{"id":237,"depth":427,"text":238},{"id":329,"depth":427,"text":329},{"id":377,"depth":427,"text":377},"ローカル開発（worktree slot）と本番環境の対応関係、それぞれのサービス構成とアクセス経路。","md",{},true,{"title":204,"description":432},"U0XN_hvPL1XGmO2nY9M508ypEGIBs_qWwlvqaPQ2hts",[439,441,442,444,445,446,447,448,449,450,451,452,454,455,456,457,458,460,461,462,463,464,466,468,470,471,472,473,474,475,476,477,478,479,480,481,482,483,484,485,486,488,489,490,491],{"path":13,"title":440},"Astar とは何か（5分で）",{"path":17,"title":16},{"path":6,"title":443},"ようこそ",{"path":29,"title":28},{"path":33,"title":32},{"path":37,"title":36},{"path":21,"title":25},{"path":49,"title":48},{"path":53,"title":52},{"path":57,"title":56},{"path":61,"title":60},{"path":41,"title":453},"システムアーキテクチャ",{"path":73,"title":72},{"path":77,"title":76},{"path":81,"title":80},{"path":85,"title":84},{"path":65,"title":459},"バックエンドガイド",{"path":97,"title":96},{"path":101,"title":100},{"path":105,"title":104},{"path":109,"title":108},{"path":89,"title":465},"フロントエンドガイド",{"path":121,"title":467},"Go agent — NAS 同期エージェント",{"path":125,"title":469},"astar CLI",{"path":113,"title":117},{"path":137,"title":136},{"path":141,"title":140},{"path":145,"title":144},{"path":149,"title":148},{"path":153,"title":152},{"path":157,"title":156},{"path":161,"title":160},{"path":165,"title":164},{"path":169,"title":168},{"path":173,"title":172},{"path":177,"title":176},{"path":181,"title":180},{"path":185,"title":184},{"path":189,"title":188},{"path":193,"title":192},{"path":129,"title":487},"モジュール索引",{"path":205,"title":204},{"path":209,"title":208},{"path":197,"title":201},{"path":213,"title":492},"docs/ 地図",1785452455529]