У меня используется свеже установленый 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 -sicd ..
Настрайваем 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
На этом всё. Хаб установлен, осталось настроить скрипты.