ServerAdmin.ru
31.6K subscribers
843 photos
57 videos
23 files
2.99K links
Авторская информация о системном администрировании.

Информация о рекламе: @srv_admin_reklama_bot
Автор: @zeroxzed

Второй канал: @srv_admin_live
Сайт: serveradmin.ru

Ресурс включён в перечень Роскомнадзора
Download Telegram
​​Я неоднократно получал рекомендацию посмотреть на децентрализованный мессенджер Jami, особенно в контексте моих заметок на тему selh-hosted серверов для организации собственного мессенджера для общения. Эти заметки можно почитать по тэгу #chat

Решил познакомиться с Jami и разобраться, что это такое и как работает. Если кратко, то это условный аналог Whatsapp, Telegram и т.д., только в котором не надо регистрироваться и оставлять свои персональные данные. Из особенностей - контакты хранит в общем блокчейне на основе Ethereum, его же использует для аутентификации. Поддерживают всё это хозяйство публичные ноды по аналогии с нодами крипты.

Можно поднять свою ноду, процесс описан в wiki. По дефолту клиент стучится на bootstrap.jami.net:4222, оттуда уже берёт список известных нод и дальше использует какую-то из них, не обязательно центральную. Но при первом запуске подключается именно к jami.net. Теоретически можно настроить в закрытом периметре свою ноду и замкнуть всех своих клиентов на неё. Из описания не понял, можно ли исключить её из общей сети, чтобы она была только твоя, с твоим блокчейном абонентов.

Jami позволяет совершать аудио и видео звонки, в том числе групповые, обмениваться файлами. То есть это может быть актуально для банального разговора с кем-то, когда не хочешь светить свои персональные данные в известных мессенджерах. Достаточно скачать Jami клиент, установить себе на комп, пройти быструю регистрацию, где не требуется даже почта и пароль. И дальше связываться с собеседником, который проделал всё то же самое. Как я понял, привязка к твоему аккаунту идёт по имени учётной записи, которую ты укажешь и идентификатору, который запоминается на устройстве. Потерять нельзя ни то, ни другое, иначе доступ к акккаунту пропадёт. Вся история хранится на твоих устройствах.

Связь между абонентами осуществляется по технологии p2p с использованием шифрования. Если оба за натом, то соединение устанавливается через какую-то публичную ноду. Как я понял, подобный мессенджер считается очень безопасным, потому что анонимен и всё шифруется.

В целом, интересный чат, так как сейчас практически нереально пообщаться, не оставив своих персональных данных. Везде идёт привязка к номеру телефона. С Jami можно обойтись без этого, так что неплохо было бы получить развитие этого мессенджера. Клиент есть под все популярные системы, в том числе на смартфонах.

Сайт - https://jami.net/
Исходники - https://git.jami.net/savoirfairelinux/jami-project
Обзор - https://www.youtube.com/watch?v=3MU2Kg7gwF8

#chat
👍53👎6
​​Я вчера был на конференции, организованной компанией TrueConf. Была недавно на канале реклама этого мероприятия. Сразу скажу, что этот пост у меня никто не заказывал и не просил написать. Это моя инициатива. Он просто хорошо ложится в канву импортозамещения и перехода на отечественные продукты.

TrueConf - это платформа для видеоконференций и онлайн общения, которая конкурирует с известными мировыми брендами, такими как Zoom, Teams, Webex и т.д. Причём конкурирует давно и не только на отечественном рынке. Основное отличие и оно же преимущество - возможность купить продукт в формате On-premise или Box. То есть вы можете установить ПО на своё железо и оплачивать его по ежегодной подписке или купить бессрочную лицензию.

Я не буду подробно описывать все возможности TrueConf, так как это известная компания с большой линейкой продуктов, пытающаяся покрыть все потребности бизнеса в коммуникациях (видеоконференции через PC клиенты, через аппаратные устройства для переговорок, через аппаратные терминалы для sip/h323, свой транскодирующий сервер и т.д.) Всё это рассчитано на очень большие масштабы.

Отмечу кратко то, на что сам обратил внимание из полученной информации:
Некоторое время назад было масштабное обновление ПО, в том числе клиентского. Сейчас клиент позиционируется в том числе как чат для корпоративного общения. Замена Telegram, WhatsApp и т.д. То есть не только звонилка для видеопереговоров.
Разработка старается конкурировать с мировыми лидерами Zoom, Teams и т.д. Пытаются брать лучшие практики и улучшать их. Речь о функционале и удобстве.
Решение, установленное на своих серверах, позволяет хранить у себя всю аналитику по использованию, в том числе статистику, видеозаписи и т.д. Это становится очень актуально в последнее время, так как явно виден тренд на сегментирование интернета и риски SaaS продуктов.
TrueConf Server можно установить на любое типовое железо, так что производительность и объёмы дисков зависят только от ваших потребностей.
У TrueConf есть поддержка SIP. То есть этот продукт пытается совместить в себе основные коммуникации бизнеса - чат, видео, телефония.

Отдельно отмечу, что сам я TrueConf никогда не использовал. Была пара тестирований, когда поднимал сервер, но внедрения не делал и активно не использовал. Так что всё написал со слов докладчиков и маркетинговой информации.

❗️У TrueConf Server есть бесплатная версия на 10 абонентов, где можно протестировать основной функционал, в том числе запись конференций. Сервер есть под Windows и Linux, клиенты под все популярные стационарные и мобильные системы. Поддерживаются в том числе все отечественные системы (Asta, ROSA, Alt и т.д.) Ещё раз отмечу, что сервер можно установить у себя автономно в том числе в закрытых сетях.

ps Отдельно хочу отметить, что хотя официально на поставки иностранного оборудования наложены ссанкции, сами производители в них не заинтересованы и реально оборудование поступает и доступно для заказа.

Сайт - https://trueconf.ru/
Реестр ПО - https://reestr.digital.gov.ru/reestr/301405/

#отечественное #videoserver #chat
👍41👎17
​​Давно не было заметок про чаты. Одно время обозревал все наиболее известные бесплатные решения с возможностью установки своего сервера. Посмотреть их можно по тэгу #chat.

Сегодня расскажу про ещё один бесплатный чат-сервер и клиент, который попробовал сам. Речь пойдёт про SimpleX Chat. Своими словами об особенностях, на которые я лично обратил внимание:

возможность использовать свой сервер на Linux для соединения клиентов;
возможность установить консольный клиент на Linux, общаться и передавать файлы на клиенты других платформ (MacOS, Windows, Android, iOS), десктопные клиенты только консольные;
чат полностью независим от каких-либо внешних компонентов или сервисов, для регистрации и общения не нужно ничего указывать;
можно совершать аудио и видео звонки;
сообщения хранятся только на стороне пользователя.

🛡 SimpleX позиционирует себя как очень защищённая, приватная платформа для общения с двойным E2E шифрованием (End-to-End Encryption) всей передаваемой информацией. С учётом того, что можно использовать open source клиенты и серверы, скорее всего это так и есть.

На практике общение выглядит так. Вы устанавливаете клиенты на необходимые устройства. Например, на смартфон и сервер под Linux. Никаких регистраций нигде не надо, достаточно указать только имя, по которому вас будут видеть собеседники. Если не используете свой сервер для соединения, по умолчанию используется пул серверов от разработчиков на поддоменах simplex.im. Поменять сервер можно в настройках.

Чтобы связать два устройства между собой, необходимо на одном из них сформировать специальный код для подключения и передать его другому человеку. Можно в виде текста или qr кода. Этот человек добавляет новый контакт и указывает этот код. Теперь можно переписываться.

На практике я не знаю, кому может пригодиться подобная секретность или анонимность. Но параноиков сейчас масса, так что проект активно развивается, регулярно выходят обновления. Клиенты написаны на Haskell, Swift и Kotlin. Ещё раз отмечу, что десктопные клиенты только консольные. Подозреваю, что это временно, так как протокол общения открытый. Сервер можно развернуть из готовых шаблонов VM у крупных хостеров, например Linode или DigitalOcean.

Лично мне показалось удобным перекидывать файлы через консольный клиент с сервера на смартфон или обратно. Поддерживается групповое общение. То есть можно создать группу серверов и через смартфон передавать туда какие-то файлы или наоборот. Всё это через свою инфраструктуру, без отсвечивания на сторонних сервисах. Можно заскриптовать какие-то действия.

Сайт - https://simplex.chat
Исходники клиента - https://github.com/simplex-chat/simplex-chat
Исходники сервера - https://github.com/simplex-chat/simplexmq

#chat
👍38👎2
Решил освежить информацию по теме бесплатных чатов, которые можно развернуть на своих серверах. В ближайшее время будет несколько публикаций по этой теме. Напомню, что я ранее рассказывал про наиболее известные продукты:

◽️ Zulip
◽️ MyChat
◽️ Mattermost
◽️ Rocket.Chat
◽️ Matrix + Element
◽️ Delta Chat
◽️ Jami
◽️ SimpleX Chat

Некоторые из них я сам настраивал и внедрял. На мой взгляд, наиболее зрелые продукты, которые можно внедрить в организации - Zulip, Rocket.Chat, Mattermost. Matrix + Element тоже не плох, но есть шероховатости по качеству работы, как-будто немного сыровато, хотя за год может что-то и изменилось. Можно почитать комментарии к каждому чату.

Моё внимание привлёк проект Wire. Заявляется в СМИ, что это разработка бывших сотрудников Skype. На github представлены исходники всех клиентов и серверной части. На вид всё неплохо. Продукт довольно старый (с 2014 года), команда опытная, открыты исходники, можно поднять у себя.

Когда стал разбираться более подробно, приуныл. Во-первых, клиент, как у всех популярных чатов, на JavaScript. То есть привычный лагодром в перспективе, по мере роста чатов и истории. Во-вторых, открытые исходники сервера вроде как есть, но реально развернуть сервер и попробовать затруднительно.

В готовом к установке виде серверная часть представлена в виде helm чартов для установки в Kubernetes. Разработчики считают это наиболее подходящей средой для работы сервера. Если посмотреть на схему сервисов, то можно их понять. Сервер состоит из множества различных служб (более десятка: Cassandra, MinIO, ElasticSearch и т.д.). Кубер видится логичной инфраструктурой для его работы.

Есть возможность для теста поднять всё в Docker контейнерах на одном хосте, но придётся немного повозиться, собрать всё это, запустить и убедиться, что всё правильно стартовало. Я решил не тратить своё время на это.

Сервис чата Wire поставляется по подписке. Есть бесплатный тарифный план на 5 пользователей. У меня создалось впечатление, что исходники были выложены в основном для галочки. Я не очень представляю, кто готов будет решиться развернуть и поддерживать у себя такой масштабный проект без технической поддержки. Документация по продукту скудная и местами недоделанная.

Зарегистрировал бесплатный аккаунт и протестировал чат. Не нашёл там чего-то особенного, что выделяло бы его среди других и стоило таких заморочек с собственной установкой или покупкой подписки. Более популярных и именитых аналогов полно. Если есть кто-то, кто разворачивал Wire у себя или пользовался им, то поделитесь впечатлением.

Сайт / Исходники / Клиенты

#chat #подборка
👍31👎1
​​Продолжаю тему бесплатных чатов, которые можно развернуть на своих мощностях и использовать бесплатно. Сегодня будет обзор на чат-сервер, позиционирующий себя как альтернатива проприетарному Discord - Revolt.

Сразу перейду к главному - под капотом у Revolt бэкенд на Rust, в качестве БД используется MongoDB, клиентская часть ... барабанная дробь ... написана на TypeScript, а конкретно десктопные приложения на базе Electron. Если я не ошибаюсь, то всё как в оригинале. Discord тоже написан на Rust, а клиент на Electron.

Кажется, совсем провал - очередной Electron. Но на самом деле не всё так плохо. Во-первых, на Electron сейчас пишется очень много приложений (а клиенты чатов почти все), так что приходится с этим как-то жить. Тот же Rocket.Chat тоже на электроне, так у него ещё и серверная часть на JavaScript. И это не мешает ему быть довольно популярным. Из бесплатных selfhosted чат-серверов он один из самых известных. Так что серверная часть на Rust смотрится неплохо на фоне всех остальных.

Revolt очень просто попробовать, так как доступен бесплатный публичный сервис, где можно зарегистрироваться, создать со знакомыми группы и всё проверить. Так как клиенты это по сути обёртки над web версией, через браузер можно оценить весь функционал. Отмечу, что приложение под Windows можно установить через Microsoft Store или просто скачать установщик. Под все остальные популярные системы тоже есть отдельные клиентские приложения.

В целом, мне чат понравился. Выглядит современно, удобно. Сильно похож на Rocket.Chat и Mattermost. Нашёл публичный чат-сервер сообщества Arch Linux. Полазил по нему. Функционал плюс-минус как у всех - боты каналы, закрепы, картинки и т.д. Можно в один клиент добавлять разные серверы и переключаться между ними.

Если чат понравится и решите развернуть свою серверную часть - добро пожаловать в отдельный репозиторий. Всё оформлено через docker-compose, так что запускается в несколько кликов. Необходимо будет только .env заполнить. Серверная часть состоит из контейнеров:
MongoDB 
Redis
API server
Events service
Web App
S3-compatible storage server Minio
File server (autumn)

Стек стандартный. Хранение файлов в S3. Забыл упомянуть про русификацию. Она нормально сделана, русским языком пользоваться можно. Не заметил каких-то ляпов в переводе или проблем с длиной текста, как часто бывает, когда просто переводят без учёта длины строк. Но есть отдельные непереведённые места.

Revolt свежий проект. Судя по репозиторию, в районе года назад всё началось. Сейчас нет никаких ограничений у бесплатной версии, а платная вообще не появилась. Так что выглядит по функционалу очень привлекательно.

#chat
👍41👎1
​​В рамках задачи по изучению бесплатных платформ для запуска чат-серверов нашёл интересный продукт, который помимо чата включает в себя остальные инструменты для совместной работы - онлайн документы, календарь, задачи. Речь пойдёт про Twake - open source продукт с монетизацией через продажу SaaS сервиса по подписке.

Сразу обращаю внимание на некоторые моменты, которые меня привлекли. Во-первых, сайт проекта представлен на английском, французском и русском языках. Во-вторых, на сайте явно указано, что Twake соответствует федеральному закону о персональных данных 152-ФЗ. Сама компания из Франции, но называет свою команду международной. Я так понял, что там есть какие-то связи с РФ, иначе про 152-ФЗ они вряд ли бы знали.

Twake называет сам себя бесплатной альтернативой Microsoft Teams, хотя лично мне он показался вообще непохожим на Teams. В качестве редактора документов там используется OnlyOffice, для видеозвонков Jitsi. Он скорее похож на Nextcloud или Kopano.

Twake расширяет свой функционал за счёт внешних интеграций, которые настраивать должно быть просто, так как архитектура приложения заточена под это. К примеру, уже есть готовая интеграция с n8n. Настройка показана в документации. Фронт написан на React (Javascript), бэкенд на PHP. Клиент, понятное дело, Electron. Ставить отдельно большого смысла нет, потому что он ничем не отличается от веб версии.

Попробовать Twake можно на бесплатном тарифном плане в облаке или развернуть у себя с помощью Docker. Все контейнеры уже собраны. Запустить так:
# git clone https://github.com/linagora/Twake
# cd Twake/twake
# ./start.sh

Только один нюанс. По умолчанию почему-то запускаются очень старые контейнеры еще от 2021 года. Я вручную заменил версию на последнюю 2022.Q4.1120 в файле docker-compose.yml. И ещё момент. Twake использует БД ScyllaBD, которой для работы нужны инструкции процессора pclmul и sse4_2. Без них не запустится. Пришлось в виртуалке на Proxmox, где её запускал, сделать тип процессора host для этой VM, иначе этих инструкций у неё не было.

Как сам чат Twake ничего особенного из себя не представляет. Всё примерно как у всех. Его стоит рассматривать именно как платформу для совместной работы. Заметно, что проект ещё молодой (первые версии от 2020 года) и сыроват. Акцент на готовую платформу для создания собственных интеграций выглядит перспективно и если всё получится, должно выйти дельное приложение. Пока ставить в прод рискованно. Документация слабая, популярность тоже небольшая. Надо наблюдать. Бесплатных продуктов подобного типа практически нет, так что и выбирать особо не из чего.

Сайт / Исходники

#chat #docs
👍28👎2
​​Необходимо внедрить в небольшой компании примерно на 50 человек Rocket.Chat. Не хочу долго описывать, почему выбор пал именно на него. Если кратко, то основная причина — большая функциональность платной версии. Менее значимые причины — активная разработка продукта и популярность.

Мне так или иначе знакомы все популярные чат-сервера, которые можно установить у себя. Я лично внедрял и использовал Mattermost и Zulip. Первый понравился больше всего, но бесплатная версия сильно ограничена в функциональности. Zulip понравился по возможностям и внешнему виду, но через полгода-год история так жутко тормозила, что невозможно было что-то найти в старой переписке. А вместе с ней и весь клиент тупил, что пользоваться стало некомфортно. В итоге со временем все забросили этот чат и просто перестали пользоваться.

Rocket.Chat обновляется часто, поэтому решил запускать в Docker. Инструкция есть, запускается буквально за 5-10 минут. Обязательно в compose измените версию с latest на последний релиз!!! Сразу же настроил обратный прокси на Nginx и работу по HTTPS и доменному имени.

По умолчанию сервер хранит все загруженные файлы в своей базе Mongodb. Это удобно для масштабирования установки на несколько серверов, что мне совершенно не нужно. Так что я сразу немного изменил compose файл, добавил новый volume к контейнеру с rocketchat и настроил хранение файлов в отдельной директории.

Далее сразу же настроил бэкап. В этом деле я люблю подстраховываться, поэтому сразу настроил три типа:
Бэкап на уровне виртуальной машины.
Воспользовался Docker-volume-backup для бэкапа volumes.
Бэкап дампа базы mongodb.

Rocket.Chat всё своё состояние хранит в mongodb. Если вы не переносили хранение файлов в директорию файловой системы, то бэкапа mongodb вам будет достаточно. Я не очень люблю большие дампы баз данных, в том числе поэтому вынес хранение файлов в директорию, которая вместе с дампом базы и бэкапом volume от монги уезжает на бэкап сервер.

В завершении начальной подготовки сервера настроил отправку почты через smtp сервер, проверил регистрацию и рассылку приглашений. Всё заработало сразу и без проблем. Настройка относительно простая и комфортная. Не надо сильно разбираться или погружаться в документацию. Я только про хранение файлов немного почитал, так как сразу задумался о том, где всё это будет храниться и как бэкапиться.

К сожалению, русский перевод не очень. В целом понятный, но корявенький. Себе сразу поставил английский, иначе настраивать неудобно. Пользователям оставил русский. Посмотрим, как проявит себя этот чат. Я им ещё не пользовался и не внедрял. Только для тестов ставил. Из неприятного заметил, что страница логина не грузится в Яндекс.Бразуре. Во всех других, что я проверял, загружается (Chrome, Edge, Firefox). В первом же бесконечно крутится загрузка стартовой страницы.

Если у кого-то есть советы и рекомендации на основе своей эксплуатации, буду рад подсказкам. Наверняка что-то лучше сразу настроить или поправить.

#chat
👍56👎3
​​Автор классного ютуб канала RomNero выпустил подробное видео с разбором чат-сервера на базе протокола [matrix]. Я делал по нему заметку пару лет назад, а лет пять назад тестировал и писал статью. Ссылку не даю, так как нет смысла. Она уже сильно устарела.

Тема чатов всегда актуальна и жива, так как в среде self-hosted решений нет явного лидера. Приходится выбирать из множества имён. Я делал подборку бесплатных вариантов самых известных решений.

Недавно я успешно внедрил в небольшой компании (60-70 сотрудников) Rocket.Chat. Уже накопился некоторый опыт по настройке, поддержке, обновлению, бэкапу и т.д. Думаю, ещё немного подожду и напишу подробную статью. У этого решения есть как плюсы, так и минусы. Я остановился на нём, потому что он популярен, отзывы в целом неплохие. Плюсов больше чем минусов. Субъективно, мне кажется это наиболее подходящим вариантом на текущий момент по совокупности факторов.

Возвращаюсь к видео: Matrix messenger. Лучшая, бесплатная и ДЕЦЕНТРАЛИЗОВАННАЯ сеть для общения. Я его посмотрел целиком, было интересно, хотя почти вся информация была мне известна. Но если вы не знакомы с этим решением, то рекомендую.

Автор объяснил принцип работы протокола Matrix и чат-сервера на его основе Synapse. Он подробно разобрал установку и настройку сервера и клиентов, начиная от создания DNS записей и заканчивая просмотром логов для решения проблем.

Со стороны решение на базе Matrix выглядит привлекательно. Лично меня останавливает от его использования мало реальных отзывов и личного опыта тех, кто его использовал. Не понятно, насколько в итоге это всё удобно за пределами тестовых лабораторий, стендов и заметок с обзорами. По конкурентам такие отзывы и опыт есть (Mattermost, Zulip, Rocket.Chat).

Если у вас есть опыт внедрения и использования этого чат-сервера, поделитесь информацией. Ну а если вы подбираете себе решение для внедрения, то обратите внимание на Matrix.

#chat
👍67👎3
​​Примерно пол года назад я участвовал во внедрении Rocket.Chat в небольшой организации, где около 50-ти пользователей чата. Делал об этом заметку. Чат прижился, накопился некоторый опыт использования, так что могу поделиться информацией.

В общем и целом с чатом никаких особых проблем не возникло. Я лично занимался только серверной частью. Создавал учётки, подключал пользователей, устанавливал им клиента другой человек, непосредственно работающий там.

С установкой и обслуживанием больших проблем не было. Установил всё стандартно, только прикрепляемые файлы в директорию из базы вынул. Об этом писал в первой заметке. Запустил в Docker. Хватило виртуалки 2 CPU, 4GB RAM. Чат ровно один раз протёк по памяти, пришлось ребутнуть виртуальную машину. Мониторинг почти сразу оповестил, что окно логина недоступно, перезагрузил, пользователи даже не успели заметить.

Мониторинг настроил в Zabbix. Ничего особо не придумывал. Стандартный шаблон для Linux и мониторинг стартовой страницы сервиса. Внутренние метрики не стал мониторить. Нужды в этом не возникло.

Явно не нравится перевод на русский язык. Ни мне, ни пользователям. Пытался через встроенную функциональность в админке перевести самостоятельно некоторые вещи. Не получилось. Не знаю, по какой причине, но мой перевод не отображался. В самой админке по настройкам сильно не лазил. Даже не помню, что менял. Что-то по мелочи. Особо можно не вникать, если не хочется. По умолчанию всё нормально работает.

Ещё один минус - часто выходят обновления. Ну как минус. Это может и плюс с точки зрения развития, но для эксплуатации это минус. Приходится часто по ночам обновлять. Последнее обновление вообще вышло с предупреждением, что через 30 дней все новые клиенты перестанут обслуживаться. А клиенты обновляются автоматически, потому что вручную их хлопотно обновлять. Да и оповещения о новых версиях постоянно выскакивают. Администратор на месте всё же принял решение отключить автообновление и делать его своими силами.

Хорошая новость в том, что обновлять довольно просто, так как это Docker. Вот моя инструкция по обновлению. Писал для себя, чтобы не забыть.

#info
https://docs.rocket.chat/deploy/updating-rocket.chat#upgrading-rocket.chat-on-docker

docker pull registry.rocket.chat/rocketchat/rocket.chat:6.4.8
mcedit .env #change version

docker compose stop rocketchat
docker compose rm rocketchat
docker compose up -d rocketchat

Обновляется обычно контейнер с Rocket.Chat, а всё состояние живёт в базе MongoDB, которая обновляется редко. Так что всё обновление - это удаление старого контейнера с чатом и запуск нового.

Для бэкапа ничего особо не придумывал. Во-первых, бэкаплю саму виртуалку. Во-вторых, рядом с директорией, где прикрепляемые к сообщениям файлы, сделал ещё пару директорий. В одной дамп базы:

#!/bin/bash
/usr/bin/docker exec rocketchat-mongodb-1 sh -c 'mongodump --archive' > /opt/rocket.chat/backup_db/rocketchat-`date +"%Y-%m-%d_%H-%M"`.dump
/usr/bin/gzip /opt/rocket.chat/backup_db/rocketchat-`date +"%Y-%m-%d_%H-%M"`.dump
/usr/bin/find /opt/rocket.chat/backup_db/ -type f -mtime +10 -exec rm -rf {} \;
/usr/bin/touch /opt/rocket.chat/timestamp

Во второй бэкап volume:

#!/bin/bash
/usr/bin/docker run --rm \
 -v rocketchat_mongodb_data:/backup \
 -v /opt/rocket.chat/backup_volume:/archive \
 --env BACKUP_FILENAME="rocketchat-%Y-%m-%d_%H-%M.tar.gz" \
 --env BACKUP_LATEST_SYMLINK="rocketchat-latest.tar.gz" \
 --entrypoint backup offen/docker-volume-backup:v2

Все три директории бэкап сервер забирает к себе. В итоге имею бэкап виртуалки, дамп базы, сырые файлы контейнера, директорию с прикреплёнными файлами.

Всё это занимает не так много места, так что особо придумывать ничего не надо.

Если есть вопросы, задавайте. Мне лично Рокет не очень нравится. Я им почти не пользуюсь. Какой-то он нелепый немного, тормозной. В админке всё тоже как-то намешано, что путаешься постоянно. Но из бесплатных что-то сильно лучше я не знаю. После Telegram трудно пользоваться другими чатами.

#chat
👍89👎3
​​Только я успел написать и в целом похвалить Rocket.Chat за простоту установки, удобство и бесплатность, как прилетает новость о том, что в версии 6.5 теперь бесплатная версия поддерживает только 25 пользователей. Если надо больше - добро пожаловать в платную подписку - от $4.60 в месяц за пользователя.

Я успел обновиться только до 6.4.8 и меня пока это ограничение не затронуло. Пока есть время подумать, как дальше быть. Какое-то время можно не обновляться, но всё равно долго так не протянуть. Будут баги и дыры, которые нужно будет закрывать.

Новость особо нигде не светилась. Пришлось потрудиться и поискать, когда это изменение появилось. Немного информации есть в описании релиза 6.5. Плюс, обновилась документация: "Your workspace will be automatically provisioned a free Starter plan license when you install or upgrade to Rocket.Chat version 6.5 or higher." А на сайте, соответственно, появилось описание этого плана:

STARTER
Everything small teams need to collaborate securely
✔️ Up to 25 users
✔️ Up to 100 monthly active contacts (Omnichannel)

Только я определился с self-hosted бесплатным чатом, как опять придётся выбирать. Я тестировал и изучал почти все популярные чат-серверы:

◽️ Mattermost
◽️ Zulip
◽️ Revolt
◽️ Matrix + Element
◽️ Delta Chat
◽️ Jami
◽️ SimpleX Chat
◽️ NextCloud + Talk
◽️ TrueConf Server Free (бесплатно до 50 юзеров)

На мой взгляд, наиболее зрелые продукты из полностью бесплатных без ограничений по пользователям, которые можно внедрить в организации - Zulip, Rocket.Chat, Mattermost, Matrix + Element. Rocket.Chat соответственно, исключаем, так как 25 пользователей в бесплатной версии слишком мало. Неплохой продукт - TrueConf Server Free. Там и мессенджер, и видеозвонки. Бесплатно до 50-ти пользователей, что довольно неплохо. И сам чат приятный. Но если покупать, то дороговато выходит.

У кого были успешные внедрения бесплатных self-hosted чатов, поделитесь своим опытом. Не понятно, на чём теперь остановиться.

#chat #подборка
👍75👎6
В последние несколько дней заметил какую-то необычную активность на сайте. Заметно выросло количество посетителей по сравнению с прошлыми неделями. Решил глянуть, откуда и куда идёт трафик. Оказалось, что из поисковиков на небольшую заметку про чат-сервер Revolt.

Недавно заблокировали Discord. Я им никогда не пользовался, так что не столкнулся лично с проблемами. Не погружался в эту тему. Судя по всему, Revolt предлагают как альтернативу. У меня совсем короткая заметка про него. Чат я посмотрел в своё время и благополучно забыл про него. Даже не вспоминал. А он, судя по всему, набрал популярность. А в условиях блокировки Discord, большую популярность.

Посмотрел на него ещё раз. Кратко напомню, что это open source проект, который разрабатывается под соусом замены Discord. Написан на Rust, хранит базу в MongoDB, для файлов использует S3. Есть API, веб версия клиента, приложение на десктопы.

Серверная часть упакована в Docker Compose. Установить у себя так:

# git clone https://github.com/revoltchat/self-hosted revolt
# cd revolt
# cp .env.example .env
# wget -O Revolt.toml https://raw.githubusercontent.com/revoltchat/backend/main/crates/core/config/Revolt.toml
# docker compose up

В .env и Revolt.toml надо имя домена указать. Для теста можно IP адрес использовать. Не знаю, возникнет ли у вас ошибка, когда будете пробовать. Я когда запускал, получал ошибку монтирования Revolt.toml. Надо композ немного подправить. Буквально вчера принят PR на этот счёт. Надо в compose.yml заменить:

- ./Revolt.toml:/Revolt.toml

на:

- type: bind
source: ./Revolt.toml
target: /Revolt.toml

После этого проект успешно запустится. Правда зарегистрироваться на своём сервере у меня не получилось. Всё время получал ошибку NETWORKERROR. Бегло не получилось решить проблему. В логах ошибок не было, в репозитории тоже ничего не нашёл. Копать не стал. Подозреваю, это из-за того, что вместо доменного имени использовал IP.

Попробовал зарегистрироваться на их публичных серверах. Не смог. То ли у них сломалось что-то от наплыва пользователей из РФ, то ли специально закрыли регистрацию. Получал ошибку, что не прошёл каптчу, хотя там никакой каптчи нет. Потом вспомнил, что у меня есть учётка. Под ней зашёл нормально.

На вид чат как чат, ничем особо не отличается от всех остальных подобных. Похож на Rocket.Chat. Из-за чего такой ажиотаж вокруг именно Revolt, мне не понятно. Если знаете, напишите, пожалуйста. Можно в том же Telegram общаться. Все те же возможности, что и в Discord и даже больше. Плюс, быстрое, лёгкое приложение для компьютеров и смартфонов.

Хотя я уже не уверен, что Telegram не заблокируют. Там наверху блокираторы с обоих сторон вразнос пошли. Разделяют людей на два противоположных лагеря, минимизируя между ними контакты. Думаю, все понимают, для чего это делается:
🪖 💣 💥 😥

Сайт / Исходники

#chat
👍72👎6
Я периодически использую Rocket.Chat. На текущий момент это хоть и не без недостатков, но тем не менее наиболее функциональное бесплатное решение для сервера чата, установленного на своих серверах. В целом, работает нормально, но утомляет его постоянное обновление. Нет LTS версии, минимум раз в пол года, а обычно и чаще, надо обновлять сервер с ненулевой вероятностью получить проблемы.

Рассказать я хотел не о нём. Чтобы не держать постоянно запущенным клиента Rocket.Chat, решил поднять для него шлюз в Telegram, чтобы пересылал туда сообщения. Нашёл довольно популярный проект Matterbridge, который поддерживает очень много популярных чатов:

◽️Discord
◽️IRC
◽️Matrix
◽️Mattermost
◽️Microsoft Teams
◽️Nextcloud Talk
◽️Rocket.chat
◽️Slack
◽️Telegram
◽️Twitch
◽️VK
◽️WhatsApp
◽️XMPP
◽️Zulip

Оставил наиболее известные. Полный список ещё больше. Причём поддерживает он их, что называется, нативно. Там буквально надо указать адрес сервера, логин, пароль, либо токен, название чата или группы и всё должно работать.

Сразу скажу, что у меня не получилось настроить передачу из рокета в телегу. Я не знаю прочему. Бился пару часов, решить не смог, бросил. Получал постоянно ошибку, с которой справиться не смог. Но в целом, судя по описанию, вещь вполне рабочая и настраивается относительно легко. Покажу свой конфиг, который с точки зрения синтаксиса сделан правильно. Можно взять его за основу. Имя файла matterbridge.toml:

[rocketchat]
  [rocketchat.myrocketchat]
  Server="https://serveradmin.rocket.chat:443"
  Login="rocketuser@gmail.com"
  Password="topsecret"
  PrefixMessagesWithNick=false
  RemoteNickFormat="[{PROTOCOL}] <{NICK}> "

[telegram]
  [telegram.mytelegram]
  Token="13992116911:BBHtEAKqxUHYt45PoWwxKfvH5TR6-vdNw"
  RemoteNickFormat="<{NICK}> "
  MessageFormat=""
  QuoteFormat="{MESSAGE} (re @{QUOTENICK}: {QUOTEMESSAGE})"
  QuoteLengthLimit=46
  IgnoreMessages="^/"

[[gateway]]
name="Serveradmin_gateway"
enable=true

  [[gateway.inout]]
  account="telegram.mytelegram"
  channel="-1001331797787"

  [[gateway.inout]]
  account="rocketchat.myrocketchat"
  channel="test-room"


Там логика такая, что сначала описывается доступ ко всем чатам-серверам, а потом указывается направление пересылки и конкретные чаты и группы, куда будут направляться сообщения.

Запускаем шлюз через простенький docker-compose.yml:

services:
 matterbridge:
  image: 42wim/matterbridge:stable
  restart: unless-stopped
  volumes:
  - ./matterbridge.toml:/etc/matterbridge/matterbridge.toml:ro


# docker compose up

Если в конфигурации будут ошибки, об этом будет информация и контейнер завершит работу.

Описание настроек для всех поддерживаемых чатов есть в wiki. Можно указывать разные направления пересылок, как в одну, так и в другую сторону, или двустороннюю пересылку. Также можно сообщения пересылать в несколько разных приёмников. Например, из группы Телеграм в несколько разных чатов. Если будете настраивать пересылку в или из Telegram, внимательно прочитайте последовательность действий в wiki. Обязательно отключить боту Privacy mode и после этого вывести его из группы и завести снова. Я пока последнее не сделал, не работало ничего в телеге.

Проект полуживой, развивается последнее время слабо. В Issues много мелких и средних багов, так как чаты постоянно обновляются и надо следить за их поддержкой. Но в целом, это работает. Ничего лучше я лично не видел с таким количеством поддерживаемых чатов. Особенно удивила поддержка ВК. Если кто-то знает что-то лучше, поделитесь информацией.

🌐 Исходники

❗️Если заметка вам полезна, не забудьте 👍 и забрать в закладки.

#chat
👍85👎2
Существует известный бесплатный чат сервер Mattermost. Я когда-то давно его устанавливал и администрировал. Написал статью по мотивам. Но с тех пор прошло много времени (8 лет). Решил ещё раз на него посмотреть и оценить.

Разворачивается он просто. Можно быстро в Docker запустить. Сам разработчик рекомендует использовать версию в Docker именно для тестов. Для прода я бы вял Ubuntu и развернул из пакетов. Разработчик рекомендует разворачивать в Kubernetes, если он у вас есть. Он позиционирует свой продукт как полностью готовый для интеграции в современную инфраструктуру разработки и поддержки приложений.

Я взял вот эту инструкцию, подготовил доменное имя и DNS записи для него и всё сделал по шагам:

◽️склонировал репозиторий
◽️получил сертификаты
◽️настроил .env, указав имя домена и путь к сертификатам
◽️запустил docker compose

Всё завелось без проблем и приключений. Работать в Mattermost можно тремя способами:

▪️Браузер
▪️Десктопное приложение
▪️Мобильное приложение

Все три выглядят плюс-минус одинаково, так как по сути являются обёрткой к веб версии. Я хорошо знаком с Rocket.Chat, поэтому дальше буду сравнивать с ним. Вообще на первый взгляд они внешне сильно похожи. Главное окно программы и список сообщений в чатах выглядят схоже.

Mattermost выглядит более аккуратно, перевод на русский язык лучше. Со стороны клиента я вообще не увидел нареканий, а в админке встречались непереведённые настройки.

Для мобильного приложения Android доступны push уведомления, если их включить в админке сервера. Причём я нигде не нашёл информации насчёт ограничений. Указано лишь, что он предоставляется в тестовых целях без гарантии доставки. Не знаю, что у него с надёжностью, но во время моих тестов он работал нормально, все пуши приходили. Также можно поднять свой собственный push сервер. Есть отдельная инструкция для этого. У Rocket.Chat в бесплатной версии есть месячный лимит на push уведомления, но какой он - хз. Раньше был то ли 1000, то ли 10000 пушей. Сейчас все чаты поскрывали сравнения бесплатных версий и точные ограничения, так что трудно сравнивать.

В Mattermost по умолчанию сразу же были настроены звонки между абонентами в том числе с демонстрацией экрана. По крайней мере это заявлено и можно пробовать. Я попробовал. Демонстрация не заработала ни в какой комбинации клиентов. Вроде всё работает, но вместо картинки - чёрный экран. В Rocket.Chat из коробки этого вообще нет. Надо настраивать отдельно Jitsi и интегрировать.

В плане функциональность у Rocket.Chat в бесплатной версии намного больше возможностей. Например, есть поддержка аутентификации с помощью SAML, LDAP, OAuth2, а у MM только email/пароль. Есть какие-то костыли для LDAP, но я не знаю, насколько хорошо они работают. У меня в комментариях к старой статье постоянно просят помочь её настроить.

То же самое с возможностями по управлению пользователями. В MM банально нельзя через админку создать пользователя самому. Надо ему отправить ссылку для регистрации. В Rocket без проблем. Зашёл и сделал учётку. У него же есть полноценный RBAC, можно настраивать какие хочешь роли и распределять права. Можно автоматически раздавать права доступа в каналы. В MM такого нет в бесплатной версии. Но правда там есть удобное разделение на команды с ручным управлением пользователями.

Тут можно много сравнивать. Подведу некоторый итог. В целом мне Mattermost внешне и в плане управления понравился больше. Он какой-то более добротный, целостный, с хорошо структурированной админкой. В Rocket спустя несколько лет я всё равно теряюсь и забываю, где что настраивал. Но при этом в сумме у MM возможностей меньше в бесплатной версии.

Так что если вам хватает возможностей Mattermost, используйте его. А если нужна функциональность Rocket, переходите на него. Но хорошо подумайте. У Rocket поддержка релизов максимум 6 месяцев. Придётся постоянно его обновлять. Иногда бывают проблемы. База у него Mongo против Postgre у MM.

❗️Если заметка вам полезна, не забудьте 👍 и забрать в закладки.

#chat
👍148👎4
Давно запланировал актуализировать подборку self-hosted серверов для установки чат-сервера. Недавно пробовал и писал про Mattermost. Плюс, у меня было много заметок про Rocket.Chat.

Следующим по популярности и набору возможностей по моему мнению идёт Zulip. На днях как раз смотрел обзор этого чата. Автор сказал, что за последнее время вышло много обновлений, чат изменился в лучшую сторону. Я с ним знаком и внедрял его несколько лет назад. Решил посмотреть на него снова, что он из себя представляет на сегодняшний день.

У Zulip есть одна особенность, которая его отличает от остальных чатов - отдельные ветки обсуждений в рамках одного канала. К примеру, можно создать чат ИТ-отдел и в нём выделить несколько тем со своим ветвлением диалогов. Например - закупки, поддержка пользователей, настройка серверов, заявки и т.д.

Отмечу некоторые особенности Zulip:
▪️Голосовые и видео звонки возможны только через стороннюю интеграцию, например Jitsi.
▪️Есть удобная встроенная утилита для бэкапа, восстановления, переноса сервера.
▪️Нормальный перевод на русский язык. Не идеальный, но и не кровь из глаз.
▪️Ограничение free версии - пуш уведомления только для 10-ти пользователей.
▪️Есть возможность интеграции с AD.
▪️Поддержка ботов. Их много, они бесплатные, список тут.
▪️Есть утилита для миграции со Slack, Mattermost, Rocket.Chat.
▪️Код полностью открыт, self-hosted версия замкнута на себя.

Установить Zulip можно как напрямую, так и в Docker. Сами разработчики рекомендуют ставить напрямую, если у вас нет единого стандарта запуска приложений в докере. С их слов управлять не в докере будет проще: "Deploying with Docker moderately increases the effort required to install, maintain, and upgrade a Zulip installation".

Последую их совету и установлю напрямую. Делается это очень просто с помощью автоматического установщика. Я заранее подготовил доменное имя, чтобы сразу же во время установки получить сертификаты.

# mkdir zulip && cd zulip
# curl -fLO https://download.zulip.com/server/zulip-server-latest.tar.gz
# tar -xf zulip-server-latest.tar.gz
# ./zulip-server-*/scripts/setup/install --push-notifications --certbot \
--email=zeroxzed@gmail.com --hostname=340751.simplecloud.ru

Установщик ругнулся на отсутствие swap. Создал его. После этого установка прошла нормально. Если у вас нет настроенного доменного имени и для теста вы хотите использовать самоподписанный сертификат, то добавьте ключ --self-signed-cert.

В конце получил уникальную ссылку для создания организации. Создал её вместе с учётной записью администратора. Далее вы попадаете в список чатов. Мне лично с первого взгляда понравился веб интерфейс. Он будет, как обычно, неизменен и в браузере, и в клиенте, который можно установить на компьютер и смартфон. Есть даже CLI версия клиента.

Для клиентов есть как онлайн установщик, так и полностью автономный. Клиент, как обычно, написан на чём-то тяжёлом и модном, а конкретно на JavaScript. Скорее всего используется Electron, но я не уточнял. Нативный легковесный клиент есть только у Telegram, так что тут выбирать не приходится. У всех современных чатов тормозные клиенты.

Для регистрации пользователей в обязательном порядке используется подтверждение по email. Обойти это не получится. Так что для дальнейших тестов вам придётся настроить отправку по SMTP. При первом входе вам предложат прочитать инструкцию. Там всё просто.

Я немного потестировал чат, установил клиента. Лично мне он понравился больше Rocket.Chat и Mattermost. Лёгкий, лаконичный дизайн. Настроек и возможностей больше, чем у Mattermost и меньше, чем у Rocket, но мне этим Рокет и не нравится. Там такое меню управления переполненное, что заходить лишний раз не хочется. У Zulip всего немного и по делу. Логично и удобно распределено, переведено. Много полезных ботов с интеграциями.

Если бы сейчас надо было внедрять новый чат, думаю, что остановился бы на Zulip.

🌐 Сайт / Исходники

❗️Если заметка вам полезна, не забудьте 👍 и забрать в закладки.

#chat
2👍75👎5
Продолжаю тему с обзором чат-серверов, которые можно развернуть на своих мощностях. Я недавно написал свежие заметки на два наиболее популярных частично бесплатных сервера:

◽️Mattermost
◽️Zulip

Плюс, у меня была серия заметок про Rocket.Chat, который я хорошо знаю и постоянно обслуживаю в том числе в настоящее время. Не очень нравится этот чат. С удовольствием бы с него переехал, но не очевидно, где будет лучше.

Сегодня будет заметка про TrueConf Server Free, который в том числе включает в себе функциональность чат-сервера, но умеет значительно больше. Я его развернул и попробовал, поэтому могу рассказать, как его запустить в работу и какие есть нюансы.

С нюансов и начнём. Перечислю основные особенности, часть из которых могут оказаться принципиальными.

◽️TrueConf Server Free имеет ограничение в солидных 300 пользователей, которые могут использовать чат-сервер и аудио, видео звонки между собой 1 на 1. В режиме конференции ограничение в 10 пользователей.

◽️Для запуска сервера требуется регистрация и получение лицензии с ежегодным продлением. Необходим непубличный почтовый домен, то есть ящик компании. Тогда будет лицензия на 300 пользователей. Если использовать публичный почтовый домен, типа mail или yandex, то лицензия будет на 50 пользователей.

◽️Сервер очень легко запустить в работу. Есть приложение для Windows, репозитории для Linux, готовый deb пакет, Docker контейнеры. Выбор большой, всё ставится автоматом. Можно запустить локально на внутреннем доменном имени.

◽️Преднастроенные клиенты скачиваются прямо с сервера под любую систему: Windows, Linux, macOS, Android, iOS. Есть отдельное приложение для устройств в переговорных комнатах TrueConf Room Free.

◽️Пользователей можно создавать вручную или экспортировать из LDAP. Есть поддержка аутентификации через NTLM или Kerberos. Что особенно понравилось - их можно создавать полностью самостоятельно, в том числе с указанием пароля заранее.

Продукт функциональный, поэтому описывать всё не буду. У них на сайте есть табличка со сравнением редакций Free и платной. Да и в целом описание с картинками, документация нормальные. Можно составить представление. Во время работы бесплатная версия никак не выдаёт себя, что она бесплатная. Денег не просит, рекламу не показывает.

Я зарегистрировал лицензию на свой домен, поэтому получил её на 300 пользователей. Пришла примерно через 3 минуты после заполнения формы. Судя по всему, её не проверяют особо, а письмо приходит от автоматической системы.

Сервер развернул на Debian 12 из пакета. Для теста это показалось самым простым решением:

# wget https://trueconf.ru/download/server/linux/trueconf_server_debian12_amd64.deb
# apt install -yq ./trueconf_server_debian12_amd64.deb

В процессе установки нужно было указать локального пользователя, у которого будет доступ для управления сервером. В проде надо сделать отдельного пользователя, но я указал root. Сработало.

После установки служба trueconf.service не запустилась. Никаких пояснений не было. Подумал сначала, что какие-то проблемы, но решил всё же сходить в веб интерфейс. Потом понял, что надо ввести лицензию и после этого служба нормально заработает.

Зашёл в админку, добавил лицензию и всё заработало. Создал пользователей, скачал клиенты прямо с веб интерфейса сервера и попробовал. Видеозвонки не запускал, так как тестовые машины были виртуалками, а голос и демонстрация рабочего стола сразу заработали. То есть ничего особо настраивать и допиливать не надо. Всё работает сразу из коробки.

Настроек у сервера много, я все их не проверял. Продукт от российских разработчиков, язык админки русский, есть документация. Если что, разобраться нетрудно.

В целом, мне всё понравилось. Быстро запустил в работу, возможности хорошие, приятный интерфейс. Если бы не онлайн регистрация на год и не привязка к корпоративной почте, было бы совсем отлично. А так нет уверенности, что через какое-то время бесплатная лицензия не превратится в тыкву. Такие примеры с другими продуктами я уже видел.

———
ServerAdmin: 📱 Telegram | 🌐 Сайт | 📲 MAX

#chat #отечественное
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍95👎6