Здравствуйте, коллеги! Новый год подкрадывается всё ближе, а это значит, что нам снова пора собраться вместе для того чтобы хорошо провести время! Для тех кто еще не знаком с новогодним хабрачатом, расскажу немного про него. Это несколько чатов на разных платформах, объединенных мостом. Боты в каждой из платформ пересылают сообщения из остальных и получается, что все как-бы находятся в одном чате, при этом не покидая любимой платформы. В этом чате мы традиционно встречаем Новый год уже четвертый раз (в прошлом году только в одном SSH-чате было больше сотни человек). В центре внимания, конечно, SSH-чат, который работает только несколько дней до нового года и несколько после. В этом году разные люди также подняли чаты в XMPP (Jabber), Телеграме и IRC. Также традиционно есть чат-бот tars, который может вывести ёлку и поздравить с новым годом. В прошлые года таких ботов делали несколько человек (кто-то даже на баше). SSH-чат обычно открывает @podivilov, для этого используется кастомный SSH сервер, написанный на go. Устанавливается и настраивается он довольно просто. Для начала можно освободить стандартный порт SSH, чтобы при заходе в наш чат не вводить порт. В ubuntu server, например, это делается так. В файле /etc/ssh/sshd_config находим строку Port 22 и меняем число на нужный порт. После этого перезапускаем ssh демон sudo systemctl restart sshd и стандартный порт свободен (убедитесь, что фаерфол пропустит вас по новому порту). Скачивается бинарник под нужную платформу из релизов на github. Можно положить его, например, в /usr/bin. Далее пишем простой скрипт, который будет перезапускать сервер, в случае падения. (Этот вариант не очень хорош, советую делать так, как в этой статье)  Давайте разберем параметры запуска admin путь до файла со списком публичных ключей администраторов (у них стандартный набор возможностей: кик, бан и прочее) bind айпи и порт, на котором сервер будет транслировать log путь до файла с логами чата motd путь до файла с сообщением дня (message of the day), которое будет показываться при каждом заходе в чат Теперь мы можем запустить этот скрипт любым удобным способом (в сессии tmux/screen, через systemctl и т.д.) и чат готов. Вводим ssh nickname@habr2021.podivilov.ru и попадаем в наш чат. Для списка комманд нужно ввести /help, а для выхода /exit или Ctrl+D. Мост уже который год хостит @mrDoctorWho, для этого используется matterbridge, который кстати тоже написан на go. Его установка и настройка, как ни странно происходит точно так же. Скачиваем бинарник из релизов на github и кладем его, куда нам надо. Далее пишем конфигурационный файл и скрипт старта. Как-то так выглядит конфиг от @mrDoctorWho:  К сожалению, у matterbridge слишком много возможностей, чтобы описать их в этой статье, поэтому советую обратиться к официальной вики, в которой все достоточно понятно и подробно рассписано. А вот скрипт запуска, который почти ничем не отличается от скрипта для SSH-чата:  После старта этого скрипта мы имеем полностью работающий мост между всеми нашими чатами. Чат-бот, который гуляет по чатам уже который год подряд, называется tars. Бот поздравляет с Новым годом, выводит новогоднюю ёлку ASCII-артом и имеет несколько других команд, в зависимости от того, кто его делал. Первая версия была запущена три года назад, к сожалению не помню кем. Бот был написан на bash-скрипте с использованием screen. Свою версию я писал на JavaScript с использованием только стандартных библиотек. С его исходным кодом можно ознакомиться здесь. Если вкратце, он вызвает процесс командной строки с помощью модуля child_process (в зависимости от операционной системы, используются либо bash.exe, либо bash). Далее он открывает ssh сессию может писать либо читать прямо из нее. Кроме этого, код довольно заурядный, с его последней версией вы можете ознакомиться на гитхабе. Выбирайте любой понравившийся и присоединяйтесь. С наступающим Новым Годом! SSH чат: хост: habr2021.podivilov.ru, порт 22. Для подключения к SSH-чату можно использовать любой SSH-клиент. Например, OpenSSH. XMPP чат: ny@conference.helldev.net. Список клиентов доступен здесь. Telegram чат: @habrachat2021. IRC чат: #habr2021 на FreeNode.