sada レポート一覧 2026-05-19 12:59

Reports Server セットアップ・運用ガイド

概要

Dynamis 系プロジェクトの機密レポートをHTTPS+Basic認証で配信する統合サーバ

ディレクトリ構成

~/systems/reports-root/
├── server.py          # 配信サーバ (Python)
├── build.py           # MD→HTML 変換ツール
├── tunnel.sh          # ngrok トンネル up/down 管理
├── .auth.yml          # 認証情報 (chmod 600, git管理外)
├── index.html         # 公開トップ (ナレッジ)
├── _assets/
│   └── style.css      # 共通スタイル
├── docs/              # 公開ナレッジ (このファイル)
│   └── setup.html
├── sada/              # SADA レポート (auth: sada:...)
│   ├── index.html
│   └── *.html
└── <other>/           # 他プロジェクト

新規レポートの追加 (既存PJ)

例: SADA の新規レポート ~/systems/sada/REPORT_FOO_20260601.md を公開

cd ~/systems/reports-root
python3 build.py sada /home/dynamis/systems/sada/REPORT_FOO_20260601.md
# → /sada/report_foo_20260601.html 生成 + /sada/index.html 自動更新

ディレクトリ内一括変換:

python3 build.py sada --all /home/dynamis/systems/sada/
# → REPORT_*.md を全変換

新規プロジェクトの追加

例: kumade プロジェクトを追加

1. パスワード生成

openssl rand -base64 16 | tr -d '+/=' | cut -c1-16
# → 例: aBcDeFgH12345678

2. .auth.yml に追記 (chmod 600)

sada: "sada:..."
kumade: "kumade:aBcDeFgH12345678"

3. ~/svc/services.ymlspecial.reports_server.mounts に追記

mounts:
  sada:
    path: ./sada
  kumade:                    # 新規
    path: ./kumade

4. サーバ再起動

systemctl --user restart reports-server.service

5. 動作確認

curl -u kumade:aBcDeFgH12345678 -sI http://127.0.0.1:7050/kumade/
# → HTTP/1.0 200 OK

サーバ操作

起動・停止・状態

systemctl --user start reports-server.service
systemctl --user stop reports-server.service
systemctl --user status reports-server.service
systemctl --user restart reports-server.service

ngrok トンネル (HTTPS 公開)

cd ~/systems/reports-root
./tunnel.sh up      # トンネル開始 (他トンネル無影響)
./tunnel.sh down    # トンネル停止
./tunnel.sh status  # 状態確認

ログ確認

journalctl --user -u reports-server.service -f

認証スコープ

パス 認証 用途
/ なし トップページ (ナレッジ案内)
/_assets/* なし CSS, 画像
/docs/* なし 公開ナレッジ
/<project>/* Basic プロジェクト別認証
上記以外 404 公開しない

セキュリティ・運用ルール

  1. .auth.yml は git に絶対コミットしない (chmod 600)
  2. パスワードは強めの自動生成 を推奨 (16文字以上ランダム)
  3. services.yml には認証情報を入れない (Credential Leakage 防止)
  4. 公開URLを社外に共有する場合は、認証情報をChatwork等で別経路で
  5. 不要になったプロジェクトは速やかに mounts から削除

トラブルシュート

「サイトに接続できません」

# サーバ生存確認
curl -sI http://127.0.0.1:7050/
# ngrok トンネル確認
./tunnel.sh status
# ngrok agent 自体確認
curl -sf http://127.0.0.1:4040/api/tunnels | jq '.tunnels[].public_url'

認証画面が出ない

401 が解除されない