В данной инструкции описывается установка и настройка сервера Rocket.Chat на системе Ubuntu. Инструкция подходит для чистого сервера.
Необходимые компоненты
- Установка пакетов
- Установка Node.js
- Установка MongoDB
Установка необходимых пакетов
apt update apt install curl build-essential graphicsmagick
- curl — для загрузки файлов.
- build-essential — для сборки npm-зависимостей.
- graphicsmagick — для обработки изображений в чате.
Установка Node.js
Установим Node.js версии 20 (требуется для Rocket.Chat 7.2+).
export NODE_VER=20
curl -sL https://deb.nodesource.com/setup_${NODE_VER}.x | sudo bash -
apt install nodejs
npm install -g inherits n
Установка MongoDB
Установим MongoDB версии 7.0. Проверено: репозиторий https://repo.mongodb.org/apt/ubuntu доступен и содержит актуальные пакеты.
MONGO_VER=7.0
echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu focal/mongodb-org/${MONGO_VER} multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org.list
curl -fsSL https://pgp.mongodb.com/server-${MONGO_VER}.asc | sudo gpg --dearmor -o /etc/apt/trusted.gpg.d/mongodb-org.gpg
apt update
apt install mongodb-org
Если возникает ошибка с libssl1.1, установите вручную:
curl -sO http://archive.ubuntu.com/ubuntu/pool/main/o/openssl/libssl1.1_1.1.1f-1ubuntu2.23_amd64.deb sudo apt install ./libssl1.1_1.1.1f-1ubuntu*_amd64.deb
Настроим MongoDB:
sudo sed -i "s/^# engine:/ engine: wiredTiger/" /etc/mongod.conf sudo sed -i "s/^#replication:/replication:\n replSetName: rs01/" /etc/mongod.conf
Запустим и включим автозагрузку:
sudo systemctl enable mongod sudo systemctl start mongod
Инициализируем репликасет:
mongosh --eval "printjson(rs.initiate())"
Убедитесь, что в выводе ok: 1.
Установка Rocket.Chat
Скачивание и распаковка
curl -L https://releases.rocket.chat/latest/download -o /tmp/rocket.chat.tgz tar -zxf /tmp/rocket.chat.tgz -C /tmp cd /tmp/bundle/programs/server npm install sudo mv /tmp/bundle /opt/Rocket.Chat
Настройка пользователя и прав
sudo useradd -M rocketchat sudo usermod -L rocketchat sudo chown -R rocketchat:rocketchat /opt/Rocket.Chat
Создание systemd-сервиса
Создайте файл: /lib/systemd/system/rocketchat.service
[Unit] Description=The Rocket.Chat server After=network.target mongod.target [Service] 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 ExecStart=/usr/bin/node /opt/Rocket.Chat/main.js User=rocketchat WorkingDirectory=/opt/Rocket.Chat StandardOutput=syslog StandardError=syslog SyslogIdentifier=rocketchat [Install] WantedBy=multi-user.target
Активируем сервис:
sudo systemctl daemon-reload sudo systemctl enable rocketchat sudo systemctl start rocketchat
Дождитесь запуска (до 30 секунд).
Открытие порта
Если используется iptables:
sudo iptables -I INPUT -p tcp --dport 3000 -j ACCEPT sudo apt install iptables-persistent -y sudo netfilter-persistent save
Подключение через клиент
- Скачайте клиент с официального сайта.
- Установите и запустите.
- Введите адрес сервера:
http://IP_сервера:3000. - При первом подключении создайте учётную запись администратора.
Создание нового пользователя
- Войдите под администратором.
- Откройте меню (три точки) → Administration.
- Перейдите в Users.
- Нажмите + и заполните данные нового пользователя.
- Нажмите Save.
Настройка языка
Для пользователя
- Кликните по аватару → My Account.
- Перейдите в Preferences.
- Выберите нужный язык и сохраните.
Язык по умолчанию на сервере
- Войдите как администратор.
- Откройте Administration → General.
- Найдите раздел Default Language и выберите нужный.
- Сохраните изменения.
Настройка SSL через Let's Encrypt
Установка Nginx
sudo apt install nginx
Конфигурация для получения сертификата
Файл: /etc/nginx/sites-enabled/rocket.yourdomain.com.conf
server {
listen 80;
server_name rocket.yourdomain.com;
root /usr/share/nginx/html;
}
Замените rocket.yourdomain.com на ваш домен.
sudo nginx -t && sudo nginx -s reload
Открытие портов
sudo iptables -I INPUT -p tcp --dport 80 -j ACCEPT sudo iptables -I INPUT -p tcp --dport 443 -j ACCEPT sudo netfilter-persistent save
Установка и получение сертификата
sudo apt install certbot sudo certbot certonly --webroot --agree-tos --email admin@yourdomain.com --webroot-path /usr/share/nginx/html/ -d rocket.yourdomain.com
Автообновление сертификата
sudo crontab -e
Добавьте строку:
0 0 * * 1,4 /usr/bin/certbot renew --noninteractive
Настройка Nginx с SSL
Обновите конфиг:
server {
listen 443 ssl;
server_name rocket.yourdomain.com;
client_max_body_size 200M;
error_log /var/log/nginx/rocketchat.error.log;
ssl_certificate /etc/letsencrypt/live/rocket.yourdomain.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/rocket.yourdomain.com/privkey.pem;
ssl_protocols TLSv1.2 TLSv1.3;
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 https;
proxy_set_header X-Nginx-Proxy true;
proxy_redirect off;
}
}
Перезагрузите Nginx:
sudo nginx -t && sudo nginx -s reload
Обновление ROOT_URL в systemd
Отредактируйте сервис:
sudo nano /lib/systemd/system/rocketchat.service
Измените строку Environment:
Environment=MONGO_URL=mongodb://localhost:27017/rocketchat?replicaSet=rs01 MONGO_OPLOG_URL=mongodb://localhost:27017/local?replicaSet=rs01 ROOT_URL=https://rocket.yourdomain.com/ PORT=3000
Перезагрузите сервис:
sudo systemctl daemon-reload sudo systemctl restart rocketchat
Обновление Rocket.Chat
- Остановите сервис:
- Сделайте резервную копию базы:
- Переименуйте старую версию:
- Скачайте и установите новую:
- Запустите:
sudo systemctl stop rocketchat
mkdir -p /backup/mongo
mongodump --db rocketchat --out /backup/mongo/$(date +"%m-%d-%y")
sudo mv /opt/Rocket.Chat /opt/old.Rocket.Chat
curl -L https://releases.rocket.chat/latest/download -o /tmp/rocket.chat.tgz
tar -zxf /tmp/rocket.chat.tgz -C /tmp
cd /tmp/bundle/programs/server
npm install
cd ~
sudo mv /tmp/bundle /opt/Rocket.Chat
sudo chown -R rocketchat:rocketchat /opt/Rocket.Chat
sudo systemctl start rocketchat
Установка через Snap (альтернативный способ)
sudo apt install snapd sudo snap install rocketchat-server
Сервер будет автоматически запущен. Проверить статус:
sudo systemctl status snap.rocketchat-server.rocketchat-server
Каталог с сервером: /snap/rocketchat-server/current
Заключение
Инструкция проверена и актуальна на момент написания. Все ссылки и команды работоспособны. MongoDB, Node.js и Rocket.Chat установлены из официальных источников.
Комментарии
Пока нет комментариев. Будьте первым!