Verlihub

Материал из wiki.lissyara.su
Перейти к: навигация, поиск

Это незавершённая статья  Вы можете помочь проекту, исправив и дополнив её.
Это примечание по возможности следует заменить более точным.


Verlihub — самый распространённый на UNIX-системах хаб файлообменной сети DC++, прежде всего GNU/Linux и FreeBSD.


Особенности Verlihub

В отличие от большинства известных хабов, является open-source-проектом и распространяется по лицензии GNU GPL. Разрабатывается под GNU/Linux, но может работать и на FreeBSD, существуют тестовые сборки под Microsoft Windows. Работает как демон (англ. daemon), умеет работать из-под непривилегированного пользователя, возможен запуск нескольких экземпляров хаба на одной системе. Написан на языке C++. Использует MySQL для хранения настроек и других данных. Поддерживает механизм подключаемых модулей (плагинов, от англ. plug-in). Поддерживает скрипты на языке lua (с помощью плагина LuaScript). К сожалению Verlihub Script API хаба отличается от API популярного хаба PtokaX, для которого существует множество скриптов. Существует также альфа-версия плагина PerlScript, реализующего поддержку скриптов на языке perl. Отличается эффективной работой и невысокой нагрузкой на процессор, память и сеть при большом количестве пользователей. Известны случаи, когда хабы успешно держат по нескольку тысяч пользователей на компьютере с процессором класса Pentium II. Впрочем количество клиентов за 7 тысяч трудно поддаётся и ему.

Требуемые программы

  1. gcc версии не ниже 3.3
  2. MySQL версии не ниже 4.0.20
  3. Библиотека libmysqlclient версии не ниже 4.0.20
  4. GeoIP
  5. Библиотека pcre


Установка сервера verlihub

Начальный Автор: catdog_.

FreeBSD 6.3 BETA2, но и на 6.2 хаб вставал и работал без проблем.

Установливать можно как из портов, так и скачав исходники с CVS или в виде архива. Мы будем ставить сервер из портов:

cd /usr/ports/net-p2p/verlihub/
make install clean

Устанавливается без ошибок и прочих проблем. Для работы хаба нужен запущенный сервер баз данных MySQL. Как его поставить и настроить уже писал lissyara (http://www.lissyara.su/?id=1189). Читаем, ставим, запускаем и проверяем :)

//> /usr/local/etc/rc.d/mysql-server status
mysql is running as pid 48383.

или вот так:

/usr/MY/> ps -aux | grep mysql
mysql 22262  0,0  0,2  5180  4696  p1- IN   18:38     0:00,10 /usr/local/libexec/
mysql 48349  0,0  0,1  1748  1272  p1- I    17:22     0:00,01 /bin/sh /usr/local/
mysql 48381  0,0  0,2  5180  4696  p1- SN   17:22     0:00,01 /usr/local/libexec/
mysql 48382  0,0  0,2  5180  4696  p1- SN   17:22     0:00,04 /usr/local/libexec/
mysql 48383  0,0  0,2  5180  4696  p1- IN   17:22     0:00,00 /usr/local/libexec/


Сервер БД работает - можно запускать хаб. Сначала даем команду vh-install


и отвечаем на несколько вопросов (в большинстве случаев достаточно нажать enter).

--------------------------------
Your name ? (root)
Hello root,
let's start with configuration of database access..
--------------------------------
mysql database for verlihub will be called? (verlihub)
mysql user to access verlihub gonna be? (verlihub)
password to access verlihub be? (1195486071)
mysql server will run where? (localhost)
--------------------------------
user     = verlihub
password = 1195486071
host     = localhost
database = verlihub
--------------------------------
This database account cannot be accessed
--------------------------------
Is this info correct ? (Y/N)y
Do you want to create database now? (Y/N)
--------------------------------
root, you need to choos a place for the configuration files
--------------------------------
The order of folder that verlihub is looking for is following:
1 - variable $VERLIHUB_CFG          - -inexisting-
2 - ./.verlihub                      - /root/.verlihub -inexisting-
3 - /root/.verlihub        - /root/.verlihub -inexisting-
4 - /usr/local/etc/verlihub   - /usr/local/etc/verlihub -inexisting-
5 - /etc/verlihub                    - /etc/verlihub -inexisting-
if two or more of these exist, lower number has priority
--------------------------------
what is will be the configuration folder ? (/etc/verlihub)
The config folder /etc/verlihub does not exist and would be created
--------------------------------
Do you want to continue with these settings
(if not then select another folder) ? (Y/N)y
--------------------------------
Written: /etc/verlihub/dbconfig
--------------------------------
ERROR: Your installation is NOT complete
Either you were unable to create database or config folder
Without both valid I cannot continue
Come back with necessary info, permissions and running mysql server and run me again

Странно, но нарисовало ошибку :) Пробуем снова

/root/> vh_install
--------------------------------
Your name ? (root)
Hello root,
let's start with configuration of database access..
--------------------------------
mysql database for verlihub will be called? (verlihub)
mysql user to access verlihub gonna be? (verlihub)
password to access verlihub be? (1195486071)
mysql server will run where? (localhost)
--------------------------------
user     = verlihub
password = 1195486071
host     = localhost
database = verlihub
--------------------------------
This database account cannot be accessed
--------------------------------
Is this info correct ? (Y/N)y
Do you want to create database now? (Y/N)y
--------------------------------
Ok preparing mysql..
You probably need administrator access to mysql database
mysql administrator username? (root) root
--------------------------------
You'll be now promted by mysql client for password of root@localhost
Enter password:
--------------------------------
This database account exists
--------------------------------
root, you need to choos a place for the configuration files
--------------------------------
The order of folder that verlihub is looking for is following:
1 - variable $VERLIHUB_CFG          - -inexisting-
2 - ./.verlihub                      - /root/.verlihub -inexisting-
3 - /root/.verlihub        - /root/.verlihub -inexisting-
4 - /usr/local/etc/verlihub   - /usr/local/etc/verlihub -inexisting-
5 - /etc/verlihub                    - /etc/verlihub drwxrwxrwx
if two or more of these exist, lower number has priority
--------------------------------
what is will be the configuration folder ? (/etc/verlihub)
This config folder already exists and may be overwitten (with a backup)
--------------------------------
Do you want to continue with these settings
(if not then select another folder) ? (Y/N)y
Do you want to overwrite the existing configuration ? (Y/N)y
--------------------------------
FYI: original configuration has been moved to /etc/verlihub/_backup
Written: /etc/verlihub/dbconfig
--------------------------------
Wait few seconds..
/usr/local/bin/vh_install: line 65: 22060 Killed: 9    $bindir/verlihub 22 >&/dev/null
--------------------------------
root, now I will ask you few more questions about your future hub, if you permit..
--------------------------------
Try to not put many special characters, you'll be able to put some laer
Give me your DC hub master nickname.. ([SU]root) Catdog
Choose your password.. (1195486402) 12345
Which will be default ONE hub  port number? (411)
What will be your hub hostname? (catdog.sampo.ru)
Give me the name of your hub (hub of root) MyHub
--------------------------------
Hub: 'MyHub'
url: 'dchub://catdog.sampo.ru:411'
Master user: 'Catdog'
Master's password: '12345'
--------------------------------
Is this info correct ? (Y/N)y
FYI: settings are going to be created or updated
/etc/verlihub
/etc/verlihub
/etc/verlihub
will invoke the command
class is 10
nick is Catdog
password is 12345
done

На этот раз успешно :) Пришло время запустить наконец сервер (не забудь добавить в /etc/rc.conf строку verlihub_enable="YES"):

/root/> /usr/local/etc/rc.d/verlihub start
Starting verlihub.
/root/>

Полный мануал по хабу инсталлится в /usr/local/share/doc/verlihub/verlihub_manual.html

Дальнейшая настройка хаба.

Можно производить из специализированных WEB интерфейсов (VerliAdmin и т.п.), внося изменения в БД Верлихаба или из DC++ клиента, подключенного к хабу.

Рассмотрим последний случай.

Теперь нужно выбрать клиента, и законнектиться с хабом. Я выбрал linuxdc (на старых версиях у него были проблемы при скачке с кодировками, сейчас все ОК) cd /usr/ports/net-p2p/linuxdcpp/ make install clean

Теперь заходим на хаб из linuxdc под главной учеткой (у меня Catdog) с паролем (у меня 12345). В приват придут поздравления :) Рулить хабом очень просто. Чтобы получить текущие настройки, дай команду !getconfig Список настроек упадет в приват.

Чтобы изменить настройку, скажи !set "что меняешь" "на что меняешь"

, например, !set hub_name NewName

Это изменит текущее имя хаба на NewName. После смены настроек дай команду !reload

Я обычно изменяю следующие настройки: переименовываю ботов, ставлю минимальную шару (1гб), ограничиваю длину ников и сообщений юзеров. Остально по желанию :). Сообщение дня (motd) - выводится когда входишь на хаб, правила, фак - обычные текстовые файлы, находящиеся в папке с конфигом хаба (помните: what is will be the configuration folder ? (/etc/verlihub)). Там можно понаписать (или нарисовать в ASCII) чего угодно :) (возможно так же сделать разные сообщения для разных юзеров типа админов, простых смертных, операторов и т. д.)

Команды по управлению пользователями.

Кикать юзера (без кавычек) !kick "ip" "причина"

банить не сложнее !ban_2w "ip" "причина"

время задается цифрой с буквой: Second - s; Minute - m; Hour - h; Day - d; Week - w; Month - M; Year - y. Разбанить unban "ip" "причина"

Послать широковещательный спам можно командой !broadcast Хаб отправляется в ребут. Заходи через минуту или пошел ты нафек :))

Осталось зарегать соседа в качестве админа, чтобы самому не делать грязную работу и готово :) (5 - это группа админов) !regnewuser user 5

Ссылки