Project

General

Profile

Actions

Установка Rocket.Chat

1. Подготавливаем систему

  1. Обновляем пакеты: sudo apt update & sudo apt upgrade -y
  2. Ставим время: sudo timedatectl -set-timezone "Asia/Yekaterinburg"
  3. Ставим необходимые пакеты: sudo apt install wireguard mc openresolv wget cross-build-essential gnupg -y

2. Прикручиваем WireGuard (в наше время без него не ставятся некоторые пакеты)

  1. Смотрим ip-адрес: curl ifconfig.me
  2. wg-quick up wg0
  3. Создаем конфигурационный файл: sudo touch /etc/wireguard/wg0.conf
  4. Открываем на редакцию: sudo nano /etc/wireguard/wg0.conf
  5. Вставляем конфиг (в нашем случае такой):

    [Interface]
    PrivateKey = EKIbNA4gb85iHq5uQIeLPSSfK0rZgLkX7FZt1vIOokU=
    Address = 192.168.6.12/32
    DNS = 9.9.9.9, 8.8.8.8
    [Peer]
    PublicKey = zqB5PkAW409NNa/fU8IvRLdAlvHFQ5fmg9s/o2wTFic=
    PresharedKey = lfGvmey83Dc0cXi6yIF/XE8ELAFOXQe5BxMfbGTAfRk=
    AllowedIPs = 0.0.0.0/0
    Endpoint = wgruvdsger3.2friends.su:41194
    PersistentKeepalive = 15

  6. Запускаем Wireguard: wg-quick up wg0
  7. Смотрим ip-адрес: curl ifconfig.me (должен измениться)

3. Ставим node.js

  1. Добавляем репозиторий: curl -fsSL https://deb.nodesource.com/setup_22.x | sudo -E bash -
  2. Ставим пакет: sudo apt install nodejs -y
  3. Смотрим версию: node -v

Ставим Deno 2.3.1

  1. Качаем и ставим: sudo curl -fsSL https://deno.land/install.sh | sh

4. Установка MongoDB: 8.0

  1. Wireguerd можно выключить (так как MongoDB из России хер скачаешь даже через VPN): sudo wg-quick down wg0
  2. Стягиваем пакет (от какого-то индуса): git clone https://github.com/fdmxfarhan/mongodb.git
  3. Переходим в директорию: cd Ubuntu\ 22.04\ x64/
  4. Ставим пакет: sudo dpkg -i mongodb-org-server_8.0.0_amd64.deb
  5. Пробуем подтянуть зависимости: sudo apt --fix-broken install
  6. Смотрим статус: sudo systemctl status mongod
  7. Добавляем в автостарт: sudo systemctl enable --now mongod
  8. Стартуем: sudo systemctl start mongod
  9. Открываем конфиг: sudo nano /etc/mongod.conf
  10. Правим конфиг:
    # mongod.conf
    # Where and how to store data.
    

    storage:
    dbPath: /var/lib/mongodb
    # where to write logging data.
    

    systemLog:
    destination: file
    logAppend: true
    path: /var/log/mongodb/mongod.log
    # network interfaces
    

    net:
    port: 27017
    bindIp: <bind-ip> # Replace with your IP address
    # how the process runs
    

    processManagement:
    timeZoneInfo: /usr/share/zoneinfo
    # Replication settings
    

    replication:
    replSetName: rs01
  11. Рестартуем MongoDB: sudo systemctl restart mongod

5. Установка MongoSH (он же клиент)

  1. Качаем libssl 1.1.1.1 : wget http://archive.ubuntu.com/ubuntu/pool/main/o/openssl/libssl1.1_1.1.1f-1ubuntu2_amd64.deb
  2. Ставим пакет: sudo dpkg -i libssl1.1_1.1.1f-1ubuntu2_amd64.deb
  3. Качаем MOngoSH: wget https://github.com/mongodb-js/mongosh/releases/download/v2.8.3/mongodb-mongosh-shared-openssl11_2.8.3_amd64.deb
  4. Ставим пакет: sudo dpkg -i mongodb-mongosh-shared-openssl11_2.8.3_amd64.deb
  5. Инициализируем БД: mongosh --eval "printjson(rs.initiate())"

6. Установка Rocket.Chat

  1. Ставим зависимость: sudo apt install -y build-essential graphicsmagick
  2. Запускаем Wireguard: wg-quick up wg0
  3. Качаем Rocket.Chat: sudo curl -L https://releases.rocket.chat/latest/download -o /tmp/rocket.chat.tgz
  4. Распаковываем в директорию: sudo tar -xzf /tmp/rocket.chat.tgz -C /tmp
  5. Запускаем на установку: _ cd /tmp/bundle/programs/server && npm install --unsafe-perm --production_
  6. Переносим проект в /opt : sudo mv /tmp/bundle /opt/Rocket.Chat
  7. Создаем пользователя: sudo useradd -M rocketchat && sudo usermod -L rocketchat
  8. Назначаем владельца: sudo chown -R rocketchat:rocketchat /opt/Rocket.Chat
  9. Создаем переменную окружения: NODE_PATH=$(which node) (чтобы применилась нужно произвести выход/вход пользователя)
  10. Создаем конфигурационный файл службы для systemd:
    cat << EOF |sudo tee -a /lib/systemd/system/rocketchat.service
    [Unit]
    Description=The Rocket.Chat server
    After=network.target remote-fs.target nss-lookup.target nginx.service mongod.service
    [Service]
    ExecStart=$NODE_PATH /opt/Rocket.Chat/main.js
    StandardOutput=journal
    StandardError=journal
    SyslogIdentifier=rocketchat
    User=rocketchat
    [Install]
    WantedBy=multi-user.target
    EOF
  11. Обновляем конфигурацию службы: sudo systemctl edit rocketchat
  12. Вносим изменения:
    [Service]
    Environment=ROOT_URL=http://localhost:3000
    Environment=PORT=3000
    Environment=MONGO_URL=mongodb://localhost:27017/rocketchat?replicaSet=rs01
  13. Добавляем автостарт: sudo systemctl enable --now rocketchat
  14. Перезагружаем демона: sudo systemctl daemon-reload
  15. Перезагружаем Rocket.Chat: sudo systemctl restart rocketchat
  16. Смотрим статус: sudo systemctl status rocketchat

Updated by Дмитрий Курнаев about 2 months ago · 2 revisions