みーきゅんクラウド — 引き継ぎ現状
📌 引き継ぎ現状 2026-03-22
本日完了した作業・実装済み機能・未実装一覧・次のTODO・IP採番ルール変更・WireGuard設定基準値・主要ファイル一覧をまとめる。
2026-03-22 更新
顧客ポータル稼働中
IP採番変更済み
DNS修正済み
顧客ポータル稼働中
IP採番変更済み
DNS修正済み
本日完了
7 項目
DNS・IP採番・QR・SSL等
実装済み機能
8 機能
ポータル全基本機能
未実装
2 機能
Nextcloud連携
次のTODO
5 項目
優先度高
1 — 本日完了した作業
✅
WireGuard DNS設定のズレを修正
1.1.1.1 → 10.251.0.254 に変更。WG接続中に cloud.k2-o.net が正しく内部解決されるようになった。
✅
IP採番ロジックを共有セグメント方式に変更
mikyun_vpn_engine.py を修正。旧:契約ごとに固定IP返し → 新:10.251.0.0/24の空きIPを全契約共通でスキャン。
✅
顧客ポータルのQR認証問題を修正
ui_admin.py に public_router を追加。/ui/devices/{device_id}/qr を認証除外し、/client からQRが表示できるようになった。
✅
VPSにNginx設定追加(portal.wan-secure.net)
/etc/nginx/conf.d/portal.conf を作成。10.250.0.2:9000 へプロキシ。
✅
SSL証明書取得
portal.wan-secure.net の証明書を certbot で取得。有効期限 2026-06-19・自動更新設定済み。
✅
M010の親端末IPを更新
customer_devices の wg_ip を 10.200.10.2 → 10.251.0.10 に変更。iPhoneからポータルログインが可能になった。
✅
顧客ポータルへのログイン・動作確認完了
https://portal.wan-secure.net/client にアクセス。M010・パスフレーズ mikyun-pass-001 でログイン成功。
2 — 実装済み機能
| 機能 | 状態 | 備考 |
|---|---|---|
| 親端末IP自動認識+パスフレーズログイン | ✓ 完了 | WG接続元IPをDBと照合 |
| 契約情報・端末一覧表示 | ✓ 完了 | WG通信量・最終接続時刻も表示 |
| QR表示 | ✓ 完了 | 2026-03-22 認証除外修正済み |
| conf ダウンロード | ✓ 完了 | .conf ファイル直接DL |
| 子端末追加 | ✓ 完了 | 空きIP自動採番・WG peer追加・QR生成 |
| 一時停止 / 復旧 | ✓ 完了 | iptables DROP制御と連動 |
| 親端末昇格 | ✓ 完了 | 子端末から親へのトランザクション処理 |
| 子端末削除 | ✓ 完了 | 論理削除・WG peer除去 |
| Nextcloud容量・ID・PW連携表示 | ○ 未実装 | 次フェーズ |
| QR作成時Nextcloudアカウント自動生成 | ○ 未実装 | 次フェーズ |
3 — 次に実装が必要なもの
Priority — High
◦QR・契約作成時に Nextcloud アカウント(ID・PW・容量)を自動生成・割り当て
◦顧客ポータルに Nextcloud 接続情報(URL・ID・PW・使用量)を表示
◦契約ID・端末管理・QR・IP・Nextcloud を一元同期できる管理画面の整備
◦運営用ポータル(/ui)の完成 + Basic認証の追加
◦ローカルPC(192.168.20.x)からも運営ポータルにアクセスできるようにする
Priority — Medium
◦契約停止時の Nextcloud アカウント凍結連動
◦portal_logs(顧客操作ログ)テーブル追加
◦notifications テーブル・メンテナンス通知機能
◦iptables 永続化(再起動後も pause 状態を保持)
Priority — Low
◦Collabora グローバルIP動的問題の恒久対策
◦Supermicro LUKS 自動アンロックスクリプト再構築
◦Borg バックアップ自動化
4 — IP採番ルール(2026-03-22 変更)
| 項目 | 内容 |
|---|---|
| 使用セグメント | 10.251.0.0/24(全契約共有) |
| 予約IP | 10.251.0.1(VPS/GW)、10.251.0.254(DNSサーバ) |
| 割当範囲 | 10.251.0.2 〜 10.251.0.253(最大252台) |
| 採番方式 | customer_devices の使用中IPを全件取得し、空き最小番号を割り当て |
| 重複防止 | 空きスキャン+DBのwg_ip UNIQUE制約で二重防御 |
| 旧契約 | A001・A002・M010は旧セグメント(10.200.x.x)のまま残存。新規契約から10.251.0.xが割り当てられる。 |
5 — WireGuard設定基準値
[Interface] PrivateKey = <クライアント秘密鍵> Address = 10.251.0.X/24 DNS = 10.251.0.254 [Peer] PublicKey = F6jJ+/xR8YGx45kH1YQvCj412N1HcUuKsHAH5hJaKV0= Endpoint = vpn.wan-secure.net:51820 AllowedIPs = 0.0.0.0/0 PersistentKeepalive = 25
| 項目 | 値 | 備考 |
|---|---|---|
| エンドポイント | vpn.wan-secure.net:51820 | |
| DNS | 10.251.0.254 | 2026-03-22 修正済み(旧: 1.1.1.1) |
| AllowedIPs(端末用conf) | 0.0.0.0/0 | 全トラフィックをVPN経由 |
| AllowedIPs(サーバー側peer) | 10.251.0.X/32 | 変更禁止。0.0.0.0/0にすると壊れる |
| Keepalive | 25秒 |
6 — 主要ファイル一覧
| ファイル | 役割 | 備考 |
|---|---|---|
| /opt/mikyun-portal/mikyun_vpn_engine.py | VPN Engine API(:9081)。IP採番・契約作成・端末発行・WG設定生成 | 2026-03-22 修正済み |
| /opt/mikyun-portal/mikyun_vpn_engine.py.bak | 上記のバックアップ | 修正前 |
| /root/mikyun-cloud/app/main.py | ポータル本体(:9000)。Basic認証ミドルウェア管理 | 2026-03-22 認証除外修正済み |
| /root/mikyun-cloud/app/client/client_ui.py | 顧客向けポータルUI(/client) | |
| /root/mikyun-cloud/app/ui_admin.py | 管理者向けUI(/ui)。public_router追加済み | 2026-03-22 修正済み |
| /opt/mikyun/bin/wg_issue_device.py | conf・QR生成スクリプト(IP採番はしない) | |
| /etc/wireguard/wg1.conf | サーバー側WireGuard設定(peerブロック管理) | |
| /opt/mikyun/output/client-configs/ | 発行済みconfファイル置き場 | |
| /opt/mikyun/output/qr/ | 発行済みQR PNG置き場 | |
| /etc/nginx/conf.d/portal.conf | VPS Nginx portal.wan-secure.net設定 | 2026-03-22 新規作成 |
7 — DB現状
mysql -u mikyun -pStrongPassword123! mikyun_cloud \
-e "SELECT contract_id, wg_ip, is_parent, device_role, status \
FROM customer_devices WHERE deleted_at IS NULL;"
+-------------+-------------+-----------+-------------+--------+
| contract_id | wg_ip | is_parent | device_role | status |
+-------------+-------------+-----------+-------------+--------+
| A001 | 10.200.1.2 | 1 | parent | active |
| A002 | 10.200.2.2 | 1 | parent | active |
| A002 | 10.200.2.3 | 0 | child | issued |
| M010 | 10.251.0.10 | 1 | parent | issued | ← 本日更新
| M010 | 10.200.10.3 | 0 | child | active |
| M010 | 10.200.10.4 | 0 | child | issued |
+-------------+-------------+-----------+-------------+--------+
⚠️
混在注意: 旧テーブル(customers・wg_allocations)と新テーブル(contracts・customer_devices)が混在しています。旧ポータル(main.py の一部)は旧テーブルを参照。新ポータル(client_ui.py・ui_admin.py)は新テーブルを使用。混在期間中は両方を壊さないよう注意してください。
8 — サービスURL一覧
| サービス | URL | アクセス条件 |
|---|---|---|
| 顧客ポータル | https://portal.wan-secure.net/client | WG接続中の親端末のみ |
| 管理者ポータル | https://portal.wan-secure.net/ui/contracts | Basic認証 / 許可IP |
| Nextcloud | https://cloud.k2-o.net | WG接続中 / ローカルPC / 管理者IP |
| Collabora | https://office.wan-secure.net | WG接続中 / ローカルPC |
| VPN Engine API | http://127.0.0.1:9081 | R640内部のみ |
| ポータル API docs | https://portal.wan-secure.net/docs | Basic認証 |
“`
