# 現場ReNote — テナント運用(ReNote ホスト) **1 台のサーバ・1 份の `note` プログラム** を置き、**サブドメインまたはパス** で入り口だけ分けます。業者にソースは渡しません。 検証例: `https://lab.rnote.jp/note/index.html`(`lab.rnote.jp` + `/note`) 本番構成(C-take・方式 A): | | | |--|--| | **本体(デプロイ先)** | `https://lab.rnote.jp/note/` → `/domains/lab.rnote.jp/public_html/note/` | | **業者 URL** | `https://take.con.rnote.jp/`(docroot: `rnote.jp/…/construct/c-take` → **lab の note へ symlink**) | | **設定** | `tenants.json` 1 文件(lab 側を編集) | オリジンが違うので **検証データ(lab)と業者データ(rnote.jp)は混ざらない**。手順: `deploy-construct-c-take.md` --- ## 仕組み | 項目 | 内容 | |------|------| | プログラム | 全テナント共通(`note/` 一式) | | 設定 | `tenants.json` のみ編集 | | 工事データ | 各端末の localStorage(サーバ DB 不要) | | データの分離 | **オリジン単位**(サブドメイン or ホスト+パス)で自動 | --- ## tenants.json の書き方 ```json { "default": { "appTitle": "現場ReNote", "portalSubtitle": "現場ハブ", ... }, "hosts": { "山田.genba.rnote.jp": { "siteLabel": "山田工務様", "portalSubtitle": "専用サイト", "defaultContractor": "山田工務株式会社", "workIdPrefix": "YAMADA-", "supportUrl": "https://rnote.jp/", "supportText": "お問い合わせ" }, "lab.rnote.jp": { "pathPrefixes": { "/note": { "siteLabel": "ReNote 検証", "portalSubtitle": "修繕現場向け(検証)" } } } } } ``` ### キー説明 | キー | 画面での効果 | |------|----------------| | `siteLabel` | 表紙上部の帯(「○○様」) | | `appTitle` | アプリ名(表紙・タイトルバー) | | `portalSubtitle` | 表紙の副題 | | `introLines` | 表紙の説明文(配列) | | `defaultContractor` | 案件セットアップの自社名の初期値 | | `workIdPrefix` | 作業ID のプレースホルダー用プレフィックス | | `supportUrl` / `supportText` | フッターの問い合わせリンク | | `pathPrefixes` | 同一ホストで `/note` と `/mankan` など別入り口 | ### ワイルドカード `hosts` に `"*.genba.rnote.jp"` を書くと、その配下のサブドメインに共通設定を適用できます(より具体的なホスト名が優先)。 --- ## 新規業者の追加手順 1. DNS: `新社.genba.rnote.jp` → 同じ Web サーバ 2. 仮想ホストのドキュメントルートを **同じ `note` フォルダ** に向ける(またはリバースプロキシ) 3. `tenants.json` に `hosts["新社.genba.rnote.jp"]` を1件追加 4. `tenants.json` を保存(キャッシュ対策で PWA 利用者には再読み込み案内) 5. 利用者に `https://新社.genba.rnote.jp/` の URL のみ送付 **プログラムのコピーは不要**です。 --- ## 管理組合サイトも同じ方式 テナントごとに **同じ `note` アプリ**で `appTitle` や `introLines` だけ差し替え可能です(`tenants.json` の `hosts` に追加)。 別アプリ(PHP ポータル等)を同じサーバに置く場合は、`pathPrefixes` で `/note` と `/mankan/` を分けます。 --- ## 注意 - 別テナント URL で **同じ端末** を開くと localStorage は別オリジンで空になります(正常動作)。 - 初回保存後、別 URL で古いデータを見ると表紙に **警告** が出ます。 - `tenants.json` を変えても、各社端末内の工事データは自動では変わりません。 --- ReNote.jp — 現場ReNote テナント運用