.. _acces-distant: 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. .. contents:: Sommaire :local: :depth: 2 ---- Certificat TLS (mkcert) ----------------------- Par defaut, Mirza genere un certificat auto-signe. Pour supprimer l'avertissement navigateur, utiliser ``mkcert``. Le dossier ``certs/`` est dans ``.gitignore``. .. code-block:: bash 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 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 ------------- 1. Installer Tailscale sur le Mac hote et sur l'appareil distant, en se connectant avec le meme compte. 2. Lancer Mirza en mode SSL : .. code-block:: bash uv run python main.py --server --ssl Le terminal affiche les adresses disponibles : .. code-block:: text ==================================================================== 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 ==================================================================== 3. 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* : .. code-block:: bash # 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 ``ArrayBuffer`` Int16 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.