Nextcloud Talk — 外部ゲスト招待 構築 → 廃止 (記録)
// NC TALK — 最終更新: 2026-05-14 / 外部ゲスト招待は廃止、 内部ユーザー間Talkのみ運用
廃止済 talk.katuocloud.com / Cloudflare Tunnel / port 9082 nginx — 全撤去 運用中 内部Talk (cloud.k2-o.net/apps/spreed/) のみ
現状 (2026-05-14)
Nextcloud Talk は内部ユーザー間 (WireGuard 接続済顧客) のみで運用中。 外部ゲスト招待機能は 2026-04-05 にロールバック済で、 関連インフラは全て撤去済。
| 機能 | 状態 | 経路 |
|---|---|---|
| 内部 Talk (チャット / 通話) | 運用中 | WG → cloud.k2-o.net → maguro NC Docker |
| 外部ゲスト招待 (talk.katuocloud.com) | ✗ 廃止 (2026-04-05) | Cloudflare Tunnel + R640 nginx:9082 → 全削除 |
なぜ廃止したか (経緯)
2026-04-05 に「外部ゲスト招待ビデオ通話 +¥2,000/月」 オプションとして実装・公開。 ところが以下の制約から、 新ビジネスモデル「追加端末 = 追加ユーザー枠」 への移行を判断:
- ユーザー単位の制限が技術的に困難
- 参加者数の制限ができない (Cloudflare Tunnel + nginx 全許可方式)
- WG経由なしで NC API が露出するセキュリティ懸念
- 顧客にとっての価値は「友人共有」が本質 → WG QR発行で対応可能
新モデル (現行運用): 追加端末オプション (+¥500/月) で友人にWG QR を発行 → 友人も完全な内部ユーザーとして NC アカウント取得 → Talk機能で自由にチャット・通話。 契約者のストレージクォータを共有する形式。
廃止前の実装 (記録として残す)
営業材料としての「過去にやった実績」と、 将来再実装する際の参考として、 旧構成と教訓を残しておく。
// 旧アーキテクチャ (2026-04-05 廃止)
【外部ゲスト (WG不要)】
↓
https://talk.katuocloud.com/call/xxxxx
↓
Cloudflare Tunnel (6ace0e0b-373d-452f-80be-af40048d0875)
↓
R640 nginx :9082 (talk.katuocloud.com 専用 vhost)
↓
Nextcloud Docker :9080
↓
Nextcloud Talk
【かつおcloud顧客 (WG接続)】
↓
https://cloud.k2-o.net/apps/spreed/
↓
RTX1300 NAT (TCP 443) → R640 SNI → maguro NC
// 旧設定の主要パラメータ
| 項目 | 値 |
|---|---|
| 外部URL | https://talk.katuocloud.com/ |
| Cloudflare Tunnel UUID | 6ace0e0b-373d-452f-80be-af40048d0875 (現在は portal.katuocloud.com 用としてのみ稼働) |
| R640 nginx vhost | port 9082 (/etc/nginx/sites-available/talk.katuocloud.com) |
| NC config | overwritehost=talk.katuocloud.com, spreed.baseUrl, trusted_domains[2] |
2026-04-05 ロールバック作業 (記録)
以下を全て実施し、 talk.katuocloud.com 関連インフラは完全撤去済。
// Nextcloud config 復元
# 当時のバックアップから復元 docker exec nextcloud-stack-app-1 php occ maintenance:mode --on cp /srv/storage/SM-storage/backup/nextcloud/20260405_181221/config.php \ /var/lib/docker/volumes/nextcloud-stack_nextcloud/_data/config/config.php docker exec nextcloud-stack-app-1 php occ config:app:delete spreed enable_guests docker exec nextcloud-stack-app-1 php occ config:app:delete spreed start_conversations docker exec nextcloud-stack-app-1 php occ maintenance:repair --include-expensive docker exec nextcloud-stack-app-1 php occ maintenance:mode --off # 復元後の手動修正 (overwritehost が誤値だったため) docker exec nextcloud-stack-app-1 php occ config:system:set overwritehost --value="cloud.k2-o.net" docker exec nextcloud-stack-app-1 php occ config:system:set overwrite.cli.url --value="https://cloud.k2-o.net" docker exec nextcloud-stack-app-1 php occ config:system:delete trusted_domains 2
// インフラ撤去
# R640 nginx 設定削除
sudo rm /etc/nginx/sites-enabled/talk.katuocloud.com
sudo rm /etc/nginx/sites-available/talk.katuocloud.com
sudo nginx -t && sudo systemctl reload nginx
# Cloudflare Tunnel から talk エンドポイント削除
# /etc/cloudflared/config.yml を portal のみに変更
tunnel: 6ace0e0b-373d-452f-80be-af40048d0875
credentials-file: /root/.cloudflared/6ace0e0b-373d-452f-80be-af40048d0875.json
ingress:
- hostname: portal.katuocloud.com
service: http://127.0.0.1:9000
- service: http_status:404
sudo systemctl restart cloudflared
# Cloudflare DNS から CNAME talk.katuocloud.com 削除 (手動 Dashboard 操作)
# Stripe 商品「ゲスト招待ビデオ通話」 (price_1TIg2jDxP0kEA5q8qeDO28f9) を削除
// コード修正
| ファイル | 変更 |
|---|---|
R640 FastAPI main.py | STRIPE_PRICE_VIDEO 削除 + Stripe line item 追加処理 (653-654行) 削除 |
R640 .env | STRIPE_PRICE_VIDEO 行削除 |
WordPress functions.php | 「ゲスト招待ビデオ」表示行 215-216 / Telegram 通知行 532 / $guest_video 関連削除、 $guest_video = false 固定化 |
互換性のため残置: guest_video_enabled フォームパラメータ・DBカラム・関数パラメータは「常に no/false」 で書き込み続ける形で温存。 将来の機能拡張で再使用可能な構造を維持。
2026-05-14 確認: R640 再構築 (Phase 3) 時に旧 nginx 設定 / Cloudflare Tunnel ingress は OS 再インストールで完全消失。 maguro へ NC 移植後の
config.php は overwritehost=cloud.k2-o.net + trusted_domains= cloud.k2-o.net, office.wan-secure.net で正常運用。
現在の Talk 利用方法 (顧客向け)
- WireGuard VPN に接続
https://cloud.k2-o.net/で Nextcloud にログイン- Talk アプリを開く
- 「新しい会話」 で参加者 (NCユーザー = 自分の追加端末 = 友人) を選択
- チャット / 音声通話 / ビデオ通話 が利用可能
友人を追加するには:
- 顧客ポータル (
https://cloud.k2-o.net/client/) でログイン - 「子端末追加」 で +¥500/月 オプションを購入
- 生成された WG QR を友人に渡す
- 友人は完全な内部ユーザーとして NC アカウントを取得し、 Talk で参加可能
将来検討事項
- ! TURN/STUN サーバー設定 (NAT越え通話の品質向上) — 旧 wg2 → VPS で TURN を運用する計画もあったが、 VPS 解約に伴い R640 / maguro 上で再検討
- ! Talk High-Performance Backend (HPB) 導入検討 — 同時通話数増加時
- ! 外部ゲスト招待を再導入する場合は、 (a) 招待トークン単位の TTL + (b) 参加人数制限 + (c) 専用ストリーミング経路、 の3点を設計してから
関連ファイルパス (現状)
| 種類 | パス |
|---|---|
| NC config.php | maguro Docker内 /home/xs273132/wanchance.com/public_html/config/config.php |
| NC Talk ログ | Docker内 /home/xs273132/wanchance.com/public_html/data/nextcloud.log |
| NC バックアップ | maguro /srv/storage/SM-storage/backup/nextcloud/ |
| nginx cloud.k2-o.net | maguro /etc/nginx/sites-enabled/cloud.k2-o.net |
| Cloudflare Tunnel (portal のみ) | R640 /etc/cloudflared/config.yml |
結論: Nextcloud Talk は「内部ユーザー間 (WG必須)」 限定でシンプル運用中。 外部ゲスト招待機能は構築〜廃止までの試行錯誤を経て「追加端末 = 追加ユーザー枠」 モデルに収束。 既存契約は全てテストのため顧客への影響はゼロで完了。