[๐ ] Log Pengembangan Secret Messenger #3: Update Roadmap: Phase 1-6
โจ Ringkasan GPT ใ
Hari ketika rencana eksekusi proyek Secret Messenger diperluas secara lebih rinci sampai Phase 1-6, tech stack dimatangkan dengan kombinasi Flutter Web + Django, serta alur antarmuka tersamar dan deployment server disusun lebih sistematis.
๐ Roadmap
Rencana eksekusi untuk messenger Flutter Web + Django yang aman dan tersamar, ditujukan bagi individu berisiko tinggi dan sangat diawasi di daratan China โ khususnya pembelot Korea Utara tanpa dokumen โ ketika penyamaran dan perlindungan data menjadi hal mutlak. Aplikasi ini disamarkan sebagai kalkulator online sederhana, sambil menyediakan chat real-time, berbagi file, dan siaran informasi satu arah di baliknya.
โ Phase 1 โ Perencanaan & Arsitektur
-
๐ง Menentukan tujuan proyek dan threat model
- Audiens: pembelot Korea Utara tanpa dokumen di China
- Misi: alat messaging aman, tersamar, berbasis browser, dan tanpa instalasi
- Penyamaran UX: antarmuka bergaya kalkulator
-
๐ค Memilih workflow pengembangan berbasis AI
- Menggunakan GPT-4o + o1 untuk desain, codegen, dan iterasi
- Mengikuti โVibe Codingโ โ pengembangan cepat berbasis bahasa alami lewat AI
-
โ๏ธ Menetapkan tech stack final
- Frontend: Flutter Web (Material 3, go_router, Riverpod, http)
- Backend: Django + Django REST Framework (Django 5.x)
- Deployment: satu container VPS (static + API), dengan Cloudflare proxy opsional
-
๐ Mendapatkan domain
-
Domain:
___.net - Biaya: โฉ18,000/tahun lewat registrar Korea
- Tujuan: kamuflase visual sebagai kalkulator online
-
Domain:
โ Phase 2 โ Setup VPS & Deployment Dasar
-
๐ณ Membuat akun Vultr dan membayar $10.
-
๐ Membuat instance VPS
- Region: Singapore (performa GFW terbaik di Vultr)
- OS: Ubuntu 22.04 x64
- Plan: 1vCPU / RAM 1GB ($5/bulan)
- Setup SSH key atau akses password
-
๐ Akses dan inisialisasi
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 -
๐ Menyiapkan direktori proyek dan virtualenv
mkdir /srv/___ && cd /srv/___ python3 -m venv venv && source venv/bin/activate pip install django djangorestframework whitenoise gunicorn
Catatan: Cloudflare proxy direkomendasikan untuk menyembunyikan IP VPS dan menyerap DDoS.
โ Phase 3 โ Inisialisasi Proyek (Django + Flutter)
๐ง Setup Django
-
django-admin startproject stealthcore .- Membuat folder
stealthcore/danmanage.pydi dalam/srv/___.
- Membuat folder
-
python manage.py startapp api- Membuat folder
api/untuk logika khususmu (penanganan pesan, upload file, broadcast notice, dll.).
- Membuat folder
-
Menambahkan
'api','rest_framework'keINSTALLED_APPS-
Di
stealthcore/stealthcore/settings.py, misalnya:INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'rest_framework', ## Tambahkan 'api', ## Tambahkan ]
-
-
python manage.py migrate- Membuat tabel database awal (SQLite secara default).
-
python manage.py createsuperuser- Memungkinkan akses ke panel admin Django (opsional tetapi direkomendasikan).
Ekspansi mendatang:
/api/messages/untuk chat grup dengan TTL/api/upload/untuk berbagi file (penghapusan otomatis)/api/notice/untuk pesan broadcast admin
๐ ๏ธ Setup Flutter Web
-
flutter create ___web- Menghasilkan proyek Flutter Web dasar.
-
Mengganti UI dengan layout bergaya kalkulator
-
Contoh minimal di
main.dart:TextField( onChanged: (val) { // simpan input pengguna }, ); ElevatedButton( onPressed: () { // panggil /api/check-trigger/ }, child: Text("Send"), ); -
Secara realistis, implementasikan keypad numerik, aritmetika dasar, dll.
-
-
Menghubungkan request POST ke
/api/check-trigger/-
Menggunakan
http:final response = await http.post( Uri.parse('/api/check-trigger/'), body: {'input': userInput}, ); -
Jika valid, backend menerbitkan token โ Flutter memuat UI messenger tersembunyi.
-
-
flutter build web- Mengompilasi app Flutter ke
build/web/.
- Mengompilasi app Flutter ke
-
Menyalin file:
mkdir frontend_static/ cp -r build/web/* frontend_static/- Ini bisa disajikan oleh Nginx atau WhiteNoise milik Django.
โ Phase 4 โ Trigger API & Integrasi Flutter
-
Di 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: simpan trigger asli di os.environ atau 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'}) -
Membuat
/api/urls.pydan mendaftarkan routefrom django.urls import path from .views import check_trigger urlpatterns = [ path('check-trigger/', check_trigger, name='check-trigger'), ] -
Menghubungkan dari Flutter dengan
http.post(...)- Jika
"success", simpan token di memory (Riverpod) โ tampilkan UI tersembunyi - Jika
"denied", tetap menjadi kalkulator sederhana
- Jika
-
Memastikan tidak ada logika sensitif di frontend
- Semua nilai rahasia (seperti kode trigger) berada di server.
โ Phase 5 โ Hosting Nginx & HTTPS
-
Membuat konfigurasi Nginx:
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; } } -
Mengaktifkan konfigurasi dan restart:
ln -s /etc/nginx/sites-available/___/etc/nginx/sites-enabled/ nginx -t && systemctl restart nginx -
Mengaktifkan HTTPS:
apt install certbot python3-certbot-nginx -y certbot --nginx -d ___.net- Menginstal sertifikat Letโs Encrypt untuk
___.net. - Setelah itu,
https://___.netseharusnya menyajikan kalkulator tersamar.
- Menginstal sertifikat Letโs Encrypt untuk
Gunicorn & systemd
Untuk production, jalankan Django dengan Gunicorn di belakang Nginx:
gunicorn stealthcore.wsgi:application --bind 127.0.0.1:8000Buat
/etc/systemd/system/gunicorn.serviceagar otomatis restart saat reboot.
โ Phase 6 โ Pengujian Akhir & Hardening Penyamaran
-
๐งช Menguji UI & trigger
-
Mengunjungi
https://___.net -
Memasukkan
1004(atau trigger asli) โ verifikasi{"status":"success"}+ token -
Input tidak valid โ
{"status":"denied"}
-
Mengunjungi
-
๐ Membersihkan frontend
- Menghapus semua referensi ke โchatโ atau โtriggerโ
- Tidak ada secret atau token hardcoded
- Penggunaan localStorage minimal untuk sesi sementara
-
๐ง Polesan akhir penyamaran
- Branding kalkulator palsu (judul, ikon, dll.)
- Aritmetika nyata (opsional) agar sepenuhnya masuk akal sebagai kalkulator
- Alignment UI, theming, dan styling final
-
๐ง Membuat
deploy.md(dokumen internal)- Cara deploy, update, rollback, dan verifikasi
-
Merangkum environment variable (
___TRIGGER,SECRET_KEY) - Mencakup praktik terbaik keamanan & logging
๐ฎ Fitur Masa Depan
- ๐ฅ Info Board (pengumuman hanya baca)
- ๐ฌ Group Chat dengan penghapusan pesan berbasis TTL
- ๐ Berbagi File (auto-expire demi keamanan)
- ๐ฅ Penghapusan Otomatis lewat cron/management command untuk data yang kedaluwarsa
- ๐ Cloudflare Proxy untuk menyamarkan IP VPS dan meredam DDoS
Gunakan roadmap ini untuk memandu pengembangan end-to-end ___ โ dari setup VPS awal sampai production final.
๐ญ Diary
Pengembangan tidak boleh berhenti. Kalau berhenti, kebiasaannya rusak. Sudah sepuluh hari berlalu.
Walau hanya 10 menit sehari, aku harus tetap mengembangkan sesuatu, dan sekecil apa pun perubahannya, aku harus menulis log pengembangan.
๐ 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 |
Tinggalkan komentar