Серверная часть фидоноды ftns/ftnw, её задачи и функции таковы:
- Прием сообщений от ifmail/ifnews и помещение их в спулы.
- Тоссинг rfc-0822/rfc-1036 спуленых сообщений и раскидывание их классическим поинтам и в базу для ббс-поинтов.
- Сканирование эхо- и нетмыла в базе и помещение в спулы тоссера.
- Роутинг мыла (пока заплатка, в разработке).
- Подписка (отписка) на эхи у аплинков.
- Areafix - общий для классических и ббс-поинтов.
- Синхронизация поинтов между базой ftnw и конфигом ftns.
- Синхронизация эх узла между конфигом ftns и базой ftnw.
- Синхронизация подписок поинтов между конфигом ftns и базой ftnw.
Замена ifmail на встроенный тоссер FTS-0001 пакетов планируется, но позже.
Вся установка делается с помощью composer
, сначала создаем директорию там, где на нужно:
mkdir ftns && cd ftns
Загружаем файлы:
composer require igorgoroun/ftns
Выполняем пост-инсталляционный скрипт:
cd vendor/igorgoroun/ftns/ && composer run-script post-install-cmd
Теперь возвращаемся в корень, туда скопировалась директория etc/
, основной файл ftns
и маленький bash-скрипт ftns-toss
.
Главный конфиг-файл, правим согласно нашим потребностям.
Shell-скрипт проверяющий наличие сообщений в спуле нетмейла и эхомейла и запускающий соответсвующий тоссер. Путь к спул-директории нетмыла:
NM_DIR="/var/spool/ftn/netmailspool/"
Путь к спул-директории эхомыла:
EM_DIR="/var/spool/ftn/echospool/"
Полный абсолютный путь с файлу ftns
:
FTNS_PATH=“/opt/ftns/ftns"
./ftns list
- список доступных команд.
Для каждой команды можно получить подсказку, например:
./ftns help echomail:post
./ftns echomail:spool
- принимает на STDIN сообщение от ifnews и складывает в echomail_spool.
./ftns echomail:toss
- тоссит сообщения в echomail_spool и раскладыает их поинтам.
./ftns echomail:scan
- смотрит новые сообщения в БД и складывает их для тоссера в echomail_spool.
./ftns echomail:subscribe Point_IFAddr Area1 Area2 …
- Подписывает поинта на эхи. Point_IFAddr в формате p34.f4.n466.z2.fidonet.org.
./ftns echomail:newarea Uplink_IFAddr Area1 Area2 …
- Подписаться у аплинка на эху и внести её в конфиг. Uplink_IFAddr в формате f55.n466.z2.fidonet.org.
./ftns echomail:post -s “Subject” -m “Message” -t “Tearline” -o “Origin” ECHOAREA
- Отправить сообщение в эху
./ftns netmail:spool -f From_RFC -t To_RFC
- принимает от ifmail на STDIN сообщения и складывает их в netmail_spool
./ftns netmail:toss
- тоссит сообщения в netmail_spool и раскладыает их поинтам.
./ftns netmail:scan
- смотрит новые нетмейл-сообщения в БД и складывает их для тоссера в netmail_spool.
./ftns sync:points
- Синхронизирует поинтов в ftns с конфиг-файлом ftns.
./ftns sync:subscr
- Синхронизирует подписки поинтов между ftns и ftnw.
./ftns sync:areas
- Синхронизирует список доступных эх между ftns и ftnw.
Покажу только нюансы связанные с ftns.
У меня только одна запись в файле, этого достаточно:
* * world
Важные две настройки - отвязка от классической связки ifmail+sendmail+innd:
sendmail /var/www/fidonews-server/ftns netmail:spool --from=$F --to=$T
rnews /var/www/fidonews-server/ftns echomail:spool
Остальные настройки - на ваше усмотрение, там фактически ничего больше нет важного, кроме данных сисопа.
Ftns генерирует файл points.inc с паролями поинтов в директории конфигов binkd, у меня это /etc/binkd
, так что этот файл должен быть создан и доступен для записи.
В конфиг binkd должна быть добавлена команда для подключения файла:
include /etc/binkd/points.inc
Как и что запускать - дело ваше, у меня все скрипты работают по крону, примерно вот так:
*/1 * * * * ftn /usr/lib/ifmail/ifpack 2>&1
*/1 * * * * ftn /usr/lib/ifmail/ifunpack 2>&1
*/1 * * * * ftn /usr/bin/php /var/www/fidonews-server/ftns netmail:scan 2>&1
*/3 * * * * ftn /usr/bin/php /var/www/fidonews-server/ftns echomail:scan 2>&1
*/2 * * * * ftn /var/www/fidonews-server/ftns-toss 2>&1
*/10 * * * * ftn /usr/bin/php /var/www/fidonews-server/ftns sync:subscr 2>&1
*/10 * * * * ftn /usr/bin/php /var/www/fidonews-server/ftns sync:points 2>&1
0 0 * * * ftn /usr/bin/php /var/www/fidonews-server/ftns echomail:post r46.alive -m "Ping" -s "Alive" 2>&1