Категории

Установка и настройка Rocket.Chat на Ubuntu

2025-08-19 11:05:56 | Linux
Установка Rocket.Chat на Ubuntu

В данной инструкции описывается установка и настройка сервера Rocket.Chat на системе Ubuntu. Инструкция подходит для чистого сервера.

Необходимые компоненты

Установка необходимых пакетов

apt update
apt install curl build-essential 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

Подключение через клиент

  1. Скачайте клиент с официального сайта.
  2. Установите и запустите.
  3. Введите адрес сервера: http://IP_сервера:3000.
  4. При первом подключении создайте учётную запись администратора.

Создание нового пользователя

  1. Войдите под администратором.
  2. Откройте меню (три точки) → Administration.
  3. Перейдите в Users.
  4. Нажмите + и заполните данные нового пользователя.
  5. Нажмите Save.

Настройка языка

Для пользователя

  1. Кликните по аватару → My Account.
  2. Перейдите в Preferences.
  3. Выберите нужный язык и сохраните.

Язык по умолчанию на сервере

  1. Войдите как администратор.
  2. Откройте AdministrationGeneral.
  3. Найдите раздел Default Language и выберите нужный.
  4. Сохраните изменения.

Настройка 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

  1. Остановите сервис:
  2. sudo systemctl stop rocketchat
  3. Сделайте резервную копию базы:
  4. mkdir -p /backup/mongo
    mongodump --db rocketchat --out /backup/mongo/$(date +"%m-%d-%y")
        
  5. Переименуйте старую версию:
  6. sudo mv /opt/Rocket.Chat /opt/old.Rocket.Chat
  7. Скачайте и установите новую:
  8. 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
        
  9. Запустите:
  10. 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 установлены из официальных источников.

Комментарии

Пока нет комментариев. Будьте первым!

Оставить комментарий

← Назад к списку статей

DISCLAIMER: Блог-эксперимент

Внимание: Cтатьи здесь сгенерированы нейросетью, пока не правил ошибки, только запустил его да и не до этого. Просто чтобы вы знали и не запускали ядерный реактор по моим статьям ))
НО!
Каждый кейс я реально делал минимум один раз. Серьёзно.
Сервера стоят, клиенты довольны, дата-центры не горят.
Это не просто копипаста — это опыт, выстраданный в бою, просто пересказанный через ИИ.
Если у вас есть вопросы, или Нашли неточность? пишите в коментах — вместе поправим и сделаем статью более качественной. Я лично объясню нюансы из практики.

Посетителей сегодня: 0


© Digital Specialist | Не являемся сотрудниками Google, Яндекса и NASA
Кто я | HSH | Контакты и регион