Self-hosted web app — Free download
保守デスクは、ITシステム保守の現場のための小さなヘルプデスクです。
チケット受付 → AIによる分類・一次回答の下書き → 対応記録 →
日本語帳票(障害報告書・作業報告書・月次保守報告書)のExcel/PDF自動生成までを1つのWebアプリにまとめました。
Excel台帳とメールで回している「1〜10人の保守チーム」に、Dockerコマンド1回で導入できます。
数値は2026-08-04時点の実測。テスト本数はリポジトリ同梱のpytest(配布zipに含まれます)。
「対応はしたのに、報告書がつらい」を無くす。
小さな保守現場では、障害対応そのものより記録と報告書づくりに時間が取られがちです。 保守デスクは、対応しながら1行メモを残すだけで、提出できる体裁の帳票が出てくるように設計しました。
受付・状態管理(新規→対応中→解決→クローズ)・顧客/対象システムの紐づけ・キーワード検索。メール本文の貼り付けだけで起票できます。解決にすると復旧日時が自動で入ります。
チケット本文から分類・緊急度・影響範囲を提案、過去の類似チケットを参照した一次回答メールの下書き、1行メモの羅列を報告書向けの経緯文に整形、月次報告書の所見文の起草。提案はすべて人間が確認してから確定します。AI未設定でも他の全機能は動きます。
障害対応報告書・作業報告書・月次保守報告書をExcelとPDFの両形式で出力。月次は当月チケットの件数集計・一覧・SLA目標欄つき。PDFは日本語フォント埋め込みでA4縦1ページに収まります。
標準テンプレートをダウンロードしてExcelで自由に編集し、名前を付けて何枚でも登録(例:「社内控え」「A社提出様式」)。生成時にどれを使うか選べて、顧客ごとの既定も設定できます。会社住所や電話番号などの差し込み変数も定義可能。
日本語の部分一致に強い全文検索(SQLite FTS5 trigram)で、過去の似た事例を自動提示。「前にも同じことがあった気がする」をすぐ引けます。
画面はこんな雰囲気です。
スクリーンショットはすべて架空のデモデータです。ライト/ダークテーマ切替に対応しています。
使い方 — 日々の流れは5ステップ。
STEP 01
起票する
障害連絡のメール本文や電話メモをそのまま貼り付けて「起票する」。顧客を選んでおくと帳票の宛先に反映されます。
STEP 02
AIに分類させる
チケット詳細の「提案を出す」でカテゴリ・緊急度・影響範囲をAIが提案。内容を見て「適用」→「保存」で確定します(AI未設定ならこのステップは飛ばして手動でOK)。
STEP 03
対応しながら1行メモ
「原因特定: ○○」「再起動して復旧」のような短いメモを都度追加。時系列が自動で残ります。一次回答が必要なら「下書きを作る」でメール文面をAIが起草します。
STEP 04
解決にする
状態を「解決」に変えると復旧日時が自動セット。障害情報欄(原因・暫定対応・恒久対応)を埋めておくと帳票がそのまま完成形になります。メモの整形はAIの「経緯文に整形」が便利です。
STEP 05
帳票を出す
チケット詳細から障害報告書/作業報告書を、顧客ページから月次保守報告書をワンクリック生成。帳票一覧からExcel・PDFをダウンロードできます。
Q月次報告書には何が入る?
対象月に起票されたチケットの件数集計(受付・解決・クローズ・対応中・緊急度別)、チケット一覧(行が件数分自動で増えます)、顧客ごとに設定したSLA目標、所見・総評欄。AIを有効にしていれば所見文を自動起草できます(もちろん編集前提の下書きです)。
Q帳票のレイアウトを自社様式にしたい
帳票マスタで標準テンプレートをダウンロード→Excelでロゴ・文言・罫線を自由に編集→名前を付けて登録。セルに {{ticket.title}} のようなプレースホルダを書いた場所に値が差し込まれます。使える名前は画面内の早見表に全部載っています。客先指定の様式は「その顧客専用」として登録すれば、生成時に自動で優先されます。
QAIには何が送られる?
AI機能を使った瞬間の、そのチケットの内容(タイトル・本文・記録)だけが、あなたが設定したAI事業者(Claude API等)に送られます。AI未設定なら外部送信は一切ありません。送信内容はローカルの data/logs/ に全件記録されるので後から確認できます。
Qデータはどこに保存される?
すべて手元の ./data フォルダ(SQLite+生成した帳票ファイル)。このフォルダをコピーするだけでバックアップになります。クラウドには何も置きません。
導入方法 — Dockerがあれば5分です。
対象OS: Linux / macOS / Windows(WSL2)。必要なのは Docker(compose付き)だけ。Python等の準備は不要です(コンテナに全部入っています)。
1ダウンロードして展開
このページの zip をダウンロードして展開します。
unzip hoshu-desk_v1.0.0.zip cd hoshu-desk
2パスワードを設定
.env.example をコピーして、ログインパスワードを自分の値に必ず変更します。
cp .env.example .env # .env をエディタで開いて編集: HOSHU_PASSWORD=ここを自分のパスワードに変更
3起動
初回はイメージのビルドが走ります(LibreOfficeと日本語フォントを含むため数分・約1GB)。2回目以降は数秒で起動します。
docker compose up -d --build # 起動したらブラウザで開く: http://localhost:8095
4初期設定(5分)
ログイン後、設定で組織名・担当者名(帳票の発行元欄に印字)を入力 → 顧客で保守先を登録(SLA目標を書いておくと月次帳票に載ります)→ 試しに1件起票して障害報告書を生成してみてください。
5AIを使う場合(任意)
下の表のいずれかを .env に追記して docker compose up -d で再起動 → 設定画面でプロバイダを選択 → 「接続テスト」で確認。AIなしでも帳票を含む全機能が動くので、まず使ってみてから決めるのがおすすめです。
| プロバイダ | 向いている人 | .env に書くもの |
|---|---|---|
| Claude API(推奨) | 手軽に高品質なAIを使いたい。従量課金(1チケットあたり数円〜10円程度の目安) | ANTHROPIC_API_KEY=sk-ant-... |
| OpenAI互換 | Ollama等のローカルLLMで、データを外に出したくない | OPENAI_COMPAT_BASE_URL=...OPENAI_COMPAT_MODEL=... |
| Claudeサブスク(CLI) | Claude Codeの定額プランを自己利用の範囲で使いたい(上級者向け・コンテナへのCLI導入が必要) | CLAUDE_CLI_PATH=claude |
Qアップデートするには?
新しいzipを展開して app/ 等を差し替え → docker compose up -d --build。データベースは自動でマイグレーションされます。念のため事前に ./data をコピーしておくと安心です。
Qポートを変えたい/社内サーバーに置きたい
compose.yml の ports を編集します(例: "127.0.0.1:8095:8095" でローカル限定、"192.168.x.x:8095:8095" で特定NICだけに公開)。チームで使う場合は社内LANやVPN(Tailscale等)の内側に置いてください。
Qアンインストールは?
docker compose down で停止し、フォルダごと削除するだけです。データを残したい場合は ./data を退避してください。
技術構成
| 項目 | 内容 |
|---|---|
| 形態 | セルフホスト型Webアプリ(Docker単一コンテナ) |
| バックエンド | Python 3.12 / FastAPI / SQLite(WAL・FTS5 trigram全文検索) |
| 帳票エンジン | openpyxl(Excelテンプレート差し込み・行展開)+ LibreOffice(PDF変換・Noto CJKフォント同梱) |
| AI連携 | プロバイダ抽象層(Claude API / OpenAI互換 / Claude CLI / なし)。全呼び出しをローカルにログ |
| 品質 | 自動テスト107本・lintゼロ警告(v1.0.0時点)。テストは配布物に同梱 |
| 動作要件 | Docker + compose / メモリ1GB程度 / ディスク約1.5GB(イメージ含む) |
ダウンロード