Unofficial

BitchMyQnap

BitchMyQnap: IRC op je QNAP

Clients, een bot, een server met services, een bouncer en FTP.

BitchMyQnap zet een complete IRC-omgeving op de NAS: de clients irssi en BitchX, de bot Eggdrop met Tcl, de server UnrealIRCd met Anope-services, de bouncer ZNC en Pure-FTPd.

Het pakket bevat de programma’s. Het Editor-project in Bucket & Code Server IDE voegt een wizard toe die om de namen en je wachtwoorden vraagt, de configuraties schrijft en een klein netwerk start.

In App Center: (example) BitchMyQnap · Intel en AMD (x86_64) · QTS 6.0 of QuTS hero 6.0 of nieuwer · freeware

Het draaiende netwerk op een 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)

Wat erin zit

De receptenlijst noemt deze programma’s, en de build voegt de bibliotheken toe die ze nodig hebben.

Clients

irssi
de IRC-client voor de terminal, met TLS
BitchX
de klassieke terminalclient, met TLS

Bot

eggdrop
Eggdrop 1.10, de IRC-bot
tclsh
Tcl 8.6, de scripttaal van de bot

Server en services

unrealircd
UnrealIRCd 6, de IRC-server, met unrealircdctl
services
Anope 2.0: NickServ, ChanServ, OperServ en de andere

Bouncer

znc
ZNC 1.9 met zijn webpaneel; geen Perl-, Python- of Tcl-modules

FTP

pure-ftpd
Pure-FTPd met TLS
pure-pw
zijn eigen gebruikersdatabase

Tools

busybox
chpst start elk programma als zijn eigen gebruiker
screen
houdt een client draaiend nadat de terminal is gesloten

Hoe het eruitziet

Echte schermen van een klein testnetwerk op een QNAP NAS: het kanaal van de wizard, zijn bot en twee clients.

irssi: een gebruiker komt in het kanaal bitchmyqnap, met de nicks sysop en BitchBot
irssi via TLS in het kanaal van de wizard, met de operator en de bot.
BitchX: serverstatistieken en het betreden van het kanaal bitchmyqnap
BitchX in hetzelfde kanaal.

Voor wie het handig is

Je wilt een eigen chat

UnrealIRCd en Anope geven je geregistreerde nicks en kanalen op een server die je zelf beheert, voor vrienden of een team.

Je bent de hele dag op IRC

ZNC blijft verbonden terwijl je computer slaapt, en irssi blijft in screen draaien nadat de terminal is gesloten.

Je houdt van bots

Eggdrop zit in je kanaal, en je breidt hem uit met Tcl-scripts.

Installeren

  1. Voeg de repository van deze site één keer toe aan App Center: de drie stappen.
  2. Zoek in de lijst van de repository (example) BitchMyQnap en druk op Installeren.
  3. Zet SSH aan in Configuratiescherm › Netwerk en Bestandsservices › Telnet / SSH.

Starten

BitchMyQnap heeft geen eigen venster: je gebruikt het vanuit een terminal. Meld je via SSH aan als admin en start een client. Gebruik voor een eigen netwerk het project hieronder.

ssh admin@192.0.2.10                      # het adres van je NAS
irssi -c irc.example.com -p 6697 --tls    # elke IRC-server via TLS

Een netwerk in drie opdrachten

Het pakket bevat de programma’s, en de wizard en de runner blijven in het Editor-project BitchMyQnap, dus voor dit deel is Bucket & Code nodig. Bouw en activeer de app zoals hieronder staat, en voer dan dit uit in de terminal van de Editor:

make setup       # de wizard: namen, je wachtwoorden, de netwerkmap
make start       # start de programma's van het netwerk
make irc-status  # welke ervan draaien

De wizard vraagt om de naam van het netwerk, de namen van de server en de services, het kanaal, je nick, de nick van de bot en of FTP moet worden ingesteld. Je wachtwoorden bewaart hij alleen als hashes. Het linkwachtwoord tussen UnrealIRCd en Anope en de cloak-sleutels zijn willekeurig.

Elk programma draait als gebruiker 65534, en irc.sh stuurt een programma alleen een signaal als /proc laat zien dat zijn eigen binary als die gebruiker draait.

Poorten van het draaiende netwerk

PoortWat luistert
6667UnrealIRCd, IRC, op elk adres
6697UnrealIRCd, IRC via TLS, op elk adres
9669UnrealIRCd, de koppeling van de services, alleen op 127.0.0.1
9667ZNC, IRC via TLS en het webpaneel, op elk adres
9021, 9022-9031Pure-FTPd, controlepoort en passieve poorten, op elk adres

Na de start

  • Verbind een client met poort 6697, en /oper met je nick en wachtwoord maakt je IRC-operator.
  • /msg NickServ REGISTER registreert je nick. Anope maakt die nick de root van de services.
  • Stuur de bot met /msg het woord hello: de eerste die hello zegt, wordt zijn eigenaar.
  • Het webpaneel van ZNC staat op poort 9667 via HTTPS, en een IRC-client verbindt met dezelfde poort via TLS.

Goed om te weten

  • UnrealIRCd, ZNC en Eggdrop weigeren als root te draaien. Om ze alleen vanuit het pakket te starten, schrijf je hun configuraties zelf en kies je zelf een gebruiker.
  • De programma’s van het netwerk stoppen als de NAS opnieuw opstart. make start start ze weer.
  • Op QuTS hero kan de ACL van een gedeelde map een map daarin afsluiten voor gebruiker 65534. De wizard controleert dit aan het einde en noemt de map als die is afgesloten. Een map op het eigen volume van de app werkt.
  • BitchX begint elke regel met twee 8-bits tekens die een UTF-8-terminal niet kan tonen. De afbeelding hierboven laat ze leeg.

Wijzig het en bouw het opnieuw, wanneer je maar wilt

BitchMyQnap is een voorbeeld uit Bucket & Code Server IDE, onze gratis ontwikkelomgeving voor QNAP. Deze compileert elk programma uit broncode op je eigen NAS en verpakt het resultaat als QPKG.

Vanuit het paneel

  1. Open in Bucket & Code Apps en daarna het tabblad Voorbeelden. Voeg Ubuntu 24.04 builder (full) toe als je nog geen Builder-omgeving hebt.
  2. Druk bij BitchMyQnap (geek set 3) op Dit voorbeeld gebruiken. De app verschijnt met zijn recepten, en er is nog niets gebouwd.
  3. Druk op Bouwen en daarna op Activeren. Exporteren maakt een QPKG zodra er een QDK-toolchain is geïnstalleerd.

Vanuit een terminal

Het Editor-project BitchMyQnap bevat dezelfde lijst in recipes.txt. Haal een regel weg of voeg een recept uit de bibliotheek toe, en voer dan dit uit in de terminal van de Editor:

make app        # maakt de app uit recipes.txt
make build      # bouwt hem en volgt de taak
make activate   # /usr/app/BitchMyQnap wijst nu naar de build
make qpkg       # exporteert een QPKG (vereist een QDK-toolchain)

De QPKG bevat de programma’s van de app. setup.sh en irc.sh blijven in het project.

De pagina Nieuwe app van de App Builder in Bucket & Code Bekijk hoe het gaat in Bucket & Code Compile Any App You Need Without Linux Skills: Build QPKG & Deploy Easily (Freeware) 8 min op YouTube

Gerelateerde pagina’s