Installation
Nous ne publions ni binaire ni image : le proxy se construit depuis la branche fixes du fork. Les binaires et images du projet d'origine n'embarquent aucune de nos corrections.
Avec Go
Il faut Go 1.25 ou plus récent.
git clone -b fixes https://github.com/FCAgreatgoals/nirn-proxy
cd nirn-proxy
go build -o nirn-proxy .
./nirn-proxy
Le proxy écoute sur le port 8080, et ses métriques sur le port 9000. Un fichier .env placé à côté est chargé au démarrage s'il existe.
Avec Docker
Le Dockerfile du dépôt produit une image minimale, sans système, qui contient seulement le binaire et les certificats :
git clone -b fixes https://github.com/FCAgreatgoals/nirn-proxy
cd nirn-proxy
docker build -t nirn-proxy .
docker run -d -p 8080:8080 -p 9000:9000 -e LOG_LEVEL=info nirn-proxy
Brancher votre bot
Au lieu de https://discord.com, votre bot envoie ses requêtes à l'adresse du proxy : discord.com/api/v10/gateway devient http://10.0.0.1:8080/api/v10/gateway. La plupart des bibliothèques permettent de changer l'URL de l'API. Avec discord.js :
import { Client } from 'discord.js'
const client = new Client({
intents: [],
rest: { api: 'http://10.0.0.1:8080/api' },
})
Sinon, une redirection au niveau du système ou du DNS fonctionne aussi. Le proxy ne gère pas le SSL : gardez-le sur un réseau privé, et restreignez son écoute avec BIND_IP si besoin.
Ressources
Cela dépend du trafic et du nombre de routes différentes. Chez Dyno, à 150 requêtes par seconde, le proxy consommait environ 0,3 CPU et 550 Mo de mémoire : un petit VPS ou une machine ARM suffit.