App Configuration

Current: -
Checking updates...

Dashboard Updates

Latest commits (remote):
No check done yet.

Let's Encrypt - Certificat SSL

Générer un certificat SSL gratuit et valide pour votre domaine DuckDNS ou autre

⚠️ Prérequis:
• Domaine configuré (DuckDNS, No-IP, etc.)
• Port forwarding 80 et 443 activés sur la Freebox
• DNS propagé (utilisez: nslookup votre-domaine.duckdns.org 8.8.8.8)

Templates

Network

VM / System

Diagnostics

Use name or container id from Docker ps
Diagnostics not run yet.

MySQL Explorer

Useful commands:
SHOW DATABASES;\nUSE mydb;\nSHOW TABLES;\nSELECT table_name FROM information_schema.tables WHERE table_schema='mydb';\nSELECT User, Host FROM mysql.user;\nSHOW GRANTS FOR CURRENT_USER();\nDESCRIBE mytable;
No results yet.

MySQL Rows Viewer

Results (first 200 rows):

Push UI files (from this machine)

Select `admin-tools.html`, `admin-tools.css` and `admin-tools.js` from your workstation to upload and deploy to the VM.

Backend

Service: chatsphere-backend-mobile
No logs yet.

Mobile APK Builder

Status: Idle
Chemin du projet mobile:
Logs de compilation (mise à jour en temps réel):
En attente de commande...

Upload APK depuis Android Studio

Workflow simplifié: Compilez votre APK localement avec Android Studio, puis uploadez-le directement vers le SSD de la Freebox. Plus besoin de SSH ou de compilation sur la VM!
Laisser vide pour "chatsphere-mobile.apk"
📦 APK disponibles sur la Freebox:

Chargement...

Solution de Secours: Transfert Automatique

Si l'upload web ne fonctionne pas: Utilisez le script PowerShell qui détecte automatiquement votre APK compilé et le transfère vers la Freebox via SCP.

📍 Chemin de votre APK:

C:\Users\Administrateur\Desktop\m6\ChatSphere\apps\mobile\app\build\outputs\apk\debug\app-debug.apk

🚀 Utilisation:

Étape 1: Compilez votre APK dans Android Studio

Build → Build Bundle(s) / APK(s) → Build APK(s)

Étape 2: Ouvrez PowerShell et exécutez:

cd C:\Users\Administrateur\Desktop\m6\ChatSphere\apps\mobile .\auto-transfer-apk.ps1

Le script va:

  • ✅ Détecter automatiquement l'APK le plus récent
  • ✅ Vérifier la connexion SSH
  • ✅ Transférer vers le SSD de la Freebox
  • ✅ Ouvrir l'App Store automatiquement
⚠️ Prérequis:

SSH doit être configuré entre Windows et la Freebox. Cliquez ici pour configurer SSH

Server Admin Secret

Curl examples (use your local saved secret to authenticate):
curl -H "X-Admin-Secret: <CURRENT_SECRET>" -X POST -d '{"secret":"NEW_SECRET"}' https://chatsphere.local/api/admin/set-server-secret

# then used for mysql queries:
# curl -H "X-Admin-Secret: <NEW_SECRET>" https://chatsphere.local/api/admin/mysql/databases
# curl -H "X-Admin-Secret: <NEW_SECRET>" "https://chatsphere.local/api/admin/mysql/tables?db=chatsphere"
# curl -H "X-Admin-Secret: <NEW_SECRET>" https://chatsphere.local/api/admin/mysql/status

SSH Keys

VPN WireGuard - Accès distant sécurisé

Configurez un VPN WireGuard pour accéder au dashboard depuis Internet (téléphone, autre réseau) de manière sécurisée

📱 Pourquoi WireGuard ?
• Accédez au dashboard depuis n'importe où via Internet
• Connexion chiffrée et sécurisée (pas besoin d'exposer les ports)
• Consommation minimale de batterie sur téléphone
• Plus rapide et plus simple que OpenVPN
Étape 1: Installation et configuration du serveur WireGuard
Étape 2: Configuration du client (votre téléphone)
Étape 3: Configuration de la Freebox (Port Forwarding)
Instructions détaillées WireGuard
📡 CONFIGURATION WIREGUARD COMPLÈTE

=== ÉTAPE 1: Installation serveur (sur la VM) ===
Les boutons ci-dessus automatisent ces étapes:

1. Installation WireGuard:
   sudo dnf install -y wireguard-tools
   
2. Génération des clés:
   wg genkey | tee server_private.key | wg pubkey > server_public.key
   wg genkey | tee client_private.key | wg pubkey > client_public.key

3. Configuration /etc/wireguard/wg0.conf:
   [Interface]
   Address = 10.0.0.1/24
   ListenPort = 51820
   PrivateKey = 
   
   [Peer]
   PublicKey = 
   AllowedIPs = 10.0.0.2/32

4. Démarrage:
   sudo systemctl enable wg-quick@wg0
   sudo systemctl start wg-quick@wg0

=== ÉTAPE 2: Configuration Freebox ===
1. Accédez à: http://mafreebox.freebox.fr
2. Paramètres de la Freebox → Gestion des ports
3. Ajoutez une redirection:
   - Port externe: 51820 (UDP)
   - Port interne: 51820 (UDP)
   - IP locale: 192.168.0.35
   - Protocole: UDP

=== ÉTAPE 3: Configuration client (téléphone) ===
Le fichier .conf généré contient:

[Interface]
PrivateKey = 
Address = 10.0.0.2/24
DNS = 8.8.8.8

[Peer]
PublicKey = 
Endpoint = :51820
AllowedIPs = 192.168.0.0/24
PersistentKeepalive = 25

=== ÉTAPE 4: Installation sur téléphone ===
Android:
1. Play Store → "WireGuard" (par WireGuard Development Team)
2. Ouvrir l'app → "+" → "Scan from QR code" ou "Import from file"
3. Scanner le QR code ou importer le fichier .conf
4. Activer la connexion

iOS:
1. App Store → "WireGuard"
2. Même procédure

=== ÉTAPE 5: Test de connexion ===
1. Activez WireGuard sur votre téléphone
2. Désactivez le WiFi (utilisez les données mobiles)
3. Dans le navigateur, accédez à: http://10.0.0.1:3000
4. Vous devriez voir le dashboard ChatSphere !

💡 AVANTAGES:
- Accès sécurisé depuis n'importe où
- Pas besoin d'exposer les ports HTTP/HTTPS publiquement
- Connexion chiffrée de bout en bout
- Fonctionne même derrière un NAT restrictif
Status: Non configuré

Configuration HTTPS & Domaine Local

Configuration du domaine local chatsphere.local avec certificat SSL auto-signé

Étape 1: Régénérer le certificat SSL avec le bon nom de domaine
Le certificat sera généré avec:
- CN: chatsphere.local
- SAN: chatsphere.local, dashboard.chatsphere.local, www.chatsphere.local, *.chatsphere.local, 192.168.0.35
- Validité: 365 jours
Étape 2: Configuration Windows (PowerShell Administrateur requis)

Ces scripts doivent être exécutés sur votre PC Windows en tant qu'Administrateur

Script: configure-local-domain.ps1
# Configuration du domaine local chatsphere.local
# A executer en tant qu'Administrateur

$hostsPath = "C:\Windows\System32\drivers\etc\hosts"
$ip = "192.168.0.35"
$domains = @("chatsphere.local", "dashboard.chatsphere.local", "www.chatsphere.local")

# Verification privileges Administrateur
$isAdmin = ([Security.Principal.WindowsPrincipal] [Security.Principal.WindowsIdentity]::GetCurrent()).IsInRole([Security.Principal.WindowsBuiltInRole]::Administrator)
if (-not $isAdmin) {
    Write-Host "[ERREUR] Ce script doit etre execute en tant qu'Administrateur !" -ForegroundColor Red
    exit 1
}

# Backup fichier hosts
if (-not (Test-Path "$hostsPath.backup")) {
    Copy-Item $hostsPath "$hostsPath.backup"
}

# Ajout entrees DNS
$hostsContent = Get-Content $hostsPath
$needsUpdate = $false
foreach ($domain in $domains) {
    $exists = $hostsContent | Where-Object { $_ -match "^\s*$ip\s+$domain" }
    if (-not $exists) { $needsUpdate = $true; break }
}

if ($needsUpdate) {
    $newContent = $hostsContent | Where-Object { $_ -notmatch "chatsphere\.local" }
    $newContent += ""
    $newContent += "# ChatSphere Dashboard"
    foreach ($domain in $domains) {
        $newContent += "$ip    $domain"
    }
    $newContent | Out-File -FilePath $hostsPath -Encoding ASCII -Force
    Write-Host "Fichier hosts mis a jour !" -ForegroundColor Green
}

Write-Host "Configuration terminee ! Acces: https://chatsphere.local" -ForegroundColor Cyan
Script: install-certificate.ps1
# Installation du certificat SSL auto-signe dans Windows
# A executer en tant qu'Administrateur

$isAdmin = ([Security.Principal.WindowsPrincipal] [Security.Principal.WindowsIdentity]::GetCurrent()).IsInRole([Security.Principal.WindowsBuiltInRole]::Administrator)
if (-not $isAdmin) {
    Write-Host "[ERREUR] Ce script doit etre execute en tant qu'Administrateur !" -ForegroundColor Red
    exit 1
}

# Recuperation certificat
$certPath = "$env:TEMP\chatsphere-cert.pem"
ssh freebox@192.168.0.35 "sudo cat /etc/nginx/ssl/cert.pem" | Out-File -FilePath $certPath -Encoding ASCII

# Installation dans magasin Root
$cert = New-Object System.Security.Cryptography.X509Certificates.X509Certificate2($certPath)
$store = New-Object System.Security.Cryptography.X509Certificates.X509Store("Root", "LocalMachine")
$store.Open("ReadWrite")

$existingCert = $store.Certificates | Where-Object { $_.Thumbprint -eq $cert.Thumbprint }
if (-not $existingCert) {
    $store.Add($cert)
    Write-Host "Certificat installe avec succes !" -ForegroundColor Green
} else {
    Write-Host "Certificat deja installe" -ForegroundColor Yellow
}

$store.Close()
Remove-Item $certPath -Force

Write-Host "Fermez TOUS vos navigateurs et relancez-les !" -ForegroundColor Yellow
Write-Host "Acces: https://chatsphere.local" -ForegroundColor Cyan
Instructions d'exécution:
1. Clic droit sur PowerShell > "Executer en tant qu'administrateur"

2. Executer les commandes copiees ci-dessus dans l'ordre:
   - configure-local-domain.ps1 (configure le fichier hosts)
   - install-certificate.ps1 (installe le certificat de confiance)

3. Fermer TOUS les navigateurs et relancer

4. Acceder a: https://chatsphere.local

✓ L'avertissement "Connexion non securisee" disparaitra !

Output

Ready.