[🛠] Diário de desenvolvimento do Secret Messenger #3: Atualização do roadmap: Fases 1-6
✨ Resumo do GPT
Um dia em que expandi com mais precisão o plano de execução do projeto Secret Messenger até as Fases 1-6, aprimorei a stack de desenvolvimento com Flutter Web + Django e sistematizei a interface disfarçada e o fluxo de deploy do servidor.
🚀 Roadmap
Plano de execução para um messenger seguro e disfarçado em Flutter Web + Django, voltado a indivíduos de alto risco e fortemente monitorados na China continental — especificamente desertores norte-coreanos indocumentados —, onde ocultação e proteção de dados são essenciais. O aplicativo é camuflado como uma calculadora online básica, enquanto por baixo oferece chat em tempo real, compartilhamento de arquivos e transmissões unidirecionais de informações.
✅ Fase 1 — Planejamento e arquitetura
-
🧠 Definir objetivo do projeto e modelo de ameaça
- Público: desertores norte-coreanos indocumentados na China
- Missão: ferramenta de mensagens segura, disfarçada, baseada em navegador e sem instalação
- Disfarce de UX: interface em estilo de calculadora
-
🤖 Selecionar fluxo de desenvolvimento conduzido por IA
- Usar GPT-4o + o1 para design, codegen e iteração
- Seguir “Vibe Coding” → desenvolvimento rápido em linguagem natural via IA
-
⚙️ Finalizar stack técnica
- Frontend: Flutter Web (Material 3, go_router, Riverpod, http)
- Backend: Django + Django REST Framework (Django 5.x)
- Deploy: contêiner único em VPS (estático + API), com proxy Cloudflare opcional
-
🌐 Adquirir domínio
-
Domínio:
ㅇㅇㅇ.net - Custo: ₩18,000/ano por registrador coreano
- Propósito: camuflagem visual como calculadora online
-
Domínio:
✅ Fase 2 — Configuração da VPS e deploy base
-
💳 Criar uma conta na Vultr e pagar $10.
-
🛒 Criar uma instância VPS
- Região: Singapore (melhor desempenho de GFW na Vultr)
- OS: Ubuntu 22.04 x64
- Plano: 1vCPU / 1GB RAM ($5/mês)
- Configuração de chave SSH ou acesso por senha
-
🔐 Acessar e inicializar
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 -
📁 Preparar diretório do projeto e virtualenv
mkdir /srv/ㅇㅇㅇ && cd /srv/ㅇㅇㅇ python3 -m venv venv && source venv/bin/activate pip install django djangorestframework whitenoise gunicorn
Observação: Um proxy Cloudflare é recomendado para esconder o IP da VPS e absorver DDoS.
✅ Fase 3 — Inicialização do projeto (Django + Flutter)
🔧 Configuração do Django
-
django-admin startproject stealthcore .- Cria a pasta
stealthcore/e omanage.pydentro de/srv/ㅇㅇㅇ.
- Cria a pasta
-
python manage.py startapp api- Cria a pasta
api/para sua lógica personalizada (tratamento de mensagens, uploads de arquivos, avisos de transmissão etc.).
- Cria a pasta
-
Adicionar
'api','rest_framework'aINSTALLED_APPS-
Em
stealthcore/stealthcore/settings.py, por exemplo: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- Cria as tabelas iniciais do banco de dados (SQLite por padrão).
-
python manage.py createsuperuser- Permite acessar o painel de administração do Django (opcional, mas recomendado).
Expansões futuras:
/api/messages/para chat em grupo com TTL/api/upload/para compartilhamento de arquivos (exclusão automática)/api/notice/para mensagens de transmissão do administrador
🛠️ Configuração do Flutter Web
-
flutter create ㅇㅇㅇ_web- Gera um projeto Flutter Web básico.
-
Substituir a UI por um layout em estilo de calculadora
-
Exemplo mínimo em
main.dart:TextField( onChanged: (val) { // store user input }, ); ElevatedButton( onPressed: () { // call /api/check-trigger/ }, child: Text("Send"), ); -
Na prática, implementar teclado numérico, aritmética básica etc.
-
-
Conectar requisição POST a
/api/check-trigger/-
Usando
http:final response = await http.post( Uri.parse('/api/check-trigger/'), body: {'input': userInput}, ); -
Se for válido, o backend emite um token → o Flutter carrega a UI oculta do messenger.
-
-
flutter build web- Compila seu app Flutter para
build/web/.
- Compila seu app Flutter para
-
Copiar arquivos:
mkdir frontend_static/ cp -r build/web/* frontend_static/- Isso pode ser servido pelo Nginx ou pelo WhiteNoise do Django.
✅ Fase 4 — API de gatilho e integração com Flutter
-
Em
api/views.pydo Django: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'}) -
Criar
/api/urls.pye registrar a rotafrom django.urls import path from .views import check_trigger urlpatterns = [ path('check-trigger/', check_trigger, name='check-trigger'), ] -
Conectar a partir do Flutter com
http.post(...)- Se for
"success", armazenar token em memória (Riverpod) → mostrar UI oculta - Se for
"denied", permanecer como uma calculadora simples
- Se for
-
Garantir que não haja lógica sensível no frontend
- Todos os valores secretos (como o código de gatilho) ficam no servidor.
✅ Fase 5 — Hospedagem com Nginx e HTTPS
-
Criar configuração do 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; } } -
Ativar configuração e reiniciar:
ln -s /etc/nginx/sites-available/ㅇㅇㅇ/etc/nginx/sites-enabled/ nginx -t && systemctl restart nginx -
Ativar HTTPS:
apt install certbot python3-certbot-nginx -y certbot --nginx -d ㅇㅇㅇ.net- Instala o certificado Let’s Encrypt para
ㅇㅇㅇ.net. - Depois disso,
https://ㅇㅇㅇ.netdeve servir sua calculadora disfarçada.
- Instala o certificado Let’s Encrypt para
Gunicorn & systemd
Em produção, rodar Django com Gunicorn atrás do Nginx:
gunicorn stealthcore.wsgi:application --bind 127.0.0.1:8000Criar um
/etc/systemd/system/gunicorn.servicepara reiniciar automaticamente no boot.
✅ Fase 6 — Testes finais e hardening do disfarce
-
🧪 Testar UI e gatilho
-
Acessar
https://ㅇㅇㅇ.net -
Inserir
1004(ou o gatilho real) → verificar{"status":"success"}+ token -
Entrada inválida →
{"status":"denied"}
-
Acessar
-
🔒 Limpar frontend
- Remover todas as referências a “chat” ou “trigger”
- Nenhum segredo ou token hardcoded
- Uso mínimo de localStorage para sessões efêmeras
-
🧊 Polimento final do disfarce
- Branding falso de calculadora (título, ícone etc.)
- Aritmética real (opcional), para que seja plenamente plausível como calculadora
- Alinhamento da UI, tema e estilização final
-
🧠 Criar
deploy.md(documento interno)- Como fazer deploy, atualizar, rollback e verificar
-
Resumir variáveis de ambiente (
ㅇㅇㅇ_TRIGGER,SECRET_KEY) - Incluir boas práticas de segurança e logging
🔮 Funcionalidades futuras
- 📥 Quadro de informações (avisos somente leitura)
- 💬 Chat em grupo com exclusão de mensagens baseada em TTL
- 📁 Compartilhamento de arquivos (expiração automática por segurança)
- 🔥 Exclusão automática via cron/comando de gerenciamento para dados expirados
- 🌐 Proxy Cloudflare para mascarar o IP da VPS e mitigar DDoS
Use este roadmap para orientar o desenvolvimento ponta a ponta de ㅇㅇㅇ — da configuração inicial da VPS até a produção final.
💭 Diário
Não posso parar de desenvolver. O hábito se quebra. Já se passaram dez dias.
Mesmo que seja só 10 minutos por dia, preciso desenvolver obrigatoriamente e escrever um diário de desenvolvimento, por menor que tenha sido a mudança.
👀 Git Log
| Data | Tipo | Mensagem |
|---|---|---|
| 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 |
Deixe um comentário