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 独立化 finalize | 1〜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 を使用 - 影響: データ不整合のリスク、 保守性低下
- 対応手順:
- MySQL にデバイス追加 API を実装
- SQLite → MySQL 移行スクリプト作成
- 既存データ移行 (contracts=1, devices=1)
main.pyから SQLite コード削除- 十分なテスト実施
// 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 等で実コントロール
推奨対応順序
| 順 | 項目 | 理由 |
|---|---|---|
| 1 | VPS解約 (6月末) | 固定費削減 + 移行検証期間内 |
| 2 | 残セキュリティ ⑩⑫⑬⑭ | 致命度高、 PR着手前にgrepで漏れ確認 |
| 3 | オフサイトバックアップ実装 | 3-2-1 達成、 火災・盗難への耐性 |
| 4 | cron 未設定スクリプト登録 | 顧客請求に直結する処理が走ってない状態の解消 |
| 5 | ⑨ SQLite/MySQL 統一 | 今後の機能追加の前提 |
| 6 | QR 作成時 NC アカウント自動発行 | 顧客運用 UX の主要ピース |
| 7 | Fail2ban | brute-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 完了レポート)