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.
./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.
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
- Voeg de repository van deze site één keer toe aan App Center: de drie stappen.
- Zoek in de lijst van de repository (example) BitchMyQnap en druk op Installeren.
- 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
| Poort | Wat luistert |
|---|---|
| 6667 | UnrealIRCd, IRC, op elk adres |
| 6697 | UnrealIRCd, IRC via TLS, op elk adres |
| 9669 | UnrealIRCd, de koppeling van de services, alleen op 127.0.0.1 |
| 9667 | ZNC, IRC via TLS en het webpaneel, op elk adres |
| 9021, 9022-9031 | Pure-FTPd, controlepoort en passieve poorten, op elk adres |
Na de start
- Verbind een client met poort 6697, en
/opermet je nick en wachtwoord maakt je IRC-operator. /msg NickServ REGISTERregistreert je nick. Anope maakt die nick de root van de services.- Stuur de bot met
/msghet woordhello: 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 startstart 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
- Open in Bucket & Code Apps en daarna het tabblad Voorbeelden. Voeg Ubuntu 24.04 builder (full) toe als je nog geen Builder-omgeving hebt.
- Druk bij BitchMyQnap (geek set 3) op Dit voorbeeld gebruiken. De app verschijnt met zijn recepten, en er is nog niets gebouwd.
- 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.
Bekijk hoe het gaat in Bucket & Code
Compile Any App You Need Without Linux Skills: Build QPKG & Deploy Easily (Freeware)
8 min op YouTube

