Unofficial

BitchMyQnap

BitchMyQnap: IRC sul tuo QNAP

Client, un bot, un server con servizi, un bouncer e FTP.

BitchMyQnap porta sul NAS un intero ambiente IRC: i client irssi e BitchX, il bot Eggdrop con Tcl, il server UnrealIRCd con i servizi Anope, il bouncer ZNC e Pure-FTPd.

Il pacchetto contiene i programmi. Il progetto dell’Editor in Bucket & Code Server IDE aggiunge una procedura guidata che chiede i nomi e le tue password, scrive le configurazioni e avvia una piccola rete.

In App Center: (example) BitchMyQnap · Intel e AMD (x86_64) · QTS 6.0 o QuTS hero 6.0 o successivo · freeware

La rete in esecuzione su 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)

Cosa contiene

L’elenco di ricette nomina questi programmi, e la build aggiunge le librerie che servono loro.

Client

irssi
il client IRC da terminale, con TLS
BitchX
il classico client da terminale, con TLS

Bot

eggdrop
Eggdrop 1.10, il bot IRC
tclsh
Tcl 8.6, il linguaggio di scripting del bot

Server e servizi

unrealircd
UnrealIRCd 6, il server IRC, con unrealircdctl
services
Anope 2.0: NickServ, ChanServ, OperServ e gli altri

Bouncer

znc
ZNC 1.9 con il suo pannello web; niente moduli Perl, Python o Tcl

FTP

pure-ftpd
Pure-FTPd con TLS
pure-pw
il suo database di utenti

Strumenti

busybox
chpst avvia ogni programma con il suo utente
screen
tiene in esecuzione un client dopo la chiusura del terminale

Come si presenta

Schermate reali da una piccola rete di prova su un NAS QNAP: il canale della procedura guidata, il suo bot e due client.

irssi: un utente entra nel canale bitchmyqnap, con i nick sysop e BitchBot
irssi su TLS nel canale della procedura guidata, con l’operatore e il bot.
BitchX: statistiche del server e ingresso nel canale bitchmyqnap
BitchX nello stesso canale.

A chi serve

Vuoi una chat tutta tua

UnrealIRCd e Anope ti danno nick e canali registrati su un server che gestisci tu, per amici o per un team.

Stai su IRC tutto il giorno

ZNC resta connesso mentre il computer dorme, e irssi continua a funzionare in screen dopo la chiusura del terminale.

Ti piacciono i bot

Eggdrop resta nel tuo canale, e lo estendi con script Tcl.

Installazione

  1. Aggiungi una volta il repository di questo sito ad App Center: i tre passaggi.
  2. Nell’elenco del repository trova (example) BitchMyQnap e premi Installa.
  3. Attiva SSH in Pannello di controllo › Servizi di rete e file › Telnet / SSH.

Avvio

BitchMyQnap non ha una finestra propria: lo usi da un terminale. Accedi via SSH come admin e avvia un client. Per una rete tutta tua, usa il progetto più sotto.

ssh admin@192.0.2.10                      # l’indirizzo del tuo NAS
irssi -c irc.example.com -p 6697 --tls    # qualsiasi server IRC su TLS

Una rete in tre comandi

Il pacchetto contiene i programmi, mentre la procedura guidata e il runner restano nel progetto BitchMyQnap dell’Editor, quindi questa parte richiede Bucket & Code. Compila e attiva l’app come mostrato più sotto, poi esegui questo nel terminale dell’Editor:

make setup       # la procedura guidata: nomi, le tue password, la cartella della rete
make start       # avvia i programmi della rete
make irc-status  # quali sono in esecuzione

La procedura guidata chiede il nome della rete, i nomi del server e dei servizi, il canale, il tuo nick, il nick del bot e se configurare FTP. Conserva le tue password solo come hash. La password di collegamento tra UnrealIRCd e Anope e le chiavi di cloaking sono casuali.

Ogni programma gira come utente 65534, e irc.sh invia un segnale a un programma solo quando /proc mostra il suo binario in esecuzione come quell’utente.

Porte della rete in esecuzione

PortaCosa è in ascolto
6667UnrealIRCd, IRC, su ogni indirizzo
6697UnrealIRCd, IRC su TLS, su ogni indirizzo
9669UnrealIRCd, il collegamento dei servizi, solo su 127.0.0.1
9667ZNC, IRC su TLS e il pannello web, su ogni indirizzo
9021, 9022-9031Pure-FTPd, porta di controllo e porte passive, su ogni indirizzo

Dopo l’avvio

  • Collega un client alla porta 6697, e /oper con il tuo nick e la tua password ti rende operatore IRC.
  • /msg NickServ REGISTER registra il tuo nick. Anope rende quel nick il root dei servizi.
  • Manda hello al bot con /msg: la prima persona che dice hello ne diventa il proprietario.
  • Il pannello web di ZNC è sulla porta 9667 su HTTPS, e un client IRC si collega alla stessa porta con TLS.

Da sapere

  • UnrealIRCd, ZNC ed Eggdrop si rifiutano di girare come root. Per avviarli dal solo pacchetto, scrivi tu le loro configurazioni e scegli tu un utente.
  • I programmi della rete si fermano quando il NAS si riavvia. make start li riavvia.
  • Su QuTS hero, l’ACL di una condivisione può chiudere una cartella al suo interno all’utente 65534. La procedura guidata lo controlla alla fine e nomina la cartella se è chiusa. Una cartella sul volume proprio dell’app funziona.
  • BitchX apre ogni riga con due segni a 8 bit che un terminale UTF-8 non può disegnare. L’immagine qui sopra li lascia vuoti.

Modificalo e ricompilalo quando vuoi

BitchMyQnap è un esempio di Bucket & Code Server IDE, il nostro ambiente di sviluppo gratuito per QNAP. Compila ogni programma dai sorgenti sul tuo NAS e impacchetta il risultato come QPKG.

Dal pannello

  1. In Bucket & Code apri App, poi la scheda Esempi. Aggiungi Ubuntu 24.04 builder (full) se non hai ancora un ambiente Builder.
  2. Premi Usa questo esempio su BitchMyQnap (geek set 3). L’app compare con le sue ricette, e non è ancora compilato nulla.
  3. Premi Compila, poi Attiva. Esporta crea un QPKG una volta installata una toolchain QDK.

Da un terminale

Il progetto BitchMyQnap dell’Editor contiene lo stesso elenco in recipes.txt. Togli una riga o aggiungi una ricetta dalla libreria, poi esegui questo nel terminale dell’Editor:

make app        # crea l’app da recipes.txt
make build      # la compila e segue il job
make activate   # /usr/app/BitchMyQnap ora punta alla build
make qpkg       # esporta un QPKG (serve una toolchain QDK)

Il QPKG contiene i programmi dell’app. setup.sh e irc.sh restano nel progetto.

La pagina Nuova app dell’App Builder di Bucket & Code Guarda come si fa in Bucket & Code Compile Any App You Need Without Linux Skills: Build QPKG & Deploy Easily (Freeware) 8 min su YouTube

Pagine correlate