Add hands-free PWA mode and systemd service

This commit is contained in:
2026-04-27 08:20:51 +02:00
parent 606a925724
commit f876b3a635
9 changed files with 339 additions and 70 deletions

View File

@@ -24,6 +24,7 @@ GROQ_API_KEY=...
GMAIL_EMAIL=...
GMAIL_PASSWORD=...
APP_SECRET=...
TTS_PROVIDER=browser
```
Installer :
@@ -48,12 +49,12 @@ Sur telephone, le micro necessite HTTPS sauf cas particulier localhost.
## Deploiement VPS Hostinger
Exemple Ubuntu :
Exemple Ubuntu pour le VPS actuel (`/root/openbot`) :
```bash
cd /var/www
git clone <ton-repo-ou-upload> opensquared-assistant
cd opensquared-assistant/pwa_assistant
cd /root
git clone https://gitea.open-squared.tech/admin/openbot.git openbot
cd openbot
python3 -m venv .venv
. .venv/bin/activate
pip install -r requirements.txt
@@ -61,31 +62,31 @@ cp .env.example .env
nano .env
```
Service systemd :
```ini
[Unit]
Description=OpenSquared Assistant PWA
After=network.target
[Service]
WorkingDirectory=/var/www/opensquared-assistant/pwa_assistant
EnvironmentFile=/var/www/opensquared-assistant/pwa_assistant/.env
ExecStart=/var/www/opensquared-assistant/pwa_assistant/.venv/bin/gunicorn -w 2 -b 127.0.0.1:8080 app:app
Restart=always
RestartSec=3
[Install]
WantedBy=multi-user.target
```
Commandes :
Service systemd pour que l'app continue apres fermeture de Putty :
```bash
sudo nano /etc/systemd/system/opensquared-assistant.service
sudo systemctl daemon-reload
sudo systemctl enable --now opensquared-assistant
sudo systemctl status opensquared-assistant
cp deploy/opensquared-assistant.service /etc/systemd/system/opensquared-assistant.service
systemctl daemon-reload
systemctl enable --now opensquared-assistant
```
Commandes faciles :
```bash
systemctl start opensquared-assistant
systemctl stop opensquared-assistant
systemctl restart opensquared-assistant
systemctl status opensquared-assistant
journalctl -u opensquared-assistant -f
```
Optionnel, installer le raccourci `openbot` :
```bash
install -m 755 deploy/openbot /usr/local/bin/openbot
openbot status
openbot restart
openbot logs
```
Nginx :
@@ -95,7 +96,7 @@ server {
server_name assistant.ton-domaine.com;
location / {
proxy_pass http://127.0.0.1:8080;
proxy_pass http://172.17.0.1:8080;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
@@ -116,10 +117,14 @@ sudo certbot --nginx -d assistant.ton-domaine.com
2. Menu `...`.
3. `Ajouter a l'ecran d'accueil` ou `Installer l'application`.
4. Ouvrir l'icone `Assistant`.
5. Appuyer une fois sur `Demarrer` pour autoriser micro/audio.
5. Appuyer une fois sur `Demarrer` pour lancer le mode mains libres.
6. Parler naturellement : apres 2 secondes de silence, le message est envoye.
7. Appuyer sur `Arreter` pour couper l'ecoute continue.
## Notes
- Groq Orpheus TTS doit etre accepte dans la console Groq pour fonctionner :
https://console.groq.com/playground?model=canopylabs%2Forpheus-v1-english
- Par defaut `TTS_PROVIDER=browser` utilise la voix francaise du telephone pour eviter l'accent anglais du modele Groq Orpheus.
- Pour revenir au TTS Groq, mettre `TTS_PROVIDER=groq` dans `.env`.
- La lecture audio automatique depend toujours des regles du navigateur mobile, mais elle marche mieux dans une PWA apres un tap utilisateur que dans Telegram.