Next Mission — みーきゅんクラウドポータル 残タスク

// NEXT MISSION — 2026-05-14 以降の優先課題リスト / 最終更新: 2026-05-14

残課題 2026-05-14 大移植完了後の「次に倒すべきタスク」。 mikyun-portal と インフラの両方

大移植完了: 2026-05-14 で R640 → maguro への WG / NC / mikyun-portal 移植 + DMZ転換 + Collabora fabric直結化が完了。 ここから先は「磨き込み + 拡張」フェーズに移る。
Phase 4 — インフラ残作業 (短期)
項目所要効果優先度
xserver VPS (162.43.8.20) 6月末解約30分¥3,000/月節約高
他クライアントHP (can-construction, shinkoujyuusetu 等) を R640 へ移行各 2〜4時間WP一元管理中
WiFi VLAN80 独立化 finalize1〜2時間セキュリティ向上中
iDRAC Console Redirection 無効化10分セキュリティ向上中
Fail2ban 導入 (nginx + sshd)2〜3時間brute-force 対策中
オフサイトバックアップ実装 (Backblaze B2 / wasabi)4〜6時間3-2-1 達成高
R640 /wp-admin IP 制限 (作業時のみ開放)30分侵入経路の遮断中
mikyun-portal — Critical / High 優先度
// セキュリティ残課題 (2026-04-06 残り)
  • ✗ ⑩ Nextcloud パスワードがレスポンスに含まれる — 出力ログ・JSON 応答に PW が混ざる箇所がある。 マスキング必須
  • ✗ ⑫ トークンがメモリ内辞書管理 — プロセス再起動で消える。 Redis or DB 保管へ
  • ✗ ⑬ PSK の一時ファイル競合 — マルチユーザー同時発行で race condition の余地
  • ✗ ⑭ WireGuard サーバー公開鍵ハードコード — 環境変数 or DB から取得すべし

(① ② ③ ④ ⑤ ⑦ ⑧ は対応済 — 「最近の作業履歴」参照)

mikyun-portal — Medium 優先度 (今後対応推奨)
// ⑨ SQLite / MySQL 二重管理の解消 (所要 1〜2時間)
  • 現状: main.py が SQLite、 mikyun_vpn_engine.py が MySQL を使用
  • 影響: データ不整合のリスク、 保守性低下
  • 対応手順:
    1. MySQL にデバイス追加 API を実装
    2. SQLite → MySQL 移行スクリプト作成
    3. 既存データ移行 (contracts=1, devices=1)
    4. main.py から SQLite コード削除
    5. 十分なテスト実施
// cron 未設定スクリプトの登録 (所要 1時間)

「cron ジョブ・自動化タスク (id:818)」に書いた 6本のスクリプトを cron に登録:

  • mikyun-traffic-snapshot.sh — トラフィックスナップショット
  • mikyun-suspend-expire.sh — 期限切れ端末停止 (顧客契約管理に直結)
  • mikyun-predelete-notice.sh — 削除予告通知
  • mikyun-daily-rollup.sh — 日次ロールアップ (24h/7d 集計)
  • mikyun-expire-issued.sh — issued 状態の期限切れ (QR 24h 超え)
  • mikyun-delete-expired.sh — 期限切れ端末の物理削除
mikyun-portal — Low 優先度 (保守性改善)
// ⑪ バックアップファイル散乱整理 (15分)
  • 現状: .backup.*, .before_* ファイルが多数散在
  • 対応: 古いバックアップを /root/_archive/YYYY-MM/ に移動 or 削除
// ⑰ 顧客ポータルのパスワード変更機能 (30分〜1時間)
  • 現状: Nextcloud パスワード変更機能なし
  • 対応: /ui/devices/{device_id}/force-nc-password エンドポイント再実装
  • 必要な追加: import subprocess, import os
  • 実装場所: ui_admin.py
機能追加 — 顧客運用に直結 (優先度高)
  • QR・契約作成時に Nextcloud アカウント (ID・PW・容量) を自動生成・割り当て
  • 顧客ポータルに Nextcloud 接続情報 (URL・ID・PW・使用量) を表示
  • 契約ID・端末管理・QR・IP・Nextcloud を一元同期できる管理画面の整備
  • 運営用ポータル (/ui) の完成 + Basic 認証の追加
  • ローカルPC (192.168.20.x) からも運営ポータルにアクセス可能にする
  • 月次トラフィックランキング (/ui/monthly) 実装 (現状 /ui/contracts へリダイレクトのみ)
  • 使用済みストレージの自動集計 (顧客ポータルで「未集計」と出るのを解消)
  • 帯域制限 (bandwidth_profile 実施) 実装 — tc/qdisc 等で実コントロール
推奨対応順序
順項目理由
1VPS解約 (6月末)固定費削減 + 移行検証期間内
2残セキュリティ ⑩⑫⑬⑭致命度高、 PR着手前にgrepで漏れ確認
3オフサイトバックアップ実装3-2-1 達成、 火災・盗難への耐性
4cron 未設定スクリプト登録顧客請求に直結する処理が走ってない状態の解消
5⑨ SQLite/MySQL 統一今後の機能追加の前提
6QR 作成時 NC アカウント自動発行顧客運用 UX の主要ピース
7Fail2banbrute-force 対策、 静的対策で済む
8他クライアントHP 移行営業材料化、 R640 余力を使い切る
9⑪ バックアップ整理すぐできる、 気力ある時に
10⑰ パスワード変更機能必要に応じて
中期ビジョン (3〜6ヶ月)
  • 営業展開: 「自社インフラ運用 (Tier1相当の冗長性・暗号化・監視体制)」を武器に法人案件獲得
  • サービス拡張: NC + Collabora の組合せを「中小企業向け Office365 代替」として商品化
  • 監視 SaaS 化: 自前で作った Telegram 監視 (perc-watch 等) を商用化する余地
  • Disaster Recovery 強化: オフサイト+冷バックアップ+リハーサル定期化
マイルストーン到達: 2026-05-14 で「自社インフラ運用」のメジャーマイルストーン到達。 残るは 磨き込み と 営業材料化。
関連ページ: 「既知のバグ・TODO (id:842)」 (詳細) / 「最近の作業履歴 (id:850)」 (2026-04 セキュリティ修正詳細) / 「R640 WireGuard 剥がし (id:1191)」 (Phase 1〜3 完了レポート)