Unofficial

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.

Dans l’App Center : (example) BitchMyQnap · Intel et AMD (x86_64) · QTS 6.0 ou QuTS hero 6.0 ou ultérieur · freeware

Le réseau en marche sur un NAS

./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.

irssi : un utilisateur rejoint le canal bitchmyqnap, avec les pseudos sysop et BitchBot
irssi en TLS dans le canal de l’assistant, avec l’opérateur et le bot.
BitchX : statistiques du serveur et arrivée dans le canal bitchmyqnap
BitchX dans le même canal.

À 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

  1. Ajoutez une fois le dépôt de ce site à l’App Center : les trois étapes.
  2. Dans la liste du dépôt, trouvez (example) BitchMyQnap et appuyez sur Installer.
  3. 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

PortCe qui écoute
6667UnrealIRCd, IRC, sur toutes les adresses
6697UnrealIRCd, IRC sur TLS, sur toutes les adresses
9669UnrealIRCd, la liaison des services, sur 127.0.0.1 uniquement
9667ZNC, IRC sur TLS et le panneau web, sur toutes les adresses
9021, 9022-9031Pure-FTPd, port de contrôle et ports passifs, sur toutes les adresses

Après le démarrage

  • Connectez un client au port 6697, et /oper avec votre pseudo et votre mot de passe fait de vous un opérateur IRC.
  • /msg NickServ REGISTER enregistre votre pseudo. Anope fait de ce pseudo le root des services.
  • Envoyez hello au 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 start les 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

  1. Dans Bucket & Code, ouvrez Apps, puis l’onglet Exemples. Ajoutez Ubuntu 24.04 builder (full) si vous n’avez pas encore d’environnement Builder.
  2. Sur BitchMyQnap (geek set 3), appuyez sur Utiliser cet exemple. L’app apparaît avec ses recettes, et rien n’est encore compilé.
  3. 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.

La page Nouvelle app de l’App Builder de Bucket & Code Voir la procédure dans Bucket & Code Compile Any App You Need Without Linux Skills: Build QPKG & Deploy Easily (Freeware) 8 min sur YouTube

Pages associées