Inclusions distantes
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é.
Later on you can change the configuration file on the web server and just run /REHASH -all
on IRC. All IRC servers on your network will then reload the configuration, including your changes.
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.
- 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 :
irc@system:~$ cd public_html irc@system:~/public_html$ mkdir conf irc@system:~/public_html$ cd conf irc@system:~/public_html/conf$
- Créez un fichier .htaccess
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
- Créez un fichier .htpasswd avec le bon mot de passe
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'
- 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:firstname.lastname@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).