[🛠] Secret Messenger開発日誌 #3: Roadmap Update: Phase 1-6
✨ GPTの要約
Secret Messengerプロジェクトの実行計画をPhase 1〜6まで精密に拡張し、開発スタックをFlutter Web + Djangoの組み合わせへ高度化して、偽装インターフェースとサーバーデプロイの流れを体系化した一日。
🚀 Roadmap
中国本土で厳しい監視下に置かれた高リスクの人々、特に未登録の北朝鮮脱出者を対象にした、安全で偽装されたFlutter Web + Djangoメッセンジャーの実行計画です。ここでは隠蔽性とデータ保護が最優先になります。
このアプリケーションは基本的なオンライン電卓に偽装しつつ、内部ではリアルタイムチャット、ファイル共有、一方向の情報告知を提供します。
✅ Phase 1 — 計画とアーキテクチャ
-
🧠 プロジェクト目標と脅威モデルを定義
- 対象: 中国国内の未登録の北朝鮮脱出者
- ミッション: ブラウザベース、インストール不要、安全で偽装されたメッセージングツール
- UX偽装: 電卓風インターフェース
-
🤖 AI主導の開発ワークフローを選択
- 設計、codegen、反復にGPT-4o + o1を使用
- “Vibe Coding”に従う → AIによる高速な自然言語開発
-
⚙️ 技術スタックを確定
- Frontend: Flutter Web (Material 3, go_router, Riverpod, http)
- Backend: Django + Django REST Framework (Django 5.x)
- Deployment: 単一VPSコンテナ (static + API)、必要に応じてCloudflare proxy
-
🌐 ドメインを取得
-
Domain:
___.net - Cost: 韓国レジストラ経由で₩18,000/year
- Purpose: オンライン電卓として視覚的に偽装
-
Domain:
✅ Phase 2 — VPSセットアップと基本デプロイ
-
💳 Vultrアカウントを作成し、$10を支払う。
-
🛒 VPS instanceを作成
- Region: Singapore (Vultr上でGFW性能が最も良い)
- OS: Ubuntu 22.04 x64
- Plan: 1vCPU / 1GB RAM ($5/month)
- SSH keyまたはパスワードアクセスをセットアップ
-
🔐 アクセスして初期化
ssh root@<IP> apt update && apt upgrade -y apt install python3-pip python3-venv nginx git ufw -y ufw allow OpenSSH && ufw allow 'Nginx Full' && ufw enable -
📁 プロジェクトディレクトリとvirtualenvを準備
mkdir /srv/___ && cd /srv/___ python3 -m venv venv && source venv/bin/activate pip install django djangorestframework whitenoise gunicorn
Note: VPS IPを隠しDDoSを吸収するため、Cloudflare proxyを推奨します。
✅ Phase 3 — プロジェクト初期化 (Django + Flutter)
🔧 Django Setup
-
django-admin startproject stealthcore .-
/srv/___の中にstealthcore/フォルダとmanage.pyを作成します。
-
-
python manage.py startapp api- 独自ロジック(メッセージ処理、ファイルアップロード、ブロードキャスト通知など)用の
api/フォルダを作成します。
- 独自ロジック(メッセージ処理、ファイルアップロード、ブロードキャスト通知など)用の
-
INSTALLED_APPSに'api'、'rest_framework'を追加-
stealthcore/stealthcore/settings.pyで、例:INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'rest_framework', ## Add 'api', ## Add ]
-
-
python manage.py migrate- 初期database tableを作成します (デフォルトではSQLite)。
-
python manage.py createsuperuser- Djangoのadmin panelへアクセスできるようにします (任意だが推奨)。
Future expansions:
- TTL付きグループチャット用の
/api/messages/- ファイル共有(自動削除)用の
/api/upload/- 管理者ブロードキャストメッセージ用の
/api/notice/
🛠️ Flutter Web Setup
-
flutter create ___web- 基本的なFlutter Webプロジェクトを生成します。
-
UIを置き換える 電卓風レイアウトへ
-
main.dartでの最小例:TextField( onChanged: (val) { // store user input }, ); ElevatedButton( onPressed: () { // call /api/check-trigger/ }, child: Text("Send"), ); -
現実的には、数字キーパッド、基本的な四則演算などを実装します。
-
-
/api/check-trigger/へPOST requestを接続-
httpを使用:final response = await http.post( Uri.parse('/api/check-trigger/'), body: {'input': userInput}, ); -
有効なら、backendがtokenを発行 → Flutterが隠しmessenger UIを読み込む。
-
-
flutter build web- Flutterアプリを
build/web/へコンパイルします。
- Flutterアプリを
-
ファイルをコピー:
mkdir frontend_static/ cp -r build/web/* frontend_static/- これはNginxまたはDjangoのWhiteNoiseで配信できます。
✅ Phase 4 — Trigger APIとFlutter統合
-
Djangoの
api/views.pyで:from rest_framework.decorators import api_view from rest_framework.response import Response import os @api_view(['POST']) def check_trigger(request): ## Production: store real trigger in os.environ or DB valid_trigger = os.environ.get('___TRIGGER', '1004') if request.data.get('input') == valid_trigger: return Response({'status': 'success', 'token': 'XYZ'}) return Response({'status': 'denied'}) -
/api/urls.pyを作成し、routeを登録from django.urls import path from .views import check_trigger urlpatterns = [ path('check-trigger/', check_trigger, name='check-trigger'), ] -
Flutterから
http.post(...)で接続-
"success"なら、tokenをmemory(Riverpod)に保存 → 隠しUIを表示 -
"denied"なら、単純な電卓のまま残す
-
-
frontendに機密ロジックがないことを確認
- すべてのsecret value(trigger codeなど)はサーバー上に置く。
✅ Phase 5 — Nginx & HTTPS Hosting
-
Nginx configを作成:
server { listen 80; server_name ___.net; location /static/ { alias /srv/___/frontend_static/; } location / { proxy_pass http://127.0.0.1:8000; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; } } -
configを有効化して再起動:
ln -s /etc/nginx/sites-available/___ /etc/nginx/sites-enabled/ nginx -t && systemctl restart nginx -
HTTPSを有効化:
apt install certbot python3-certbot-nginx -y certbot --nginx -d ___.net-
___.net用のLet’s Encrypt証明書をインストールします。 - その後、
https://___.netで偽装電卓が配信されるはずです。
-
Gunicorn & systemd
本番では、Nginxの後ろでGunicornを使ってDjangoを実行:
gunicorn stealthcore.wsgi:application --bind 127.0.0.1:8000再起動時に自動復旧するよう、
/etc/systemd/system/gunicorn.serviceを作成します。
✅ Phase 6 — 最終テストと偽装の堅牢化
-
🧪 UIとtriggerをテスト
-
https://___.netへアクセス -
1004(または本当のtrigger)を入力 →{"status":"success"}+ tokenを確認 -
無効な入力 →
{"status":"denied"}を確認
-
-
🔒 frontendをクリーンにする
- “chat”や”trigger”への参照をすべて削除
- hardcoded secretsやtokensなし
- ephemeral sessionsのため、localStorage使用は最小限
-
🧊 最終偽装を磨く
- 偽の電卓branding (title、iconなど)
- 完全に電卓として信じられるよう、実際の演算機能を入れる (任意)
- UI alignment、theming、final styling
-
🧠
deploy.mdを作成 (内部ドキュメント)- デプロイ、更新、rollback、検証方法
-
環境変数(
___TRIGGER、SECRET_KEY)を要約 - security & logging best practicesを含める
🔮 Future Features
- 📥 Info Board (読み取り専用のお知らせ)
- 💬 TTLベースのメッセージ削除付きGroup Chat
- 📁 File Sharing (セキュリティのため自動expire)
- 🔥 期限切れデータ用のcron/management commandによるAuto-Deletion
- 🌐 VPS IPを隠しDDoSを緩和するCloudflare Proxy
このロードマップを使って、初期VPSセットアップから最終本番化まで、___のend-to-end developmentを進める。
💭 日記
開発を止めてはいけない。習慣が崩れる。もう十日も経った。
一日10分でも必ず開発して、どれだけ小さな変化でも開発日誌を書こう。
👀 Git Log
| Date | Type | Message |
|---|---|---|
| 25.04.13 Sun | docs(roadmap) | refine and finalize Phase 1–6 plan for secure disguised messenger (HEAD → main, origin/main) |
| 25.04.03 Thu | docs(roadmap) | edit full Phase 0–3 checklist for Flutter Web + Django deployment |
| 25.04.03 Thu | docs | add dev-principles and roadmap with links from README |
| 25.04.03 Thu | docs(README) | add more details to roadmap |
| 25.04.03 Thu | docs(README) | change backend from Node to Django, and change from Kor to Eng |
| 25.04.02 Wed | docs(README) | add minor details for user |
| 25.04.01 Tue | docs(README) | add description, tech stack, features, roadmap, … |
| 25.04.01 Tue | - | Initial commit |
コメントする