Remote includes/fr

Les inclusions distantes sont un bon moyen de partager votre configuration entre plusieurs serveurs.

Il vous suffit de mettre votre configuration partagée à un endroit sécurisé, comme un serveur web de confiance, et les serveurs IRC la chargeront au démarrage ou lorsque /REHASH sera utilisé.

Exemple
Dans l'exemple ci-dessous, nous allons considérer que vous avez un site appelé admin.example.org :

Créer et protéger par mot de passe un répertoire HTTP
Note : les opérations ci-dessous sont exécutées en ligne de commandes et supposent que vous avez un accès au shell de votre serveur. Vous pouvez sans doute atteindre le même résultat avec un panneau d'administration comme cPanel ou via SCP/SFTP.

irc@system:~$ cd public_html irc@system:~/public_html$ mkdir conf irc@system:~/public_html$ cd conf irc@system:~/public_html/conf$ irc@system:~/public_html/conf$ nano .htaccess Mettez ce qui suit dans ce fichier (changez les chemins là où c'est nécessaire) : AuthType Basic AuthName "Accès restreint" AuthUserFile /home/irc/public_html/conf/.htpasswd Require valid-user irc@system:~/public_html/conf$ htpasswd -c /home/irc/public_html/conf/.htpasswd restricted New password: Re-type new password: Adding password for user 'restricted'
 * Connectez-vous en SSH sur votre serveur web, allez dans le répertoire WWW et créez un répertoire pour stocker vos fichiers de configuration :
 * Créez un fichier .htaccess
 * Créez un fichier .htpasswd avec le bon mot de passe
 * Créez et uploadez un fichier appelé opers.conf dans le répertoire ~/public_html/conf/

Utiliser les inclusions distantes pour récupérer la configuration
C'est simple à faire, indiquez juste l'URL dans la directive include. Dans notre exemple, cela donnerait :

HTTPS est plus sécurisé, mais nécessite que votre site ait HTTPS activé (ce qui est rarement le cas par défaut !) : include "https://restricted:le_mot_de_passe_indique@admin.example.org/conf/opers.conf";

Nginx tips
If you use nginx rather than apache as webserver, the way to configure the location is: location ~* ^/conf/*$ { auth_basic "Remote configuration"; auth_basic_user_file /home/irc/public_html/conf/.htpasswd; }

Et si votre serveur tombe en panne ?
Lorsque UnrealIRCd n'arrive pas à charger une inclusion distante, il utilise une copie en cache (stockée dans le répertoire cache/). La copie en cache devrait toujours être disponible, sauf si vous chargez cette inclusion distante pour la toute première fois (ou si vous avez changé l'URL).

Ainsi, vous pouvez utiliser les inclusions distantes sans risque. Même si votre serveur web tombe, vos serveurs IRC pourront toujours redémarrer ou utiliser REHASH. (Avant, ce n'était pas le cas et une panne des serveurs web pouvait causer une situation vraiment problématique).