Skip to content

Configuration ​

PICKET se configure par variables d'environnement. Une valeur secrète peut être fournie à la place sous forme de fichier en suffixant le nom par _FILE (Docker secrets) ; fournir les deux est une erreur.

Application ​

VariableDéfautSignification
DISCORD_APPLICATION_IDobligatoireIdentifiant de l'application.
DISCORD_PUBLIC_KEYobligatoire64 caractères hexadécimaux ; vérifie la signature des interactions reçues.
DISCORD_BOT_TOKEN / _FILEobligatoireToken du bot. Jamais journalisé.
DATABASE_URL / _FILEobligatoireChaîne de connexion PostgreSQL du rôle applicatif (ne possède rien, soumis à la sécurité par ligne).
DATABASE_POOL_MAX10Connexions maximales par réplica (1 à 100).
ROLEShttp-ingressRôles du processus, séparés par des virgules : http-ingress (reçoit les interactions) et shard-runner (connexion Gateway).
SHARD_COUNT1Nombre total de shards Gateway (1 à 256). Un shard suffit jusqu'à environ 2 500 serveurs.
GUILD_RETENTION_DAYS30Jours entre le moment où un serveur devient inactif et l'effacement de ses données (1 à 365).
LOG_LEVELinfofatal, error, warn, info, debug ou trace.
NODE_ENVproductiondevelopment, test ou production.

Réseau et arrêt ​

VariableDéfautSignification
HTTP_PORT8080Port du point d'accès des interactions.
HEALTH_PORT8081Port de /healthz et /readyz. À garder interne.
SHUTDOWN_DRAIN_MS10000Durée pendant laquelle le processus se déclare « non prêt » avant de s'arrêter, pour que le reverse proxy le retire (0 à 120000).

Migrations ​

Utilisées par la tâche migrate uniquement, avec le rôle propriétaire de la base :

VariableDéfautSignification
DATABASE_MIGRATOR_URL / _FILEobligatoireChaîne de connexion du rôle propriétaire.
DATABASE_APP_ROLEpicket_appRôle qui reçoit les privilèges sur les tables.

Ligne de commande ​

sh
node apps/bot/dist/cli.js migrate               # applique les migrations de la base
node apps/bot/dist/cli.js deploy-commands       # enregistre les commandes slash (--force pour redéployer)
node apps/bot/dist/cli.js purge                 # efface les serveurs au-delà de la rétention et les traces d'interactions de plus de 7 jours