みーきゅんクラウド ポータル
1. 運営ポータルアクセス方法
| 場所 | URL |
|---|---|
| ローカル・VLAN20 | https://cloud.k2-o.net/ui/contracts |
| 外出先(WireGuard必須) | https://admin.wan-secure.net/ui/contracts |
認証: Basic認証 admin / 243Katuokun4144!
2. 運営ポータル(/ui)全機能一覧
認証: HTTP Basic認証(環境変数 ADMIN_USER / ADMIN_PASS)
IP制限(Nginx): 192.168.20.0/24, 10.251.0.0/24, 10.200.0.0/16, 10.250.0.0/24, 127.0.0.1 のみアクセス可
| パス | メソッド | 機能名 | 説明 |
|---|---|---|---|
| / | GET | HOMEダッシュボード | 全ユーザー数・オンライン/アイドル/オフライン件数・累計トラフィック上位10件を表示 |
| /ui/contracts | GET | 契約一覧 | 全契約をDBから直接取得。契約ID・顧客名・VPN subnet・状態・容量GB・稼働子端末数・作成日・詳細/conf/QR/解除リンクを表示 |
| /ui/contracts/new | GET / POST | 新規契約作成 | 契約ID・顧客名・メール・電話・パスフレーズ・プラン・容量GB・最大端末数・最大ファイル数・帯域プロファイル・NCユーザー名・親端末名・platform等を入力。VPNエンジン /contracts/create へ転送 |
| /ui/contracts/{id} | GET | 契約詳細 | 親端末カード(WG情報・NC情報・容量・最終接続・月次トラフィック)+ 子端末一覧 + 子端末追加フォームを表示 |
| /ui/contracts/{id}/add-child | POST | 子端末追加 | 端末名・platform・app_versionを指定して子端末追加。VPNエンジン /devices/add-child へ転送 |
| /ui/contracts/{id}/promote-parent | POST | 親端末昇格 | 指定した子端末を親端末に昇格。VPNエンジン /devices/promote-parent へ転送 |
| /ui/contracts/{id}/terminate-confirm | GET | 契約解除確認画面 | 解除対象の端末一覧・NC削除対象ユーザーを表示して確認を促す |
| /ui/contracts/{id}/terminate | POST | 契約解除実行 | 全端末をpaused化・WGピア削除・Nextcloudアカウント完全削除・契約ステータスをterminatedに変更。不可逆操作 |
| /ui/traffic | GET | トラフィック監視 | 全端末のリアルタイムbps・24h/7d/月次/累計送受信量・NCファイル数・警告フラグを表示 |
| /ui/notes | GET | 顧客メモ一覧 | contract_notesテーブルから最新200件を表示。種別: メモ/トラブル/通話記録/警告 |
| /ui/notes/add | POST | メモ追加 | 契約ID・種別・本文・投稿者を指定してメモを追加 |
| /health | GET | ヘルスチェック | 認証不要。{“ok”: true} を返す。監視用 |
3. 顧客ポータル(/client)全機能一覧
認証方式: WireGuard VPN の接続元IP(wg0: 10.200.0.0/16)で端末を特定。親端末のみ管理画面にアクセス可。子端末からはNextcloudへのリダイレクト。その後、契約に設定されたパスフレーズ(identity_passphrase)で追加認証。
| パス | メソッド | 機能名 | 説明 |
|---|---|---|---|
| /client | GET | ログインTOP | VPN接続済み親端末→パスフレーズ入力へ。子端末→Nextcloudへリダイレクト。未接続→エラー表示 |
| /client/login | POST | ログイン認証 | contract_id と identity_passphrase の照合。成功後、契約詳細ページへ遷移 |
| /client/devices/{contract_id} | GET | 端末一覧(契約詳細) | 契約情報サマリ + 全端末カード(IP状態/接続状態/稼働状態/役割の4バッジ・最終接続・月次トラフィック・各種操作ボタン) |
| /client/add-device/{contract_id} | GET / POST | 端末追加 | 使い方説明 + 容量説明 + 端末名入力 + NCアカウント要否選択。残容量20GB未満は追加不可 |
| /client/pause/{device_id} | POST | 端末一時停止 | 子端末のみ操作可。/devices/pause へ転送 |
| /client/resume/{device_id} | POST | 端末復旧 | paused状態の子端末を復旧。/devices/resume へ転送 |
| /client/promote/{device_id} | POST | 親端末に昇格 | 子端末を親端末に昇格。/devices/promote-parent へ転送 |
| /client/delete/{device_id} | POST | 子端末削除 | 確認ダイアログあり。/devices/delete へ転送。削除時に親端末へ10GB返却 |
| /client/qr/{contract_id}/{device_id} | GET | QRコード表示 | WireGuard設定のQRコードを表示。1回限り・24時間有効の旨を警告表示 |
| /client/conf/{device_id} | GET | conf ダウンロード | /opt/mikyun/output/client-configs/{device_id}.conf をダウンロード |
4. VPNエンジン APIエンドポイント一覧
サービス: mikyun-portal.service
バインド: 127.0.0.1:9081
ファイル: /opt/mikyun-portal/mikyun_vpn_engine.py
認証: なし(ローカルのみアクセス可)。外部からはNginxでIP制限
| パス | メソッド | 用途 |
|---|---|---|
| /health | GET | ヘルスチェック |
| /contracts/create | POST (JSON) | 新規契約作成・親端末・WGピア生成・conf/QR出力・NCアカウント作成 |
| /contracts/list | GET | 全契約一覧取得 |
| /contracts/{contract_id} | GET | 契約詳細取得(NC情報含む) |
| /contracts/{contract_id}/devices | GET | 契約内全端末一覧取得 |
| /devices/add-child | POST (JSON) | 子端末追加・WGキーペア生成・IP払い出し・conf/QR出力・NC任意作成 |
| /devices/promote-parent | POST (JSON) | 子端末→親端末昇格(旧親はchildに降格) |
| /devices/pause | POST (JSON) | 端末停止(WGピア維持・status=paused) |
| /devices/resume | POST (JSON) | 端末復帰(status=active) |
| /devices/delete | POST (JSON) | 端末削除(WGピア削除・wg syncconf・deleted_at設定・親端末へ容量返却) |
