BitchMyQnap
BitchMyQnap: IRC na Twoim QNAP-ie
Klienty, bot, serwer z usługami, bouncer i FTP.
BitchMyQnap przenosi na NAS-a cały zestaw do IRC: klienty irssi i BitchX, bota Eggdrop z Tcl, serwer UnrealIRCd z usługami Anope, bouncer ZNC i Pure-FTPd.
Pakiet zawiera programy. Projekt w Edytorze Bucket & Code Server IDE dodaje kreator, który pyta o nazwy i hasła, zapisuje konfiguracje i uruchamia małą sieć.
./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)
Co jest w środku
Te programy wymienia lista receptur, a kompilacja dokłada potrzebne im biblioteki.
Klienty
- irssi
- terminalowy klient IRC z TLS
- BitchX
- klasyczny klient terminalowy z TLS
Bot
- eggdrop
- Eggdrop 1.10, bot IRC
- tclsh
- Tcl 8.6, język skryptów bota
Serwer i usługi
- unrealircd
- UnrealIRCd 6, serwer IRC, z unrealircdctl
- services
- Anope 2.0: NickServ, ChanServ, OperServ i pozostałe
Bouncer
- znc
- ZNC 1.9 z panelem WWW, bez modułów Perla, Pythona i Tcl
FTP
- pure-ftpd
- Pure-FTPd z TLS
- pure-pw
- własna baza użytkowników
Narzędzia
- busybox
- chpst uruchamia każdy program jako jego własny użytkownik
- screen
- trzyma klienta przy życiu po zamknięciu terminala
Jak to wygląda
Prawdziwe ekrany z małej sieci testowej na NAS-ie QNAP: kanał z kreatora, jego bot i dwa klienty.
Komu to pomaga
Chcesz mieć własny czat
UnrealIRCd i Anope dają zarejestrowane nicki i kanały na serwerze, który sam prowadzisz, dla znajomych albo zespołu.
Siedzisz na IRC cały dzień
ZNC pozostaje połączony, gdy komputer śpi, a irssi działa dalej w screen po zamknięciu terminala.
Lubisz boty
Eggdrop siedzi na Twoim kanale, a Ty rozszerzasz go skryptami Tcl.
Instalacja
- Raz dodaj repozytorium tej strony do App Center: trzy kroki.
- Na liście repozytorium znajdź (example) BitchMyQnap i naciśnij Instaluj.
- Włącz SSH w Panel sterowania › Usługi sieci i plików › Telnet / SSH.
Pierwsze uruchomienie
BitchMyQnap nie ma własnego okna: uruchamiasz go z terminala. Zaloguj się przez SSH jako admin i uruchom klienta. Do własnej sieci użyj projektu opisanego niżej.
ssh admin@192.0.2.10 # adres Twojego NAS-a irssi -c irc.example.com -p 6697 --tls # dowolny serwer IRC przez TLS
Sieć w trzech poleceniach
Pakiet zawiera programy, a kreator i skrypt uruchamiający zostają w projekcie BitchMyQnap w Edytorze, więc ta część wymaga Bucket & Code. Zbuduj i aktywuj aplikację tak, jak pokazujemy niżej, a potem uruchom w terminalu Edytora:
make setup # kreator: nazwy, Twoje hasła, folder sieci make start # uruchamia programy sieci make irc-status # które z nich działają
Kreator pyta o nazwę sieci, nazwy serwera i usług, kanał, Twój nick, nick bota i o to, czy ustawić FTP. Hasła zapisuje tylko jako skróty. Hasło łącza między UnrealIRCd a Anope i klucze maskowania adresów są losowe.
Każdy program działa jako użytkownik 65534, a irc.sh wysyła sygnał do programu tylko wtedy, gdy /proc pokazuje jego własny plik uruchomiony jako ten użytkownik.
Porty działającej sieci
| Port | Co nasłuchuje |
|---|---|
| 6667 | UnrealIRCd, IRC, na każdym adresie |
| 6697 | UnrealIRCd, IRC przez TLS, na każdym adresie |
| 9669 | UnrealIRCd, łącze usług, tylko na 127.0.0.1 |
| 9667 | ZNC, IRC przez TLS i panel WWW, na każdym adresie |
| 9021, 9022-9031 | Pure-FTPd, port sterujący i pasywne, na każdym adresie |
Po uruchomieniu
- Połącz klienta z portem 6697, a
/operz nickiem i hasłem da Ci prawa operatora IRC. /msg NickServ REGISTERrejestruje Twój nick. Anope czyni go rootem usług.- Wyślij do bota
/msgz tekstemhello: pierwsza osoba, która się przywita, zostaje jego właścicielem. - Panel WWW ZNC jest na porcie 9667 przez HTTPS, a klient IRC łączy się z tym samym portem przez TLS.
Warto wiedzieć
- UnrealIRCd, ZNC i Eggdrop nie uruchomią się jako root. Żeby wystartować je z samego pakietu, sam piszesz ich konfiguracje i wybierasz użytkownika.
- Programy sieci zatrzymują się przy restarcie NAS-a.
make starturuchamia je ponownie. - W QuTS hero lista ACL udziału może zamknąć folder w tym udziale przed użytkownikiem 65534. Kreator sprawdza to na końcu i podaje taki folder. Folder na woluminie aplikacji działa.
- BitchX zaczyna każdy wiersz dwoma znakami 8-bitowymi, których terminal UTF-8 nie narysuje. Obrazek wyżej pokazuje w ich miejscu puste pole.
Zmień i zbuduj na nowo, kiedy chcesz
BitchMyQnap to przykład z Bucket & Code Server IDE, naszego darmowego środowiska programistycznego dla QNAP. Kompiluje każdy program ze źródeł na Twoim NAS-ie i pakuje wynik jako QPKG.
W panelu
- W Bucket & Code otwórz Aplikacje, potem kartę Przykłady. Dodaj Ubuntu 24.04 builder (full), jeśli nie masz jeszcze środowiska do budowania.
- Naciśnij Użyj tego przykładu przy BitchMyQnap (geek set 3). Aplikacja pojawi się z recepturami, ale jeszcze nic się nie buduje.
- Naciśnij Zbuduj, potem Aktywuj. Eksportuj tworzy QPKG, gdy masz zainstalowany toolchain QDK.
W terminalu
Projekt BitchMyQnap w Edytorze trzyma tę samą listę w pliku recipes.txt. Usuń wiersz albo dodaj recepturę z biblioteki, a potem uruchom w terminalu Edytora:
make app # tworzy aplikację z recipes.txt make build # buduje ją i śledzi zadanie make activate # /usr/app/BitchMyQnap wskazuje teraz na tę kompilację make qpkg # eksportuje QPKG (wymaga toolchaina QDK)
QPKG zawiera programy aplikacji. setup.sh i irc.sh zostają w projekcie.
Zobacz to w Bucket & Code
Compile Any App You Need Without Linux Skills: Build QPKG & Deploy Easily (Freeware)
8 min na YouTube

