# asao-clinic.jp

このドメインに関連するサーバは **2つ** あります。

| 役割 | サーバ種別 | 接続 |
|------|-----------|------|
| Web公開（`asao-clinic.jp`） | レンタルサーバ | **未調査・要追記** |
| 院内LAN業務サーバ | 物理 macOS 機（院内設置） | `ssh asaoclinic`（リバーストンネル経由） |

---

# 1. レンタルサーバ（asao-clinic.jp 本体）

※詳細未調査。判明次第追記。

- レンタルサーバ事業者: **TBD**
- 用途: **TBD**（Web公開用）
- SSH/FTP接続情報: **TBD**
- PHP/DBバージョン: **TBD**

---

# 2. 院内LANサーバ（asaoclinicSERVER）

レンタルサーバとは別の、院内に物理設置された macOS サーバ。LAN内業務用途。

## サーバ概要

- ホスト名: `asaoclinicSERVER.local`
- ユーザ: `asaoadmin`
- OS: macOS 10.15.6 (Catalina)
- グローバルIPなし（TP-Link Archer AX50 配下）
- 物理操作: Chrome Remote Desktop 経由

## SSH接続

### 接続コマンド（作業Macから）
```
ssh asaoclinic
```

`~/.ssh/config` の `Host asaoclinic` エントリ経由。

### 経路（リバースSSHトンネル方式）
1. サーバ側 `autossh` が常時 `menou@159.28.108.1:22022`（作業Mac）へ接続
2. `-R 22222:localhost:22` で作業Macのポート22222 → サーバ:22 を転送
3. ローカルから `ssh -p 22222 asaoadmin@localhost` で到達

macOS 10.15 は Tailscale 等の現代的VPN非対応のため、この方式を採用（2026-05-26時点）。

### 使用鍵
- **ユーザ→サーバ用**: `~/.ssh/asaoclinic_keys`（作業Mac、ed25519）
  - 公開鍵はサーバの `/Users/asaoadmin/.ssh/authorized_keys` に登録済み
- **サーバ→作業Mac用（トンネル用）**: `/Users/asaoadmin/.ssh/to_thismac`（サーバ側、ed25519）
  - 公開鍵（`asaoclinic-tunnel` コメント）は作業Macの `~/.ssh/authorized_keys` に登録済み

### サーバ側 常駐サービス
- launchd ラベル: `com.asaoclinic.autossh`
- plist: `/Users/asaoadmin/Library/LaunchAgents/com.asaoclinic.autossh.plist`
- ログ: `/Users/asaoadmin/Library/Logs/autossh.{log,err}`
- autosshパス: `/usr/local/bin/autossh`（Homebrew）

```bash
# 状態確認
launchctl list | grep asaoclinic
# 停止
launchctl unload ~/Library/LaunchAgents/com.asaoclinic.autossh.plist
# 起動
launchctl load   ~/Library/LaunchAgents/com.asaoclinic.autossh.plist
# ログ確認
tail -f ~/Library/Logs/autossh.err
```

### 作業Mac側の確認
```bash
# トンネルがLISTENしているか
lsof -iTCP:22222 -sTCP:LISTEN
```

### 注意点
- launchd Agent はユーザログイン時起動。サーバ再起動後は `asaoadmin` の自動ログインが有効でないとトンネルが復活しない
- 作業MacのIP/ポート（`159.28.108.1:22022`）や `menou` ユーザに変更があると plist の修正が必要

## VNC（画面共有）接続

SSH と同じ逆トンネル経路に**ローカルポートフォワードを相乗り**させて、サーバの画面共有（VNC/5900）に接続する。グローバルIPがないため直接は接続不可。

```
作業Mac ──SSHトンネル(5901→5900)──▶ asaoclinicSERVER:5900 (画面共有)
```

### サーバ側の有効化（2026-06-04 実施済み）
macOS 10.15 は kickstart の Remote Management だけでは 5900 が待ち受けない。Remote Management 有効化 + screensharing デーモンのロードの両方が必要。

```bash
# Remote Management 有効化（sudo）
sudo /System/Library/CoreServices/RemoteManagement/ARDAgent.app/Contents/Resources/kickstart \
  -activate -configure -access -on -restart -agent -privs -all
# 画面共有デーモンをロード
sudo launchctl load -w /System/Library/LaunchDaemons/com.apple.screensharing.plist
```

確認（**root所有ソケットなので非rootのlsofでは見えない。必ず sudo か netstat**）:
```bash
sudo lsof -nP -iTCP:5900          # launchd が *:5900 LISTEN なら成功
netstat -an | grep '\.5900 '      # sudo不要の代替確認
```

無効化したい場合: `sudo .../kickstart -deactivate -configure -access -off`

### 作業Macからの接続（毎回の手順）
```bash
ssh -f -N -L 5901:localhost:5900 asaoclinic   # トンネル（ローカル5901→サーバ5900）
open vnc://localhost:5901                       # 画面共有アプリ起動
```
- 認証: ユーザ `asaoadmin` / ログインパスワード
- ローカルは 5901 を使用（作業Mac自身が5900を使う場合の衝突回避）
- 前提: 逆SSHトンネル（`ssh asaoclinic` が通る状態）が生きていること

### ワンクリック接続スクリプト（統合版・自動判別）
`asaoclinic-VNC.command` をFinderでダブルクリックするだけで接続できる。**実行環境を自動判別**し、作業Mac・自宅Macで同じ1ファイルが使える。

- **配置はデスクトップ（`~/Desktop/asaoclinic-VNC.command`）**。デスクトップは iCloud 同期のため、作業Mac↔自宅Mac で自動的に共有される。
- 判別: `~/.ssh/asaoclinic_keys` の有無で分岐
  - **作業Mac**（鍵あり）→ 直接: `手元:5901 → asaoclinic:5900`（`ssh asaoclinic`）
  - **外部=自宅Mac等**（鍵なし）→ 経由: `手元:5901 → 作業Mac:5902 → asaoclinic:5900`
    - 外部経由時の最終認証は**作業Mac上の `asaoclinic_keys`** で行う → 秘密鍵を自宅Macにコピー不要
    - 作業Mac側 中継ポートは **5902**（作業Mac自身のVNC=5901と衝突回避）
- このドメインフォルダ内の同名ファイルは**記録用テキスト**（再生成元、Dropbox管理）。

外部経由パスの手動コマンド:
```bash
ssh -f -o ExitOnForwardFailure=yes \
    -L 5901:localhost:5902 -p 22022 menou@159.28.108.1 \
    "ssh -N -L 5902:localhost:5900 asaoclinic"
sleep 3; open vnc://localhost:5901
# 切断: pkill -f '5901:localhost:'
```

**実行ビットの注意**: iCloud / Dropbox は +x を保持しないことがある。ダブルクリックで「実行できません」と出たら、各Macで一度だけ:
```bash
chmod +x ~/Desktop/asaoclinic-VNC.command
```
初回は Gatekeeper 警告が出ることがある → 右クリック→「開く」で一度許可。

**外部接続の前提条件**:
- 作業Mac(`159.28.108.1`)が起動・到達可能で、asaoclinic 逆トンネルが生きている
- 自宅Mac→作業Mac の SSH が通ること（`ssh -p 22022 menou@159.28.108.1`）
- 自宅MacのグローバルIP(`160.86.105.20`)が作業Mac側 pf で許可されていること

## 現況: 容量不足・延命フェーズ（2026-05-26〜）

院内LANサーバでディスク容量不足が発生。新サーバへの入れ替えが決定済みだが、現物到着までの間は既存サーバを延命運用する必要がある。

### 運用方針
- ディスク書き込みを伴う処理を最小化
- ログ・キャッシュ・一時ファイル・古いバックアップ等、安全に削除/移動できる候補を積極的に提案
- 大量データを生成する処理（ダンプ・コピー・展開）は事前に空き容量を確認してから実施
- 削除は「サーバ作業時の負荷管理」（`/Users/menou/CLAUDE.md`）に従い、小バッチで実施

### 状況更新欄
- 2026-05-26: 容量不足判明、延命フェーズ開始。SSHトンネル接続環境を構築

## サーバ入れ替え時の再構築手順

新しいLANサーバ（macOS）に入れ替えた際は、以下を順に実施する。Chrome Remote Desktop で新サーバ画面を操作できる状態が前提。

### 1. 旧サーバの後始末（旧サーバが起動できる場合）
```bash
# トンネル停止
launchctl unload ~/Library/LaunchAgents/com.asaoclinic.autossh.plist
```
作業Mac側で旧サーバ用の公開鍵を `~/.ssh/authorized_keys` から削除（`asaoclinic-tunnel` コメント行）。

### 2. 新サーバ側の準備
```bash
# リモートログイン有効化（GUI: システム環境設定 → 共有 → リモートログイン ON）

# ユーザ→サーバ用公開鍵を登録（作業Macの ~/.ssh/asaoclinic_keys.pub を貼り付け）
mkdir -p ~/.ssh && chmod 700 ~/.ssh
nano ~/.ssh/authorized_keys   # ed25519 公開鍵を1行追記
chmod 600 ~/.ssh/authorized_keys

# トンネル用鍵を新規生成（旧鍵は使い回さない）
ssh-keygen -t ed25519 -f ~/.ssh/to_thismac -N "" -C "asaoclinic-tunnel"
cat ~/.ssh/to_thismac.pub   # → 作業Macの ~/.ssh/authorized_keys に追記してもらう

# autossh インストール
which brew || /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
brew install autossh
which autossh   # パス確認（Intel: /usr/local/bin、Apple Silicon: /opt/homebrew/bin）

# 接続テスト
ssh -i ~/.ssh/to_thismac -p 22022 menou@159.28.108.1 echo OK
```

### 3. launchd plist 設置
- 配置先: `~/Library/LaunchAgents/com.asaoclinic.autossh.plist`
- 内容は本ファイル「サーバ側 常駐サービス」と同じ。autosshパスとユーザホームパスのみ環境に合わせて修正
- ユーザ名が `asaoadmin` 以外になる場合は plist 内パスを全置換
- ロード: `launchctl load ~/Library/LaunchAgents/com.asaoclinic.autossh.plist`
- 確認: `launchctl list | grep asaoclinic`（PIDが数字なら成功）

### 4. 作業Mac側の確認
- `lsof -iTCP:22222 -sTCP:LISTEN` でトンネル待受確認
- `ssh asaoclinic` で接続確認
- ユーザ名が変わった場合は `~/.ssh/config` の `Host asaoclinic` ブロックの `User` を更新

### 5. 自動ログイン設定（重要）
新サーバの「システム環境設定 → ユーザとグループ → ログインオプション → 自動ログイン: asaoadmin」を有効化。これがないと再起動後にトンネルが復活しない。

### 鍵の取り扱い方針
- **`asaoclinic_keys`（ユーザ→サーバ用）は作業Macに残し続けて使い回す**（公開鍵を新サーバに登録するだけ）
- **`to_thismac`（トンネル用）はサーバ毎に新規生成**（旧鍵は作業Macの authorized_keys から削除）

### 想定リスク
- 新サーバのIPやホスト名がLAN上で旧サーバと同じだと、known_hosts のキー不一致で警告が出る → 作業Macの `~/.ssh/known_hosts` から旧エントリ削除
- 新サーバ macOS が新しすぎる場合は Tailscale 等のVPN方式に切り替えた方が運用が楽（その場合この plist 方式は不要になる）

---

# 3. 新LANサーバ（asaoSERVER.local）＝ FileMaker Server 本番機

容量不足だった旧院内LANサーバ（`asaoclinicSERVER`）の後継として導入した新機。用途は **FileMaker Server 本番運用**。

## ハードウェア／OS（2026-07-21 調査）
- ホスト名: `asaoSERVER.local`（LAN内 IP: `10.0.1.72`、作業Mac側は同一LANに `10.0.1.26` で同居）
- 機種: Apple Silicon（`Mac16,11` ＝ Mac mini M4系）
- OS: **macOS 26.5.1（build 25F80）**
- ディスク: 926Gi 中 空き859Gi（使用2%）＝旧機の容量問題は解消
- ユーザ: `asaoadmin` のみ／**自動ログイン有効**／リモートログイン(SSH:22)有効
- 接続: 案B（`asaoclinic_keys.pub` を新サーバ authorized_keys に登録済）で `asaoadmin@asaoSERVER.local` へ鍵SSH可。逆トンネル(autossh)方式は未構築（今後）
- Tailscale: 未インストール（接続方式は autossh逆トンネルで進める方針）

## FileMaker Server バージョン方針
- macOS 26 (Tahoe) / Apple Silicon 対応は **FileMaker Server 2026（v26.x）** が正式対応。FMS 2025(22.x) 以前や FMS 20 は macOS 26 非対応/リスクあり
- → 「最新版」= **FileMaker Server 2026** を導入。インストーラ入手時に同梱リリースノートで macOS 26.5.1 が対応OSに含まれるビルドか確認する

## 配置済みインストーラ／証明書（2026-07-21, このドメインディレクトリ内）
- `fms_26.0.1.68.dmg` — **FileMaker Server 26.0.1.68**（本番サーバ用, 901MB, 正規ディスクイメージ確認済）
- `fmp_26.0.1.51.dmg` — **FileMaker Pro 26.0.1.51**（クライアント用, 277MB）
- `LicenseCert-2.fmcert` — ライセンス証明書（JSON, 契約情報は暗号化格納。FMSインストール時に読込）
- ※Dropbox同期対象。新サーバへは scp 等で転送してインストールする
- 転送先: 新サーバ `/Users/asaoadmin/Desktop/FileMaker/`（2026-07-21 転送・md5照合済）

## FileMaker Server 管理者アカウント（Admin Console 設定）
- アカウント: `admin`
- パスワード: `YNJ19`
- PINコード: `9126`

## Claris FileMaker Server ライセンス
- 契約番号: `0041719509`
- ライセンスキー: `3MKT2-7M114-5589K-J67TM-6KT5K-N4296-VK871`
- ライセンス所有者: `akihiro@norizuki.com`
- 開始日: 2017-11-29
- **有効期限: 2026-11-29**（※今日 2026-07-21 時点で残り約4ヶ月 → 更新要確認）

## PINコード（あさおクリニック）
- PIN: `9126`
- 用途: **要確認**（記載時点で用途未指定。画面ロック/ログイン・物理入室・機器いずれか）
