// 01 · Introduzione

Ghost Messenger v5.1

Ghost Messenger è una piattaforma di comunicazione crittografata end-to-end progettata per operare nel totale anonimato. Nessun account email, nessun numero telefonico: solo un Ghost ID generato localmente.

security

Zero-Trace

Nessun metadato salvato. I messaggi si distruggono alla scadenza.

hub

P2P Nativo

Architettura peer-to-peer. Il server è solo un relay crittografato.

open_source

No-Account

Accesso immediato con Ghost ID. Zero registrazioni.

warning

Nota Sicurezza

Conserva il tuo Ghost ID in un posto sicuro. Non è recuperabile in caso di perdita. Non esiste un sistema di reset password.

Changelog v5.1.2

NEW

Ghost Tunnel v5.1 — QR anonimo con debug panel e binding esclusivo per dispositivo

FIX

URL QR tunnel: ora usa sempre orbisguard.it invece di window.location.origin

NEW

Build Dashboard con server Node.js — APK + deploy Aruba con un click

UPD

Landing page: redesign single-page professional senza navigazione a tab

UPD

Backup automatico timestamped in Backup/backup_YYYY-MM-DD_HH-mm/

// 02 · Installazione

Installazione APK

1

Scarica l'APK ufficiale

Download dal server Aruba (connessione sicura HTTPS):

download ghost_v5.1.2.apk
2

Abilita origini sconosciute

Su Android: Impostazioni → Sicurezza → Installa app sconosciute → abilita per il tuo browser/file manager.

3

Installa e avvia

Apri il file APK scaricato → tocca Installa → avvia Ghost Messenger. Al primo avvio genera il tuo Ghost ID.

4

Versione Web (alternativa)

Accedi direttamente da browser su ghost_mobile.html oppure installa come PWA su Android/iOS.

// 03 · Identità

Ghost ID

Il Ghost ID è un identificatore crittografico univoco generato localmente al primo accesso. Non è collegato ad alcun account esterno.

info Come funziona

  • Generato automaticamente al primo avvio
  • Salvato in localStorage del dispositivo
  • Usato per identificarsi nella rete senza email o numero
  • NON recuperabile se perdi accesso al dispositivo

⚠️ Suggerimento importante

Copia e salva il tuo Ghost ID in un posto sicuro (password manager, foglio cartaceo). In caso di reset del browser o reinstallazione dell'app, sarà necessario per recuperare le conversazioni.

// 04 · Chat

Chat & Messaggi

Avviare una chat

  1. 1 Vai nella tab Rete → cerca l'utente per nome o Ghost ID
  2. 2 Tocca il profilo → Invia richiesta amicizia
  3. 3 Una volta accettata, la chat appare nella tab Chats

Scorciatoie

Invia messaggio Enter
Swipe sinistra → Chat successiva Gesture touch
Tieni premuto → opzioni messaggio Long press

// 05 · Ghost Tunnel

Ghost Tunnel v5.1

Il Ghost Tunnel permette a un utente esterno di entrare in una chat anonima temporanea tramite QR code, senza creare un account Ghost. Ogni tunnel è usa-e-getta.

person Lato Host (Ghost User)

  1. 1 Tab Ospiti → tocca + Nuovo Tunnel
  2. 2 Dai un nome al tunnel e genera il ticket
  3. 3 Il QR code appare → condividilo con l'ospite
  4. 4 La chat si attiva quando l'ospite scansiona

person_add Lato Ospite (Anonimo)

  1. 1 Scansiona il QR code con qualsiasi fotocamera
  2. 2 Si apre guest_chat.html con "Tunnel Ghost Attivo"
  3. 3 Tocca Apri Comunicazione
  4. 4 Chat anonima attiva. Nessun account necessario.

Note tecniche

  • • Il tunnel è binding esclusivo: solo il primo dispositivo che lo scansiona può usarlo
  • • URL sempre su orbisguard.it (funziona da app, QR scanner, SMS)
  • • Il Guest ID è salvato in localStorage per permettere ri-accesso alla stessa sessione
  • • In caso di errore, il panel debug mostra i parametri ticket e host

// 06 · Canali

Canali Gruppo

I canali di gruppo supportano multi-agente con ruoli differenziati:

Admin

  • • Invita/rimuovi membri
  • • Rinomina il canale
  • • Distruggi il canale
  • • Promuovi altri admin

Member

  • • Leggi e invia messaggi
  • • Lascia il canale
  • • Invia messaggi burn

// 07 · Messaggi Burn

Messaggi a Scomparsa

local_fire_departmentTimer disponibili

1m

1 Minuto

24h

24 Ore

7d

1 Settimana

Per inviare un messaggio burn: nel campo testo, tocca l'icona 🔥 Burn prima di inviare, poi seleziona il timer. Il badge countdown compare sotto il messaggio.

// 08 · Blacklist

Blacklist Protocol v4.7

Il sistema di blacklist è asimmetrico: bloccando un utente, lui non viene notificato e i tuoi messaggi restano invisibili ai suoi occhi.

block Per bloccare: apri il profilo utente → Blocca
check_circle L'utente bloccato non vede i tuoi messaggi né il tuo stato
lock_open Per sbloccare: Impostazioni → Blacklist → Rimuovi

// 09 · Build

Build & Deploy

rocket_launchFlusso Automatico (raccomandato)

  1. 1 Doppio click su poweshell-gen.cmd nella cartella progetto
  2. 2 Si apre la Build Dashboard nel browser (badge verde = server online)
  3. 3 Bump versione se necessario → click su GENERA E INIETTA
  4. 4 Attendi 3-5 minuti (Gradle) → APK generato in APK/ + deploy Aruba automatico
  5. 5 La finestra PowerShell si chiude automaticamente al termine

File di sistema chiave

poweshell-gen.cmd Launcher — doppio click per avviare tutto
ghost_build_server.js Server HTTP Node.js (porta 9090)
release-dashboard.html Dashboard build nel browser
app_version.json Versione corrente (es. 5.1.2)
.aruba_credentials.ps1 Credenziali FTP Aruba (non committare!)

// 10 · FAQ

Domande Frequenti

Il QR tunnel dice "Tunnel non valido" expand_more

Verifica nel panel debug (appare in rosso) che ticket e host siano presenti.

Cause comuni: 1) Ticket non ancora inserito in Supabase — esegui lo SQL setup. 2) Il tunnel è già stato usato da un altro dispositivo. 3) Il QR è stato generato con URL sbagliato (aggiorna all'ultima versione).

La build dice "cap sync failed" expand_more

Risolto in v5.1: il server ora copia i file manualmente in android/assets/ senza usare npx cap sync (incompatibile con Node 20). Aggiorna ghost_build_server.js all'ultima versione.

Il server Build dice "porta in uso" expand_more

Un server precedente è rimasto attivo. In PowerShell: Stop-Process (Get-NetTCPConnection -LocalPort 9090).OwningProcess -Force, poi rilancia poweshell-gen.cmd.

Ho perso il Ghost ID — posso recuperarlo? expand_more

No. Il Ghost ID non viene mai trasmesso né salvato sul server. È conservato solo nel localStorage del browser. Se hai un backup del dispositivo, puoi estrarlo da lì. In caso contrario, è necessario crearne uno nuovo.