Accès Distant et Utilisation Nomade¶
Mirza peut être utilisé depuis un smartphone ou un ordinateur distant via Tailscale (VPN Mesh WireGuard), sans ouverture de port sur le routeur.
Certificat TLS (mkcert)¶
Par defaut, Mirza genere un certificat auto-signe. Pour supprimer l’avertissement navigateur, utiliser mkcert.
Le dossier certs/ est dans .gitignore.
brew install mkcert
mkcert -install # installe la CA dans le trousseau macOS — sudo requis
mkdir -p certs
mkcert \
-cert-file certs/cert.pem \
-key-file certs/key.pem \
127.0.0.1 localhost <IP_LAN> <IP_TAILSCALE> <DNS_TAILSCALE>
Remplacer les adresses par celles affichees au demarrage de Mirza. Le certificat est detecte automatiquement au prochain --ssl.
Pour renouveler : relancer la meme commande.
Smartphone : copier $(mkcert -CAROOT)/rootCA.pem sur l’appareil via AirDrop ou email, puis l’installer comme CA de confiance :
iOS : Reglages > General > Profil, puis activer dans Reglages > General > A propos > Reglages du certificat.
Android : Parametres > Securite > Chiffrement et identifiants > Installer un certificat > Certificat CA.
Sans cette etape, l’avertissement persiste mais la connexion reste fonctionnelle.
Configuration¶
Installer Tailscale sur le Mac hote et sur l’appareil distant, en se connectant avec le meme compte.
Lancer Mirza en mode SSL :
uv run python main.py --server --ssl
Le terminal affiche les adresses disponibles :
==================================================================== SERVEUR MIRZA EN LIGNE (LAN & SMARTPHONE AUDIO READY) ==================================================================== Acces Mac Local : https://127.0.0.1:8765 Acces Smartphone LAN : https://192.168.1.153:8765 Acces Tailscale (IP) : https://100.91.208.81:8765 Acces Tailscale (DNS) : https://mirza.tailbdb602.ts.net:8765 ====================================================================Ouvrir l’adresse Tailscale dans le navigateur du smartphone ou l’application mobile Mirza (Tauri v2). Autoriser l’acces au microphone.
Lancement de Tailscale sans privilège root (Mode Userspace)¶
Sur macOS, le daemon Homebrew tailscaled requiert par défaut les privilèges administrateur (sudo) pour créer des interfaces kernel virtuelles TUN (utun).
Il est possible de l’exécuter entièrement en espace utilisateur sans aucun mot de passe root ni ``sudo`` grâce au mode userspace-networking :
# 1. Démarrer le daemon en arrière-plan sans sudo
mkdir -p ~/.local/share/tailscale
tailscaled \
--tun=userspace-networking \
--socket=~/.local/share/tailscale/tailscaled.sock \
--state=~/.local/share/tailscale/tailscaled.state &
# 2. Vérifier l'état et connecter la machine au tailnet
tailscale --socket=~/.local/share/tailscale/tailscaled.sock status
# 3. Réacheminer le port du serveur Mirza vers le Tailnet si nécessaire
tailscale --socket=~/.local/share/tailscale/tailscaled.sock serve --bg --https=8765 127.0.0.1:8765
Mirza détecte automatiquement l’IP Tailscale locale (ex: 100.91.208.81) au lancement et configure ses écoutes SSL.
Optimisations Mobile¶
Streaming binaire : audio transmis en
ArrayBufferInt16 16 kHz, sans encodage Base64.Routage audio exclusif (
clientTargetId) : la voix de Mirza est envoyee uniquement au smartphone emetteur.Gating anti-larsen : gain micro coupe pendant la synthese (half-duplex).
Keep-alive audio : oscillateur inaudible pour eviter la mise en veille du contexte WebAudio mobile.