2025.04.13 (์ผ)

โœจ GPT์˜ ์š”์•ฝ ใ€€

Secret Messenger ํ”„๋กœ์ ํŠธ์˜ ์‹คํ–‰ ๊ณ„ํš์„ Phase 1~6๊นŒ์ง€ ์ •๊ตํ•˜๊ฒŒ ํ™•์žฅํ•˜๋ฉฐ, ๊ฐœ๋ฐœ ์Šคํƒ์„ Flutter Web + Django ์กฐํ•ฉ์œผ๋กœ ๊ณ ๋„ํ™”ํ•˜๊ณ , ์œ„์žฅ ์ธํ„ฐํŽ˜์ด์Šค ๋ฐ ์„œ๋ฒ„ ๋ฐฐํฌ ํ๋ฆ„์„ ์ฒด๊ณ„ํ™”ํ•œ ํ•˜๋ฃจ.

๐Ÿš€ Roadmap

Execution plan for a secure, disguised Flutter Web + Django messenger targeting heavily monitored, high-risk individuals in mainland China โ€”specifically undocumented North Korean escapeesโ€” where concealment and data protection are paramount.
The application is camouflaged as a basic online calculator while providing real-time chat, file sharing, and one-way information broadcasts under the hood.


โœ… Phase 1 โ€” Planning & Architecture

  • ๐Ÿง  Define project goal and threat model
    • Audience: undocumented North Korean escapees in China
    • Mission: browser-based, install-free, secure and disguised messaging tool
    • UX disguise: calculator-style interface
  • ๐Ÿค– Select AI-driven dev workflow
    • Use GPT-4o + o1 for design, codegen, and iteration
    • Follow โ€œVibe Codingโ€ โ†’ fast, natural-language dev via AI
  • โš™๏ธ Finalize tech stack
    • Frontend: Flutter Web (Material 3, go_router, Riverpod, http)
    • Backend: Django + Django REST Framework (Django 5.x)
    • Deployment: Single VPS container (static + API), with optional Cloudflare proxy
  • ๐ŸŒ Acquire domain
    • Domain: ใ…‡ใ…‡ใ…‡.net
    • Cost: โ‚ฉ18,000/year via Korean registrar
    • Purpose: visual camouflage as an online calculator

โœ… Phase 2 โ€” VPS Setup & Base Deployment

  • ๐Ÿ’ณ Create a Vultr account and pay $10.

  • ๐Ÿ›’ Create a VPS instance
    • Region: Singapore (best GFW performance on Vultr)
    • OS: Ubuntu 22.04 x64
    • Plan: 1vCPU / 1GB RAM ($5/month)
    • SSH key or password access setup
  • ๐Ÿ” Access and initialize

    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
    
  • ๐Ÿ“ Prepare project directory and virtualenv

    mkdir /srv/ใ…‡ใ…‡ใ…‡ && cd /srv/ใ…‡ใ…‡ใ…‡
    python3 -m venv venv && source venv/bin/activate
    pip install django djangorestframework whitenoise gunicorn
    

Note: A Cloudflare proxy is recommended to hide the VPS IP and absorb DDoS.


โœ… Phase 3 โ€” Project Initialization (Django + Flutter)

๐Ÿ”ง Django Setup

  • django-admin startproject stealthcore .
    • Creates stealthcore/ folder and manage.py inside /srv/ใ…‡ใ…‡ใ…‡.
  • python manage.py startapp api
    • Creates the api/ folder for your custom logic (message handling, file uploads, broadcast notices, etc.).
  • Add 'api', 'rest_framework' to INSTALLED_APPS
    • In stealthcore/stealthcore/settings.py, e.g.:

      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
    • Creates initial database tables (SQLite by default).
  • python manage.py createsuperuser
    • Lets you access Djangoโ€™s admin panel (optional but recommended).

Future expansions:

  • /api/messages/ for group chat with TTL
  • /api/upload/ for file sharing (auto-deletion)
  • /api/notice/ for admin broadcast messages

๐Ÿ› ๏ธ Flutter Web Setup

  • flutter create ใ…‡ใ…‡ใ…‡_web
    • Produces a basic Flutter Web project.
  • Replace UI with calculator-style layout
    • Minimal example in main.dart:

      TextField(
        onChanged: (val) {
          // store user input
        },
      );
      ElevatedButton(
        onPressed: () {
          // call /api/check-trigger/
        },
        child: Text("Send"),
      );
      
    • Realistically, implement numeric keypad, basic arithmetic, etc.

  • Connect POST request to /api/check-trigger/
    • Using http:

      final response = await http.post(
        Uri.parse('/api/check-trigger/'),
        body: {'input': userInput},
      );
      
    • If valid, backend issues a token โ†’ Flutter loads hidden messenger UI.

  • flutter build web
    • Compiles your Flutter app to build/web/.
  • Copy files:

    mkdir frontend_static/
    cp -r build/web/* frontend_static/
    
    • This can be served by Nginx or Djangoโ€™s WhiteNoise.

โœ… Phase 4 โ€” Trigger API & Flutter Integration

  • In 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'})
    
  • Create /api/urls.py and register route

    from django.urls import path
    from .views import check_trigger
    
    urlpatterns = [
        path('check-trigger/', check_trigger, name='check-trigger'),
    ]
    
  • Connect from Flutter with http.post(...)
    • If "success", store token in memory (Riverpod) โ†’ show hidden UI
    • If "denied", remain a simple calculator
  • Ensure no sensitive logic in the frontend
    • All secret values (like the trigger code) live on the server.

โœ… Phase 5 โ€” Nginx & HTTPS Hosting

  • Create 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;
        }
    }
    
  • Enable config and restart:

    ln -s /etc/nginx/sites-available/ใ…‡ใ…‡ใ…‡/etc/nginx/sites-enabled/
    nginx -t && systemctl restart nginx
    
  • Enable HTTPS:

    apt install certbot python3-certbot-nginx -y
    certbot --nginx -d ใ…‡ใ…‡ใ…‡.net
    
    • Installs Letโ€™s Encrypt cert for ใ…‡ใ…‡ใ…‡.net.
    • Afterward, https://ใ…‡ใ…‡ใ…‡.net should serve your disguised calculator.

Gunicorn & systemd

  • For production, run Django with Gunicorn behind Nginx:

    gunicorn stealthcore.wsgi:application --bind 127.0.0.1:8000
    
  • Create a /etc/systemd/system/gunicorn.service to auto-restart on reboot.


โœ… Phase 6 โ€” Final Testing & Disguise Hardening

  • ๐Ÿงช Test UI & trigger
    • Visit https://ใ…‡ใ…‡ใ…‡.net
    • Input 1004 (or real trigger) โ†’ verify {"status":"success"} + token
    • Invalid input โ†’ {"status":"denied"}
  • ๐Ÿ”’ Clean frontend
    • Remove all references to โ€œchatโ€ or โ€œtriggerโ€
    • No hardcoded secrets or tokens
    • Minimal localStorage usage for ephemeral sessions
  • ๐ŸงŠ Final disguise polish
    • Fake calculator branding (title, icon, etc.)
    • Real arithmetic (optional) so itโ€™s fully plausible as a calculator
    • UI alignment, theming, and final styling
  • ๐Ÿง  Create deploy.md (internal doc)
    • How to deploy, update, rollback, and verify
    • Summarize environment variables (ใ…‡ใ…‡ใ…‡_TRIGGER, SECRET_KEY)
    • Include any security & logging best practices

๐Ÿ”ฎ Future Features

  • ๐Ÿ“ฅ Info Board (Read-Only Announcements)
  • ๐Ÿ’ฌ Group Chat with TTL-based message deletion
  • ๐Ÿ“ File Sharing (auto-expire for security)
  • ๐Ÿ”ฅ Auto-Deletion via cron/management command for expired data
  • ๐ŸŒ Cloudflare Proxy to mask VPS IP and mitigate DDoS

Use this roadmap to guide end-to-end development of ใ…‡ใ…‡ใ…‡โ€”from initial VPS setup to final production.


๐Ÿ’ญ ์ผ๊ธฐ

๊ฐœ๋ฐœ์„ ๋ฉˆ์ถ”๋ฉด ์•ˆ ๋œ๋‹ค. ์Šต๊ด€์ด ๋ง๊ฐ€์ง„๋‹ค. ๋ฒŒ์จ ์—ดํ˜์ด ์ง€๋‚ฌ๋‹ค.

ํ•˜๋ฃจ 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

์นดํ…Œ๊ณ ๋ฆฌ: ,

์ตœ๊ทผ ์ˆ˜์ •์ผ:

๋Œ“๊ธ€ ๋‚จ๊ธฐ๊ธฐ