- Установка и настройка сервера Rocket.Chat на Ubuntu
- Установка компонентов
- Установка необходимых пакетов
- Установка MongoDB
- Установка и настройка Rocket.Chat
- Установка
- Настройка
- Установка и настройка клиента
- Создание нового пользователя
- Настройка языка
- Выбор языка в клиенте
- Настройка языка по умолчанию
- Настройка SSL (Let’s Encrypt)
- Установка NGINX и получение сертификата
- Настройка NGINX для Rocket.Chat
- Установка как snap пакета
- Установка, настройка и развёртывание Rocket.Chat на сервере Ubuntu 14.04
- Требования
- 1: Установка зависимостей
- 2: Установка Rocket.Chat
- 3: Настройка обратного прокси-сервера Nginx
- 4: Настройка сервиса Rocket.Chat
- 5: Настройка Rocket.Chat
Установка и настройка сервера Rocket.Chat на Ubuntu
В данной инструкции мы рассмотрим установку и настройку сервиса Rocket.Chat на своем собственном сервере с Ubuntu.
Установка компонентов
Выполним установку компонентов, необходимых для работы Rocket.Chat в несколько этапов.
Установка необходимых пакетов
curl -sL https://deb.nodesource.com/setup_12.x | sudo bash —
apt-get install curl build-essential graphicsmagick nodejs
- curl — служебная программа для взаимодействия с сервисами по различным протоколам с синтаксисом URL. Нам понадобиться для скачивания файлов.
- build-essential — пакет, необходимый для сборки других пакетов.
- graphicsmagick — набор программ для чтения и редактирования файлов различных графических форматов.
- nodejs — программная платформа, которая делает код javascript в язык общего назначения.
Устанавливаем inherits и node версии 12.14.0:
npm install -g inherits n && sudo n 12.14.0
Установка MongoDB
Конфигурируем репозиторий для MongoDB:
deb [ arch=amd64 ] https://repo.mongodb.org/apt/ubuntu bionic/mongodb-org/4.0 multiverse
Импортируем ключ из репозитория для проверки пакетов от подделки:
apt-key adv —keyserver hkp://keyserver.ubuntu.com:80 —recv 9DA31620334BD75D9DCB49F368818C72E52529D4
Обновляем список пакетов:
И устанавливаем mongodb-org:
apt-get install mongodb-org
Вносим изменения в конфигурационный файл:
sed -i «s/^# engine:/ engine: mmapv1/» /etc/mongod.conf
sed -i «s/^#replication:/replication:\n replSetName: rs01/» /etc/mongod.conf
Разрешаем автозапуск mongodb и стартуем его:
systemctl enable mongod
systemctl start mongod
Инициализируем базу данных:
mongo —eval «printjson(rs.initiate())»
Установка и настройка Rocket.Chat
Установка
Для установки скачиваем пакет:
curl -L https://releases.rocket.chat/latest/download -o /tmp/rocket.chat.tgz
* обязательно сохраняем архив в каталог /tmp.
Распаковываем скачанный пакет:
tar zxf /tmp/rocket.chat.tgz -C /tmp
Переходим в распакованный каталог:
Выполним установку rocket.chat:
. и переносим его в каталог /opt:
mv /tmp/bundle /opt/Rocket.Chat
Настройка
Создаем пользователя для rocketchat:
useradd -M rocketchat
usermod -L rocketchat
* где первая команда создаст пользователя rocketchat без домашнего каталога; вторая — блокирует пароль пользователя.
Задаем владельца для каталога с rocketchat:
chown -R rocketchat:rocketchat /opt/Rocket.Chat
Создаем файл для нового юнита в systemd:
[Unit]
Description=The Rocket.Chat server
After=network.target remote-fs.target nss-lookup.target nginx.target mongod.target
[Service]
ExecStart=/usr/local/bin/node /opt/Rocket.Chat/main.js
StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=rocketchat
User=rocketchat
Environment=MONGO_URL=mongodb://localhost:27017/rocketchat?replicaSet=rs01 MONGO_OPLOG_URL=mongodb://localhost:27017/local?replicaSet=rs01 ROOT_URL=http://localhost:3000/ PORT=3000
* в данном примере сервис будет запущен на порту 3000.
Применяем изменения в systemd:
Разрешаем сервис для rocketchat и запускаем сервер для чата:
systemctl enable rocketchat
systemctl start rocketchat
Ждем около 20 секунд — запуск выполняется не сразу.
Если используется брандмауэр, открываем порт:
iptables -A INPUT -p tcp —dport 3000 -j ACCEPT
. и сохраняем настройки:
apt-get install iptables-persistent
Установка и настройка клиента
Переходим на страницу загрузки Rocket.Chat и скачиваем клиента для нужной операционной системы:
* клиент может быть установлен на Windows, Mac OS, Linux. В данном примере скачиваем для Windows.
Устанавливаем и запускаем программу — откроется окно для подключения. Вводим IP-адрес и порт нашего сервера:
. система проверит подключение к серверу и предложит подключиться к серверу.
При первом входе клиент потребует зарегистрировать учетную запись администратора. Заполняем поля и регистрируемся.
Создание нового пользователя
Переходим к администрированию сервера. Кликаем по иконки меню (с тремя точками) и выбираем Administration:
Переходим в раздел Users:
Кликаем по «плюсику» для создания нового пользователя:
Заполняем поля и кликаем по Save.
Настройка языка
Выбор языка в клиенте
Открываем клиентскую программу — кликаем по значку пользователя — выбираем My Account:
Кликаем по Preferences:
Выбираем язык и сохраняем настройки:
Настройка языка по умолчанию
Переходим к администрированию сервера. Кликаем по иконки меню (с тремя точками) и выбираем Administration:
Выбираем пункт меню General:
Выбираем язык по умолчанию:
. и сохраняем настройки.
Настройка SSL (Let’s Encrypt)
Настройка подключения по шифрованному каналу выполняется с помощью веб-прокси. Рассмотрим процесс его установки и настройки, а также получение бесплатного сертификата у Let’s Encrypt.
Установка NGINX и получение сертификата
В качестве веб-сервера удобнее всего использовать NGINX. Установим его командой:
apt-get install nginx
Сразу разрешим автозапуск nginx:
systemctl enable nginx
Если мы не планируем использовать сертификат от Let’s Encrypt, то переходим к настройке nginx для Rocket.Chat.
Игаче, создадим конфигурационный файл с настройками для домена:
server <
listen 80;
server_name rocket.dmosk.ru;
root /usr/share/nginx/html;
>
* в данном примере мы создали виртуальный домен для rocket.dmosk.ru, который слушает запросы только по http. Это нужно, чтобы получить сертификат.
systemctl restart nginx
Если мы используем брандмауэр, создаем правила:
iptables -A INPUT -p tcp —dport 80 -j ACCEPT
iptables -A INPUT -p tcp —dport 443 -j ACCEPT
apt-get install certbot
Получаем сертификат командой:
certbot certonly —webroot —agree-tos —email postmaster@dmosk.ru —webroot-path /usr/share/nginx/html/ -d rocket.dmosk.ru
* данной командой мы создаем запрос на получение сертификата для узла rocket.dmosk.ru, который вы должны заменить своим. Подробнее, процесс описан в инструкции Получение бесплатного SSL сертификата Let’s Encrypt.
Если все сделано правильно, мы увидим:
IMPORTANT NOTES:
— Congratulations! Your certificate and chain have been saved at:
.
Создаем задание для автоматического обновления сертификата:
И добавляем строку:
0 0 * * 1,4 /usr/bin/certbot renew && systemctl reload nginx
Настройка NGINX для Rocket.Chat
Открываем наш конфигурационный файл для nginx:
server <
listen 443;
server_name rocket.dmosk.ru;
ssl on;
ssl_certificate /etc/letsencrypt/live/rocket.dmosk.ru/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/rocket.dmosk.ru/privkey.pem;
ssl_protocols TLSv1.2;
location / <
proxy_pass http://127.0.0.1:3000/;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection «upgrade»;
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forward-Proto http;
proxy_set_header X-Nginx-Proxy true;
* в данном примере мы добавляем настройку для прослушивания 443 порта; в качестве сертификата мы используем /etc/letsencrypt/live/rocket.dmosk.ru/fullchain.pem, которые вы должны заменить своими. Все запросы перенаправляются на локальный сервер порт 3000 (Rocket.Chat).
systemctl restart nginx
Пробуем подключиться к серверу по адресу https: .
Установка как snap пакета
Rocket.Chat поддерживает установку через пакеты snap. Ставим сам snap:
apt-get install snapd
snap install rocketchat-server
Сервер установлен и запрещен, статус можно посмотреть командой:
systemctl status snap.rocketchat-server.rocketchat-server
В каталог с установленным сервером можно перейти командой:
Источник
Установка, настройка и развёртывание Rocket.Chat на сервере Ubuntu 14.04
Rocket.Chat – это приложение для обмена сообщениями, встроенное в Meteor. Оно поддерживает видеоконференции, обмен файлами, голосовые сообщения, имеет полнофункциональный API. Rocket.Chat отлично подходит для тех, кто предпочитает полностью контролировать свои контакты.
Данное руководство поможет установить и настроить Rocket.Chat на свежем сервере Ubuntu и настроить обратный прокси-сервер Nginx (чтобы повысить безопасность и упростить доступ к Rocket.Chat).
Требования
- Ubuntu 14.04 (минимум 1 GB RAM).
- Не-root пользователь с доступом к sudo (инструкции по созданию такого пользователя – в руководстве «Начальная настройка сервера Ubuntu 14.04»).
- Зарегистрированный домен, привязанный к серверу.
- SSL-сертификат. Вы можете сгенерировать самоподписанный сертификат, получить бесплатный сертификат Let’s Encrypt или купить сертификат у другого провайдера.
1: Установка зависимостей
Сначала нужно установить зависимости Rocket.Chat, среди которых MongoDB и NodeJS.
Чтобы установить MongoDB, нужно сначала добавить сервер ключей:
sudo apt-key adv —keyserver hkp://keyserver.ubuntu.com:80 —recv 7F0CEB10
Затеем нужно задать репозиторий:
echo «deb http://repo.mongodb.org/apt/ubuntu trusty/mongodb-org/3.0 multiverse» | sudo tee /etc/apt/sources.list.d/mongodb-org-3.0.list
Обновите список пакетов:
sudo apt-get update
Теперь можно установить пакеты npm, mongodb-org, curl и graphicsmagick; все они являются зависимостями Rocket.Chat.
sudo apt-get install -y npm mongodb-org curl graphicsmagick
Примечание: Аргумент –y автоматически подтверждает установку.
Теперь установите пакет при помощи NPM:
sudo npm install -g n
Измените версию NodeJS:
Все зависимости установлены. Теперь можно установить Rocket.Chat.
2: Установка Rocket.Chat
Загрузите последнюю доступную версию Rocket.Chat с помощью curl:
curl -L https://rocket.chat/releases/latest/download -o rocket.chat.tgz
tar zxvf rocket.chat.tgz
Эта команда извлечет архив в каталог bundle. Переместите содержимое этого каталога в каталог с более описательным названием:
mv bundle Rocket.Chat
Перейдите в каталог, в который нужно становить Rocket.Chat при помощи NPM:
Вернитесь в родительский каталог Rocket.Chat:
Установите переменные среды, чтобы приложение Rocket.Chat могло отслеживать порты, URL-адреса и т.п.
В переменной ROOT_URL нужно указать свой URL-адрес:
Затем нужно задать URL-адрес MongoDB в переменной MONGO_URL:
Задайте порт 3000:
Теперь запустите Rocket.Chat:
Остановите Rocket.Chat при помощи клавиш CTRL-C.
3: Настройка обратного прокси-сервера Nginx
Теперь нужно настроить Nginx для проксирования трафика, благодаря чему приложение Rocket.Chat сможет работать быстрее, а SSL-сертификат начнёт шифровать данные.
sudo apt-get install -y nginx
Переместите закрытый ключ сертификата в /etc/nginx/certificate.key:
sudo cp /path/to/your/key /etc/nginx/certificate.key
К примеру, если вы используете сертификат Let’s Encrypt:
sudo cp /etc/letsencrypt/live/your_domain_name/privkey.pem /etc/nginx/certificate.key
Измените права на ключ, чтобы заблокировать доступ несанкционированных пользователей.
sudo chmod 400 /etc/nginx/certificate.key
Теперь скопируйте сертификат в /etc/nginx/certificate.crt:
sudo cp /path/to/your/cert /etc/nginx/certificate.crt
Для сертификата Let’s Encrypt команда будет выглядеть так:
sudo cp /etc/letsencrypt/live/your_domain_name/cert.pem /etc/nginx/certificate.crt
Прежде чем создать совершенно новую конфигурацию для Rocket.Chat, удалите настройки по умолчанию:
sudo rm /etc/nginx/sites-enabled/default
Если в дальнейшем вам понадобится этот файл, его можно найти в каталоге /etc/nginx/sites-available/default.
Создайте /etc/nginx/sites-enabled/default в nano:
sudo nano /etc/nginx/sites-enabled/default
Сначала добавьте блок upstream:
# Upstreams
upstream backend <
server 127.0.0.1:3000;
>
После этого создайте блок server. Первая его часть указывает имя хоста и порт, который прослушивает Nginx (в данном случае :443).
server <
listen 443;
server_name example.com;
Примечание: Замените example.com своим доменом.
После этого нужно указать, где Nginx будет хранить логи Rocket.Chat, и подключить SSL-сертификат:
error_log /var/log/nginx/rocketchat.access.log;
ssl on;
ssl_certificate /etc/nginx/certificate.crt;
ssl_certificate_key /etc/nginx/certificate.key;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2; # don’t use SSLv3 ref: POODLE
После этого нужно добавить блок location.
location / <
proxy_pass http://example.com:3000/;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection «upgrade»;
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forward-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forward-Proto http;
proxy_set_header X-Nginx-Proxy true;
proxy_redirect off;
>
>
В результате /etc/nginx/sites-enabled/default выглядит так:
server <
listen 443;
server_name example.com;
error_log /var/log/nginx/rocketchat.access.log;
ssl on;
ssl_certificate /etc/nginx/certificate.crt;
ssl_certificate_key /etc/nginx/certificate.key;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2; # don’t use SSLv3 ref: POODLE
location / <
proxy_pass http://example.com:3000/;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection «upgrade»;
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forward-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forward-Proto http;
proxy_set_header X-Nginx-Proxy true;
proxy_redirect off;
>
>
Сохраните и закройте файл.
sudo service nginx restart
Чтобы убедиться, что Nginx работает, проверьте состояние сервера:
sudo service nginx status
Команда должна вернуть:
* nginx is running
Если же команда вернула ошибку:
* nginx is not running
проверьте логи /var/log/nginx/rocketchat.access.log и /var/log/nginx/access.log или лог ошибок /var/log/nginx/error.log. Также можно проверить конфигурационный файл на наличие ошибок:
Перейдите в каталог Rocket.Chat:
Снова запустите приложение Rocket.Chat:
Теперь приложение Rocket.Chat доступно по ссылке:
4: Настройка сервиса Rocket.Chat
Теперь нужно настроить автозапуск модуля Rocket.Chat по имени forever-service. Модуль forever-service автоматически генерирует init-скрипты для приложений типа Rocket.Chat.
Сначала установите forever (зависимость forever-service):
sudo npm install -g forever
Теперь можно установить forever-service:
sudo npm install -g forever-service
Вернитесь в каталог Rocket.Chat:
Создайте сервис при помощи forever-service:
sudo forever-service install -s main.js -e «ROOT_URL=https://example.com/ MONGO_URL=mongodb://localhost:27017/rocketchat PORT=3000» rocketchat
- Флаг –s main.js указывает, что скрипт называется main.js, а не app.js (стандартное имя).
- Флаг –e, за которым идёт “ROOT_URL=https://example.com/ MONGO_URL=mongodb://localhost:27017/rocketchat PORT=3000”, передаёт переменные окружения модулю forever-service.
- rocketchat – название сервиса.
Примечание: Чтобы получить справку по синтаксису forever-service, запустите команду:
sudo start rocketchat
Эта команда инициализирует сервис rocketchat, созданный модулем forever-service.
Команды для управления Rocket.Chat:
- Запустить:
sudo start rocketchat
- Остановить:
sudo stop rocketchat
- Проверить состояние:
sudo status rocketchat
- Перезапустить:
sudo restart rocketchat
Если настройки выполнены правильно, Rocket.Chat запустится вместе с сервером.
Примечание: Проверьте лог-файл /var/log/rocketchat.log, чтобы узнать подробности запуска приложения.
5: Настройка Rocket.Chat
Теперь попробуйте добавить первого пользователя – администратора Rocket.Chat.
Откройте Rocket.Chat в браузере. На экране появится форма входа.
Выберите Register a new account и введите данные о новом пользователе. Нажмите Submit, а затем выберите имя пользователя. Нажмите Use this username. На экране появится домашняя страница приложения.
По умолчанию приложение создаёт канал #general.
Rocket.Chat предлагает множество удобных вариантов форматирования (курсив, полужирный, зачеркнутый и т.п.). Ниже вы найдёте советы по работе с Rocket.Chat:
- Чтобы выделить текст полужирным, поместите его между звёздочками: *this is bold!*
- Чтобы написать текст курсивом, используйте символы подчёркивания:
- Чтобы зачеркнуть текст, используйте тильду:
- Чтобы использовать блоки встроенного кода, введите обратные кавычки:
- Чтобы добавить цитату, используйте знак “больше”:
Теперь рассмотрим интерфейс приложения. Попробуйте создать новый канал. Для этого нажмите кнопку с плюсом возле Channels.
Выберите название канала. Нажмите Save. Приложение откроет новый канал.
Чтобы получить доступ к интерфейсу администратора, нажмите кнопку со стрелочкой рядом с именем пользователя. Это переведёт вас в новое меню. Выберите Administration. На экране появится меню администратора.
Источник