Prérequis
- Docker Engine 24 ou une version ultérieure avec Compose v2
- Node.js 22 ou une version ultérieure, pour générer les secrets
- au moins 2 vCPU, 4 Go de RAM et un stockage disque durable
- un nom DNS public pour le tableau de bord
- des comptes Twilio et OpenAI pour les appels en direct, et un trunk Twilio Elastic SIP pour les appels téléphoniques
Configurer l’environnement
.env.example vers .env et remplit chaque mot de passe de rôle PostgreSQL et chaque secret interne avec une valeur aléatoire de 64 caractères. Il n’écrase pas un .env existant, sauf si vous passez --force, qui remplace aussi tous les secrets qu’il contient.
Ouvrez ensuite .env et définissez APP_BASE_URL, OPENAI_API_KEY et vos identifiants Twilio. Les services construisent leurs chaînes de connexion à la base de données à partir des mots de passe des rôles. Vous n’avez donc à écrire aucune URL de base de données.
Compose définit STORAGE_PROVIDER=local par défaut. L’admin et le worker montent le même volume persistant storage_data dans /var/lib/lobbystack/storage.
Démarrer LobbyStack
docker compose logs, et les points de terminaison de santé continuent de fonctionner.
Choisir un backend de stockage
Le fournisseur local par défaut prend en charge un seul hôte Docker. Sauvegardez le volumestorage_data en même temps que PostgreSQL et restaurez les deux à partir du même point de restauration.
Utilisez S3 quand l’admin et le worker tournent sur des hôtes différents. Définissez ces valeurs dans .env :
Exporter les données OpenTelemetry
L’export OpenTelemetry est désactivé quandOTEL_EXPORTER_OTLP_ENDPOINT est vide. Pour envoyer des traces, des métriques et des journaux OpenTelemetry à PostHog, ajoutez ces valeurs à .env :
/v1/traces, /v1/metrics et /v1/logs à l’URL de base. Vous pouvez utiliser les mêmes variables avec un autre backend compatible OTLP.
Redémarrez les conteneurs de l’application après avoir modifié les valeurs :
Vérifier le déploiement
Liste de vérification pour la production
- remplacez tous les identifiants de développement et limitez les permissions de
.env - utilisez une valeur HTTPS de production pour
APP_BASE_URL - définissez
OPENAI_WEBHOOK_SECRETetTWILIO_SIP_TRUNK_SIDpour répondre aux appels téléphoniques. Le worker ne provisionne pas de numéro de téléphone sansTWILIO_SIP_TRUNK_SID. Les variables des appels vocaux décrivent le rôle de chacune - définissez
WEB_CALL_ALLOWED_ORIGINSavec les sites exacts qui hébergent votre appel de démo public, si vous en avez un - configurez des sauvegardes de PostgreSQL et du stockage de fichiers hors de l’hôte
- faites un exercice de restauration avant d’accepter du trafic de production
- limitez les ports de PostgreSQL, de Redis et de MinIO (facultatif) aux réseaux privés
- surveillez l’état de l’admin, du worker, de la file d’attente, de la base de données et du stockage d’objets
- épinglez les versions des images avant les mises à niveau planifiées