- ИТ База знаний
- Полезно
- Навигация
- Серверные решения
- Телефония
- Корпоративные сети
- Установка корпоративного чата Rocket.Chat на Linux
- Шаг 1. Установка Snap в Linux
- Шаг 2: Установка Rocket.Chat в Linux
- Шаг 3: Настройка обратного прокси для Rocket.Chat
- Обратный прокси Nginx для Rocket.Chat
- Обратный прокси Apache для Rocket.Chat
- Шаг 4: Установка клиентов Rocket.Chat
- Ручная установка Rocket.Chat
- Установка Node.js
- Установка MongoDB
- Создание нового системного пользователя
- Установка Rocket.Chat
- Создание модуль Systemd
- Итоги
- Клиент-сервер под linux на c++ общение клиентов «все со всеми» с использованием потоков
- Муки выбора корпоративного мессенджера: бесплатно, свой сервер, не iChat
- Начало
- Так почему бы просто не использовать Skype/Whatsapp/Telegram/Viber/ICQ?
- Требования к чату от организации
- Требования к чату от меня
- По стопам айчата
- Эти ваши хипстерские слэки
- Но хотелось бы нашего
- Вкратце плюшки и минушки рокет чата
- Какие прикольные фишки я нашел для себя в новых чатах
- В заключение
ИТ База знаний
Курс по Asterisk
Полезно
— Узнать IP — адрес компьютера в интернете
— Онлайн генератор устойчивых паролей
— Онлайн калькулятор подсетей
— Калькулятор инсталляции IP — АТС Asterisk
— Руководство администратора FreePBX на русском языке
— Руководство администратора Cisco UCM/CME на русском языке
— Руководство администратора по Linux/Unix
Навигация
Серверные решения
Телефония
FreePBX и Asterisk
Настройка программных телефонов
Корпоративные сети
Протоколы и стандарты
Установка корпоративного чата Rocket.Chat на Linux
10 минут чтения
Rocket.Chat — это бесплатный масштабируемый open source корпоративный чат, разработанный с помощью Meteor. Rocket.Chat можно считать аналогом Slack, который можно развернуть на своем сервере, и подключаться к нему с клиентов на Linux, Windows, macOS, Android и iOS.
Онлайн курс по Linux
Мы собрали концентрат самых востребованных знаний, которые позволят тебе начать карьеру администратора Linux, расширить текущие знания и сделать уверенный шаг к DevOps
- Чат в реальном времени
- Аудиоконференции
- Видеоконференции
- Каналы
- Гостевой вход
- Трансляция экрана
- Передача файлов
- Полнофункциональный API
Для обеспечения безопасности используется:
- Групповая синхронизация LDAP
- Двухфакторная аутентификация 2FA
- Сквозное шифрование
- Единый вход SSO
- Несколько поставщиков Oauth аутентификации
Рассказываем как установить и настроить сервер и клиент Rocket.Chat в Linux.
Шаг 1. Установка Snap в Linux
Для простоты мы будем использовать систему управления пакетами Snaps. Первым делом надо установить пакет snapd c помощью диспетчера пакетов.
Далее необходимо включить модуль systemd , который управляет основным сокетом мгновенной связи. Эта команда запустит сокет и позволит ему запускаться при загрузке системы.
Шаг 2: Установка Rocket.Chat в Linux
Для установки rocketchat-server выполните:
Когда установка через snap будет завершена, rocket.chat сервер начнет работать и прослушивать порт 3000 . Далее откройте веб-браузер и введите следующий адрес, чтобы настроить rocket.chat через GUI.
После загрузки мастера настройки укажите следующие параметры: полное имя администратора, имя пользователя, адрес электронной почты организации и пароль.
Далее надо указать информацию об организации: тип организации, название, отрасль, размер, страна и сайт.
Затем нужно указать информацию о сервере — имя сайта, язык, тип сервера, и включение или отключение двухфакторной аутентификации 2FA.
На следующей странице нужно зарегистрировать сервер. Здесь есть две опции. Первая — использовать предварительно настроенные шлюзы и прокси, предоставленные Rocket.Chat Вторая — сохранить автономность и создать учетные записи у поставщиков услуг, обновить предварительно настроенные параметры, а также перекомпилировать мобильные приложения с вашими частными сертификатами.
Настройка завершена, и ваше рабочее пространство готово, теперь надо нажать Go to your workspace (Перейти в рабочее пространство)
Вот так оно выглядит.
Шаг 3: Настройка обратного прокси для Rocket.Chat
Обратный прокси-сервер, например nginx или Apache, позволяет настроить приложение Rocket.Chat для доступа через домен или поддомен. Rocket.Chat является сервером приложений среднего уровня, который не поддерживает SSL/TLS. Обратный прокси-сервер позволит настраивать сертификаты SSL/TLS для включения HTTPS.
Обратный прокси Nginx для Rocket.Chat
Сначала установите Nginx.
Далее запустите службу Nginx, включите ее автоматический запуск при загрузке системы и проверьте ее статус
Затем создайте block файл виртуального сервера для приложения Rocket.Chat, например, в каталоге /etc/nginx/conf.d/ .
Далее вставьте конфигурацию в этот файл, заменив домен на свой и сохраните.
Наконец проверьте синтаксис и перезапустите службу Nginx.
Обратный прокси Apache для Rocket.Chat
Установите пакет Apache2
Далее запустите и включите службу apache и проверьте, запущена ли она и работает.
Затем создайте файл виртуального хоста для приложения Rocket.Chat, например, в каталоге /etc/apache2/sites-available/ или /etc/httpd/conf.d/ .
Далее вставьте конфигурацию в этот файл, заменив домен на свой и сохраните.
В Ubuntu и Debian включите необходимые модули apache2 и перезапустите службу.
В CentOS/RHEL и Fedora перезапустите службу apache .
Теперь откройте браузер и введите ваш настроенный адрес и приложение Rocket.Chat станет доступно через ваш домен, настроенный на прокси-сервере.
Шаг 4: Установка клиентов Rocket.Chat
Клиентские приложения можно скачать с официального сайта Rocket.Chat. Чтобы установить десктопное приложение в Linux, вы загрузите пакет deb (x64) или rpm (x64) в зависимости от вашего дистрибутива Linux.
Затем установите пакет с помощью диспетчера пакетов dpkg или rpm
Ручная установка Rocket.Chat
Если вы не хотите устанавливать Rocket.Chat через Snaps, вы можете сделать это вручную.
Установка Node.js
Сначала обновите список системных пакетов:
Установите Node.js, npm и все другие зависимости, необходимые для сборки пакетов npm из исходного кода:
Мы будем использовать n , пакет npm, который позволяет интерактивно управлять версиями Node.js. Выполните команды ниже, чтобы установить n и Node.js:
Установка MongoDB
MongoDB — это документно-ориентированная база данных NoSQL, которая используется Rocket.Chat для хранения данных.
Импортируйте открытый ключ MongoDB и включите официальный репозиторий MongoDB:
После включения репозитория apt обновите список пакетов и установите MongoDB, набрав:
Затем включите и запустите службу MongoDB:
Создание нового системного пользователя
Теперь необходимо создать нового пользователя и группу с именем rocket , которые будут запускать инстанс Rocket.Chat.
Добавьте пользователя www-data в новую группу пользователей и измените права доступа к каталогу /opt/rocket , чтобы Nginx мог получить доступ к установке Rocket.Chat:
Установка Rocket.Chat
Переключитесь на пользователя rocket
Загрузите последнюю стабильную версию Rocket.Chat с помощью curl :
После завершения загрузки извлеките архив и переименуйте каталог в Rocket.Chat:
Перейдите в каталог Rocket.Chat/programs/server и установите все необходимые пакеты npm:
Чтобы протестировать нашу установку перед созданием модуля systemd и настройкой обратного прокси с Nginx или Apache, мы установим необходимые переменные среды и запустим сервер Rocket.Chat
Вернитесь в каталог Rocket.Chat и запустите сервер Rocket.Chat, введя следующие команды:
Если ошибок нет, вы должны увидеть следующий вывод:
Остановите сервер Rocket.Chat с помощью Ctrl+C и вернитесь к своему пользователю sudo, набрав exit .
Создание модуль Systemd
Чтобы запустить Rocket.Chat как службу, нужно создать файл модуля rocketchat.service в каталоге /etc/systemd/system/ .
Вставьте следующий код:
Сообщите systemd, что мы создали новый файл модуля, и запустите службу Rocket.Chat, выполнив:
Проверьте статус сервиса:
Вывод должен быть таким:
Наконец, включите автоматический запуск службы Rocket.Chat во время загрузки:
Готово, мы установили Rocket.Chat вручную, теперь можно переходить к настройке обратного прокси и инициализации системы, которые были описаны начиная с шага 3.
Итоги
В этом руководстве вы узнали, как установить Rocket.Chat в Linux и как настроить Nginx и Apache в качестве обратного прокси.
Чтобы узнать больше о Rocket.Chat посетите страницу документации.
Мини — курс по виртуализации
Знакомство с VMware vSphere 7 и технологией виртуализации в авторском мини — курсе от Михаила Якобсена
Источник
Клиент-сервер под linux на c++ общение клиентов «все со всеми» с использованием потоков
Начну с того, что была предложена работа на должность программиста с\с++. Задание это название темы.
Полез в интернет, кругом все напичкано чатами и общением по типу клиент-сервер, но увы кода с подобным заданием я так и не нашел. Был примитив типа ЭХО клиент-сервера, который я и решил взять за основу:
Это у нас клиент:
это код сервера:
После всего этого в клиенте нужно отправить сообщение серверу используя функции send или write а на стороне сервера принять сообщение и переотправить его обратно клиенту используя функции read и send.
Вообще есть разные функции отправки и приема, к примеру send и recv вместе с сообщением шлют еще и флаг подтверждения, а функции read и write не требуют подтверждения, то есть сообщение может потерять байты при отправке и это не будет зафиксировано.
Так как сокеты это дуплекс и создавая связь между клиентом и сервером мы не можем писать туда сообщения из других подключенных сокетов, необходимо создать массив со всеми активными сокетами подключенными к серверу. И еще одно замечание очень важное:
Для общения между несколькими сокетами необходимо использовать функцию select, которая выбирает сокет из списка и отсылает ему сообщение, и так далее, пока не закончатся все записанные сокеты
После этого в массив сокетов будет записано правильное значение подключаемого сокета а далее остается лишь перебирать их при рассылке сообщений:
Запишем все это в функцию и создадим отдельный поток:
Что касаемо клиента, то необходимо создать два разных потока для чтения и записи в сокет:
Теперь все работает. Спасибо за снимание. Надеюсь что это пригодится тем, кто так же как и я пытался написать клиент-сервер, но не смог найти нужную информацию в сети.
Источник
Муки выбора корпоративного мессенджера: бесплатно, свой сервер, не iChat
Всем привет, меня зовут Дмитрий, я работаю разработчиком в небольшой софтверной компании в России уже 5 лет. Я бы хотел рассказать про то, как «исторически сложилось» с чатом в нашей компании, поделиться своими муками выбора достойного наследника и найденными решениями.
Начало
Когда я в первый день пришёл на работу, мне показали моё рабочее место, дали компьютер, зарегистрировали в Жире и Гитлабе, и показали главное средство общения сотрудников между собой — iChat. Можно подумать, это что-то про Apple, но всё было немного ужасней.
На моё охудивлённое лицо коллеги пояснили, что так исторически сложилось (какая-нить ссылка), и в общем-то все понимают, что это немного странно, но менять никто ничего не планирует. Ведь у айЧата (полностью он называется Intranet Chat — Википедия) столько плюсов:
- стоит на нашем сервере и не шуршит
- всё бесплатно (Автор программы выпустил последнюю версию в 2002 году, бесплатно)
- «обладает эстетичным и несложным интерфейсом» (спасибо за цитату, Википедия)
- есть все необходимые функции — личные чаты и «доска объявлений»
Ну наверное всё ок, просто я чего-то не понимаю, подумал я. Но после нескольких недель пользования ламповым отечественным продуктом стали явно заметны его недостатки:
- нет истории — перезагрузи комп, и если тебе вчера твой коллега Вася отправил чей-то е-мэйл, отправляйся читать логи в текстовом файле
- нельзя передавать файлы — добро пожаловать корпоративный ftp-обменник, общие папки на диске, или личные облачка (я лично при надобности гоняю свой аккаунт OneDrive)
- невозможно нормально сидеть в чате из внешки (нормально написать коллегам выйдет только подключившись по VPN или RDP)
- нельзя написать тому, кто сейчас офлайн — если коллега сегодня работает из дома, или ушел пораньше, или сейчас нерабочее время — запомни своё послание до лучших времён
- вдогоночку, клиент есть только под Windows времен 98-й версии — никаких вам айфонов и онлайна 24 часа в сутки
- естественно, нет нормальной подсветки чего-либо: кода, ссылок (ладно, подсветка есть, но нажимать на них нельзя), гипертекста
Ситуация: имеем «чат с ограниченными возможностями». Столько всяких «нельзя», что голова кругом. Почти все сотрудники параллельно общаются с нужными им коллегами через какие-то Скайпы, Ватсапы и Телеграмы: там и файлики можно поскидывать, и клиент для андроид есть, и в командировке можно невероятным образом находиться онлайн. Если заболеешь, не обязательно через трёх человек передавать коллеге из другого отдела, что тебя завтра не будет, и найти ту ссылку на хабр необходимую инфу, которую тебе кидали неделю назад, можно без молитв Ктулху.
Так почему бы просто не использовать Skype/Whatsapp/Telegram/Viber/ICQ?
Наверное, вы уже можете сказать, в чём тут проблема. Во-первых, все сотрудники кучкуются вокруг выбранных ими мессенджеров. Одному нужно писать туда, другому сюда, для одного из коллег я даже держал постоянно запущенной аську, он ничем другим не пользовался (даже айЧатом). И что су характерно, никто не хочет перелазить на другой чат, а те, кто не пользуются ими в принципе (да, таких много среди программистов, в основном это более старшие сотрудники, или параноики, или и то и другое), не хотят и начинать.
А во-вторых, у меня в телеграме есть одногруппники, знакомые, да весь мой контакт-лист, и невозможно нормально отделить коллег от всех остальных. И узнать, что коллега есть в телеграме, я могу только спросив его самого. Иногда я вообще не знаю, что у меня есть новый коллега, пока не увижу кого-то незнакомого за компом в другом офисе. Короче хаос.
Тогда я спросил нашего начальника отдела, нельзя ли взять программу поновей и всё-таки от Apple более технически продвинутую, чтобы все не страдали фигнёй и могли спокойно чатиться в одном месте. «Нет такой программы», — последовал ответ. Как нет, подумал я, и сказал, что точно есть, не может не быть. «Тогда найди, а там посмотрим». Ок, сейчас же цифровой век, всё гуглится, несложно же найти что-то вменяемое, подумал я. Я немного ошибался.
Требования к чату от организации
Требования к чату от меня
По стопам айчата
Сначала я пытался найти что-то похожее на айчат, маленькое, локальное, бесплатное, под винду, без премудростей. Российские предложения в этом сегменте рынка представляют собой зачастую что-то невероятное: бедный набор функциональности, замерший где-то на середине 2000-х, сочетается с топорным юзер-интерфейсом а-ля «мой первый проект на Delphi» и конской ценой, которой могут только мечтать маркетологи из JetBrains и Adobe. Часто в комплекте идёт полное или частичное отсутствие поддержки.
Один из лучших вариантов, который мне удалось найти — чат «Commfort». Название меня заинтриговало, а на деле всё оказалось не так уж и комфортно.
Стоимость комфорта для моей организации из примерно 30-40 человек: 16 тысяч рублей.
Продукт имеет привлекательные функции, но отпугивает своим интерфейсом и не внушает уверенности в его качестве. Да и по цене мы с ним не пролазим.
К сожалению, после нескольких часов гугления найти вариант, соответствующий моим критериям я не смог. Если он всё-таки существует, буду благодарен за ссылку.
Эти ваши хипстерские слэки
Несколько раз за последнее время я то в одном, то в другом месте слышал про слэк (Slack на языках Романской группы). Что это какое-то новое, доселе невиданное нечто, то ли чат на стероидах, то ли форум со странным способом показа тем. Американцы там у себя от слэка балдеют, и каждый уважающий себя стартап использует его (на своих макбуках, попивая смузи и кофе из старбакса). Один мой коллега недавно ушел в стартап, который создает конкурент слэка.
Ну слэк значит слэк, не может же быть столько хайпа из ничего. Беглый осмотр пациента показал наличие новых примочек, каких-то каналов с хэштегами и непривычный интерфейс. И желание быть на острие технологий было конечно сильно, но у интерфейса нашего заморского друга совсем нет переводов на другие языки, да и на свой сервер сможет его себе поставить разве что эппл (который, как известно, может всё, но не всё хочет). Что ж, немного фэйл.
О, а ещё есть хипчат. Это как слэк, только хипчат. И тоже нет перевода, и тоже не поставить к себе. Зато для хипстеров. И для роботов.
(голосом робота-хипстера) Что-то новое — это же так здорово!
Но хотелось бы нашего
Уже успев порядком расстроиться от безысходности, через пару недель я почти случайно наткнулся на Zulip — OpenSource-конкурент слэка (а может и не конкурент, кто их там разберет), очень похожий на то, что мне нужно. Он бесплатен, и установить его на свой сервер может любой желающий, даже если этот желающий — компания из 50 человек.
Хотя очень быстро стало понятно, что этот вариант не подходит по причине усложненности (есть, секции, в секциях есть темы, и только в темах живут чаты, в которые можно что-то написать) и, как бы это сказать без англицизмов… ладно, куда уж без них, User Experience в нём в общем печален. И да, только на английском языке.
Примерно так выглядит пациент с непонятным именем
Но ведь это уже ближе, и действительно может быть есть что-то подходящее в мире OpenSource! Ещё немного погонял строку поиска, и нашел Mattermost и Rocket chat. Последний в итоге и получил приз зрительских симпатий имени меня, и вошел в наш дом новым членом экосистемы ПО. А всё почему, потому что переводы, переводы есть у него!
Вот как-то так это всё выглядит
Вкратце плюшки и минушки рокет чата
Сначала конечно плюсы:
- Есть перевод на русский язык. Да он не полный, но почти, а в случае чего можно что-то доперевести нужные вещи на свой язык. Переводы хостятся на портале lingohub.com, специально для этого сделанном. Автор этого поста к своей чести (и скромности) перевел 60% из того, что ещё переведено не было, и не собирается останавливаться.
- Можно поставить на свой сервер под Linux одной строчкой (реально, одной, и он работает).
- Клиенты есть подо все платформы, кроме Windows Phone 🙁 бедная, бедная WP! (Я сам бывший владелец Lumia)
- Есть веб-версия, можно по-быстрому зайти с любого девайса и, допустим, перекинуть файл логов с компьютера клиента, отправить стектрейс или просто написать коллеге
- Отдельно можно настроить все уведомления: из каких чатов тебе показывать уведомления, а из каких нет; отдельные настройки уведомлений для мобильных и десктопных устройств
- Есть файловый сервер, можно кидать файлы
- Бесплатен
- Активно разрабатывается, пилятся новые фичи, баги исправляются
Теперь минусы:
- Баги. Куда же без них родимых. Они есть. Местами при нажатии куда-то не происходит ничего, местами наоборот происходит что-то, чего совсем не ждешь. Но надо сказать, что их не много, и в целом ситуация примерно как у Ксяоми: дешево и с багами, но в целом пойдёт.
- Десктопный клиент на электроне, что само по себе может и не минус, но всё-таки не совсем классно.
- Мобильный клиент — это практически копия десктопного, подключенная через WebView (наверное). На смартфоне работает не шустро и не отзывчиво.
- В интерфейсе нигде нет списка всех пользователей. Вот не знаю как вы, а я в корпоративном чате хочу видеть список всех своих коллег. Потому что имена части коллег я не знаю, а о существовании некоторых и не догадываюсь.
- Ммм, что там ещё. Да, нет статуса «В отпуске». Вот ушёл я в отпуск, поставил статус «в отпуске» и всё в шоколаде.
Кому интересно, рокет чат есть на бесплатном демо-серваке с полным доступом вот тут.
Какие прикольные фишки я нашел для себя в новых чатах
Аватары — позволяют новичкам или просто интровертам лучше ориентироваться, кто есть кто.
Интеграции — позволяют кидать в чат гифки показывать уведомления о событиях от GitLab-сервера, о новых статьях от корпоративного блога, и ещё черт знает что от черт знает чего.
В заключение
В общем, на текущий момент мы обкатываем рокет чат у нас в нескольких отделах, к нему подключились все, кто желал.
Теперь я ломаю голову о другом — как же сделать так, чтобы все сотрудники забыли про старый добрый айчат и пользовались новым, хипсторским Рокет Чатом. А ещё временами подумываю, а правильный ли всё-таки выбор я сделал.
P. S. Если вы прочитали эту статью, и у вас в голове возникла мысль dafuq did I just read «зачем же автор написал эту замечательную статью», сразу отвечу:
Во-первых, мой опыт может кому-то пригодиться. Если б я наткнулся на подобную статью в начале своих поисков, это сэкономило бы мне много усилий. Надеюсь, это поможет тем, кто будет на моем месте.
А во-вторых, я до сих пор в ах… Ах каком недоумении вокруг всего, что происходит сейчас на рынке мессенджеров, и четкого понимания, что же делать, чтобы все сотрудники были счастливы, у меня нет. Поэтому я надеюсь, что в комментариях мне подскажут те решения, которые я пропустил, или хотя бы поделятся своим опытом в этом вопросе.
В третьих, автору просто хотелось пожаловаться на то, какой плохой этот мир, на недостижимость идеалов и тщетность бытия, но Хабр Гиктаймс — не жалобная книга, так что про это тсссссссс…
Источник