BitchMyQnap
BitchMyQnap : IRC sur votre QNAP
Clients, un bot, un serveur avec services, un bouncer et FTP.
BitchMyQnap installe tout un ensemble IRC sur le NAS : les clients irssi et BitchX, le bot Eggdrop avec Tcl, le serveur UnrealIRCd avec les services Anope, le bouncer ZNC et Pure-FTPd.
Le paquet contient les programmes. Le projet de l’Éditeur dans Bucket & Code Server IDE ajoute un assistant qui demande les noms et vos mots de passe, écrit les configurations et démarre un petit réseau.
./irc.sh start
unrealircd: started
anope: started
znc: started
eggdrop: started
ftp: started
./irc.sh status
unrealircd: running (pid 10590)
anope: running (pid 10619)
znc: running (pid 10651)
eggdrop: running (pid 10683)
ftp: running (pid 10713)
Ce qu’il contient
La liste de recettes nomme ces programmes, et la compilation ajoute les bibliothèques dont ils ont besoin.
Clients
- irssi
- le client IRC en terminal, avec TLS
- BitchX
- le client classique en terminal, avec TLS
Bot
- eggdrop
- Eggdrop 1.10, le bot IRC
- tclsh
- Tcl 8.6, le langage de script du bot
Serveur et services
- unrealircd
- UnrealIRCd 6, le serveur IRC, avec unrealircdctl
- services
- Anope 2.0 : NickServ, ChanServ, OperServ et les autres
Bouncer
- znc
- ZNC 1.9 avec son panneau web ; pas de modules Perl, Python ou Tcl
FTP
- pure-ftpd
- Pure-FTPd avec TLS
- pure-pw
- sa propre base d’utilisateurs
Outils
- busybox
- chpst lance chaque programme sous son propre utilisateur
- screen
- garde un client en marche après la fermeture du terminal
À quoi ça ressemble
Captures réelles d’un petit réseau de test sur un NAS QNAP : le canal de l’assistant, son bot et deux clients.
À qui ça sert
Vous voulez votre propre chat
UnrealIRCd et Anope vous donnent des pseudos et des canaux enregistrés sur un serveur que vous gérez vous-même, pour des amis ou une équipe.
Vous restez sur IRC toute la journée
ZNC reste connecté pendant que votre ordinateur dort, et irssi continue de tourner dans screen après la fermeture du terminal.
Vous aimez les bots
Eggdrop reste dans votre canal, et vous l’étendez avec des scripts Tcl.
Installation
- Ajoutez une fois le dépôt de ce site à l’App Center : les trois étapes.
- Dans la liste du dépôt, trouvez (example) BitchMyQnap et appuyez sur Installer.
- Activez SSH dans Panneau de configuration › Réseau et Services de fichiers › Telnet / SSH.
Démarrage
BitchMyQnap n’a pas de fenêtre à lui : il s’utilise depuis un terminal. Connectez-vous en SSH en tant qu’admin et lancez un client. Pour un réseau à vous, utilisez le projet ci-dessous.
ssh admin@192.0.2.10 # l’adresse de votre NAS irssi -c irc.example.com -p 6697 --tls # n’importe quel serveur IRC en TLS
Un réseau en trois commandes
Le paquet contient les programmes, et l’assistant et le lanceur restent dans le projet BitchMyQnap de l’Éditeur : cette partie nécessite donc Bucket & Code. Compilez et activez l’app comme indiqué plus bas, puis lancez ceci dans le terminal de l’Éditeur :
make setup # l’assistant : noms, vos mots de passe, dossier du réseau make start # démarre les programmes du réseau make irc-status # lesquels tournent
L’assistant demande le nom du réseau, les noms du serveur et des services, le canal, votre pseudo, le pseudo du bot et s’il faut configurer FTP. Il ne conserve vos mots de passe que sous forme de hachages. Le mot de passe de liaison entre UnrealIRCd et Anope et les clés de cloaking sont aléatoires.
Chaque programme tourne sous l’utilisateur 65534, et irc.sh n’envoie un signal à un programme que si /proc montre que son propre binaire tourne sous cet utilisateur.
Ports du réseau en marche
| Port | Ce qui écoute |
|---|---|
| 6667 | UnrealIRCd, IRC, sur toutes les adresses |
| 6697 | UnrealIRCd, IRC sur TLS, sur toutes les adresses |
| 9669 | UnrealIRCd, la liaison des services, sur 127.0.0.1 uniquement |
| 9667 | ZNC, IRC sur TLS et le panneau web, sur toutes les adresses |
| 9021, 9022-9031 | Pure-FTPd, port de contrôle et ports passifs, sur toutes les adresses |
Après le démarrage
- Connectez un client au port 6697, et
/operavec votre pseudo et votre mot de passe fait de vous un opérateur IRC. /msg NickServ REGISTERenregistre votre pseudo. Anope fait de ce pseudo le root des services.- Envoyez
helloau bot avec/msg: la première personne qui dit hello en devient le propriétaire. - Le panneau web de ZNC est sur le port 9667 en HTTPS, et un client IRC se connecte au même port avec TLS.
Bon à savoir
- UnrealIRCd, ZNC et Eggdrop refusent de tourner en root. Pour les démarrer à partir du paquet seul, vous écrivez leurs configurations et choisissez un utilisateur vous-même.
- Les programmes du réseau s’arrêtent au redémarrage du NAS.
make startles relance. - Sur QuTS hero, l’ACL d’un partage peut fermer un dossier de ce partage à l’utilisateur 65534. L’assistant le vérifie à la fin et nomme le dossier s’il est fermé. Un dossier sur le volume de l’app fonctionne.
- BitchX ouvre chaque ligne par deux marques 8 bits qu’un terminal UTF-8 ne peut pas afficher. L’image ci-dessus les laisse vides.
Modifiez-le et recompilez-le quand vous voulez
BitchMyQnap est un exemple de Bucket & Code Server IDE, notre environnement de développement gratuit pour QNAP. Il compile chaque programme à partir des sources sur votre propre NAS et empaquette le résultat en QPKG.
Depuis le panneau
- Dans Bucket & Code, ouvrez Apps, puis l’onglet Exemples. Ajoutez Ubuntu 24.04 builder (full) si vous n’avez pas encore d’environnement Builder.
- Sur BitchMyQnap (geek set 3), appuyez sur Utiliser cet exemple. L’app apparaît avec ses recettes, et rien n’est encore compilé.
- Appuyez sur Compiler, puis sur Activer. Exporter crée un QPKG dès qu’une toolchain QDK est installée.
Depuis un terminal
Le projet BitchMyQnap de l’Éditeur contient la même liste dans recipes.txt. Retirez une ligne ou ajoutez une recette de la bibliothèque, puis lancez ceci dans le terminal de l’Éditeur :
make app # crée l’app à partir de recipes.txt make build # la compile et suit la tâche make activate # /usr/app/BitchMyQnap pointe maintenant vers le build make qpkg # exporte un QPKG (nécessite une toolchain QDK)
Le QPKG contient les programmes de l’app. setup.sh et irc.sh restent dans le projet.
Voir la procédure dans Bucket & Code
Compile Any App You Need Without Linux Skills: Build QPKG & Deploy Easily (Freeware)
8 min sur YouTube

