У меня используется свеже установленый Archlinux 23.01.01.

Установка зависимостей:

sudo pacman -Sy lua53 geoip cmake pcre mariadb gettext openssl perl git wget curl libmaxminddb icu lua-socket nano

Если необходим плагин python:

git clone https://aur.archlinux.org/python2-bin.git
sudo chmod -R 777 python2-bin
cd python2-bin
makepkg -si

cd ..

Настрайваем MYSQL:

sudo systemctl enable mysql 
sudo mysql_install_db --user=mysql --basedir=/usr --datadir=/var/lib/mysql
sudo systemctl start mysql

Скачиваем и собираем хаб:

git clone http://github.com/verlihub/verlihub/
cd verlihub && mkdir build && cd build && cmake .. -DWITH_FLOODPROT=ON -DWITH_REPLACER=ON -DWITH_STATS=ON -DWITH_MESSENGER=ON -DWITH_ISP=ON -DWITH_IPLOG=ON -DWITH_CHATROOM=ON -DWITH_FORBID=ON -DWITH_PERL=ON  -DWITH_PLUGINS=ON -DWITH_PYTHON=ON
make
sudo make install
sudo ldconfig

 

Установка verlihub:

sudo LD_LIBRARY_PATH=/usr/local/lib  vh -i

 процессе установки отвечаем на вопросы:

О пользователе и базе MySQL:

Указываем пароль пользователя root MySQL:

Папку установки выбираем /etc/verlihub

Создаём пользователя на хабе, настраиваем порт, хост и название хаба:

Обновляем geo-ip:

sudo LD_LIBRARY_PATH=/usr/local/lib  vh -g

Переводим verlihub на русский язык:

sudo su

echo "locale = ru_RU.CP1251" >> /etc/verlihub/dbconfig
localedef -c -i ru_RU -f CP1251 ru_RU.CP1251
nano /etc/locale.gen

Добавляем строку:


ru_RU CP1251

Генерируем локаль:


locale-gen

Запускаем verlihub:

LD_LIBRARY_PATH=/usr/local/lib  vh -r

 

Скрипты для verlihub:

Переходим в нужную папку:

cd /etc/verlihub/scripts

Скачиваем скрипты:

wget https://ledo.feardc.net/dev/ledokol.lua

 

wget https://ledo.feardc.net/dev/ledo_ru.lang

 

wget https://ledo.feardc.net/python/blacklist/blacklist.py

 

wget https://ledo.feardc.net/python/blacklist/black_ru.lang

Включаем скрипты через dc-клиент:

!modplug lua -a 1

  

!modplug python -a 1

 

 

TLS proxy:

Устанавливаем компилятор Go:

pacman -S go

Генерируем сертификат и ключ:

mkdir /etc/verlihub/tls && cd /etc/verlihub/tls

 

openssl req -new -newkey rsa:4096 -x509 -sha256 -days 365 -nodes -out "hub.crt" -keyout "hub.key"

Отвечаем на несколько вопросов:

Скачиваем и компилируем tls-proxy:

git clone https://github.com/verlihub/tls-proxy.git


cd tls-proxy

 

export CGO_ENABLED=0 && go build -ldflags "-libgcc=none" -tags netgo proxy.go

Настраиваем verlihub через dc-клиент:

!set tls_proxy_ip 127.0.0.1

 

!set listen_ip 127.0.0.1

Перезагружаем сервер:

reboot

 

Запускаем verlihub и tls-proxy на сервере:

LD_LIBRARY_PATH=/usr/local/lib  vh -r

 

/etc/verlihub/tls/tls-proxy/proxy --cert="/etc/verlihub/tls/hub.crt" --key="/etc/verlihub/tls/hub.key" --host="10.10.0.211:411" --hub="127.0.0.1:411"  &

 

Где 10.10.0.211 ваш ip, куда подключаются клиенты

Автозагрузка:

nano /etc/rc.local

Добавляем строки:

#!/bin/bash
sleep 15
LD_LIBRARY_PATH=/usr/local/lib  vh -r
/etc/verlihub/tls/tls-proxy/proxy --cert="/etc/verlihub/tls/hub.crt" --key="/etc/verlihub/tls/hub.key" --host="10.10.0.211:411" --hub="127.0.0.1:411"  &
exit 0

Делаем файл исполняемым:

chmod +x /etc/rc.local

В archlinux rc.local выключен, включаем его:

nano /etc/systemd/system/rc-local.service

Пишем:

[Unit]
 Description=/etc/rc.local Compatibility
 ConditionPathExists=/etc/rc.local

[Service]
 Type=forking
 ExecStart=/etc/rc.local start
 TimeoutSec=0
 StandardOutput=tty
 RemainAfterExit=yes
 SysVStartPriority=99

[Install]
 WantedBy=multi-user.target

Включаем сервис:


systemctl enable rc-local

На этом всё. Хаб установлен, осталось настроить скрипты.