Aller au contenu principal

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.