В данной инструкции описывается установка и настройка сервера Rocket.Chat на системе Ubuntu. Инструкция подходит для чистого сервера.
apt update apt install curl build-essential graphicsmagick
Установим 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 версии 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
.
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
Создайте файл: /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
.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
Обновите конфиг:
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
Отредактируйте сервис:
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
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
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 установлены из официальных источников.
Внимание: Cтатьи здесь сгенерированы нейросетью, пока не правил ошибки, только запустил его да и не до этого. Просто чтобы вы знали и не запускали ядерный реактор по моим статьям ))
НО!
Каждый кейс я реально делал минимум один раз. Серьёзно.
Сервера стоят, клиенты довольны, дата-центры не горят.
Это не просто копипаста — это опыт, выстраданный в бою, просто пересказанный через ИИ.
Если у вас есть вопросы, или Нашли неточность? пишите в коментах —
вместе поправим и сделаем статью более качественной. Я лично объясню нюансы из практики.
Комментарии
Пока нет комментариев. Будьте первым!