Rocket.Chat
Обновлено 4 августа 2020
Введение
Rocket.Chat - это мессенджер с открытым исходным кодом, который поддерживает групповые чаты, обмен файлами, видеоконференции, ботов и многое другое.
Подготовка LXC-контейнера
Мы рекомендуем выполнить установку Rocket.Chat в отдельном контейнере, настроив его согласно инструкции.
Установка и настройка MongoDB
Установите пакет MongoDB:
emerge -a dev-db/mongodb
Настройте MongoDB для работы с Rocket.Chat:
storage: dbPath: "/var/lib/mongodb" engine: mmapv1 replication: replSetName: rs01
Запустите MongoDB:
/etc/init.d/mongodb start
Добавьте MongoDB в автозагрузку:
rc-update add mongodb
Выполните инициализацию базы данных:
mongo --eval "printjson(rs.initiate())"
Получение сертификата Let's Encrypt
Получите сертификат домена rocketchat.example.org для Nginx согласно руководству.
Установка и настройка Nginx
Установите и настройте веб-сервер Nginx в качестве обратного прокси согласно руководству. Добавьте следующую настройку для rocketchat.example.org:
server { listen 443 ssl; server_name rocketchat.example.org; include ssl.conf; ssl_certificate /etc/nginx/ssl/rocketchat.example.org/fullchain.pem; ssl_certificate_key /etc/nginx/ssl/rocketchat.example.org/privkey.pem; client_max_body_size 200M; location / { proxy_pass http://localhost: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-Forwarded-Proto https; proxy_set_header X-Nginx-Proxy true; proxy_redirect off; } }
Установка и настройка Rocket.Chat
Установите вспомогательное программное обеспечение:
emerge -a dev-python/nodeenv media-gfx/graphicsmagick
Создайте пользователя rocketchat в системе:
useradd -m -d /var/calculate/www/rocketchat -s /bin/bash rocketchat
Установите Node.js в директорию пользователя:
su - rocketchat
nodeenv --node=12.18.0 .node-12
ln -sfT .node-12 .node-live
source .node-live/bin/activate
echo 'source ~/.node-live/bin/activate' >> ~/.bash_profile
Установка сервера
Использование собранного релизного сервера
Скачайте и распакуйте сервер Rocket.Chat:
curl -L https://releases.rocket.chat/latest/download -o Rocket.Chat.tar.gz
tar xf Rocket.Chat.tar.gz
Установите необходимые библиотеки для NodeJS и завершите сеанс пользователя rocketchat:
cd ~/bundle/programs/server
npm install && exit
Сборка сервера из исходного кода
Установите для пользователя web фреймворк Meteor:
curl https://install.meteor.com/ | sh
echo 'PATH="${PATH}:${HOME}/.meteor"' >>.bash_profile
PATH="${PATH}:${HOME}/.meteor"
Скачайте исходный код сервера Rocket.Chat:
git clone https://github.com/RocketChat/Rocket.Chat.git Rocket.Chat.Source
Перейдите в каталог с исходным кодом и выполните сборку архива:
cd Rocket.Chat.Source
meteor npm install
meteor build --directory ~
Установите необходимые библиотеки для NodeJS и завершите сеанс пользователя rocketchat:
cd ~/bundle/programs/server
npm install && exit
Запуск Rocket.Chat
Сделайте ранее полученный каталог серевером Rocket.Chat текущим:
mv /var/calculate/www/rocketchat/{bundle,Rocket.Chat}
Создайте сценарий OpenRC для управления демоном Rocket.Chat, указав https://rocketchat.example.org в качестве ROOT_URL:
#!/sbin/openrc-run # Copyright 2020 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 name="Rocketchat daemon" description="" pidfile=/run/rocketchat.pid command_user=rocketchat output_log=/var/log/rocketchat.log error_log=/var/log/rocketchat.log directory=/var/calculate/www/rocketchat/Rocket.Chat ROOT_URL="https://rocketchat.example.org" start_stop_daemon_args="-e ROOT_URL=$ROOT_URL -e MONGO_OPLOG_URL=mongodb://localhost:27017/local?replicaSet=rs01 -e PORT=3000 -e MONGO_URL=mongodb://localhost:27017/rocketchat?replicaSet=rs01 -e PATH=/var/calculate/www/rocketchat/.node-live/lib/node_modules/.bin:/var/calculate/www/rocketchat/.node-live/bin:\"$PATH\"" command="/var/calculate/www/rocketchat/.node-live/bin/node" command_args="main.js" command_background=true depend() { need nginx mongodb } start_pre() { checkpath -f -o rocketchat -m 0600 /var/log/rocketchat.log }
Установите права на запуск:
chmod 755 /etc/init.d/rocketchat
Запустите демон Rocket.Chat:
/etc/init.d/rocketchat start
Добавьте Rocket.Chat в автозагрузку:
rc-update add rocketchat
Откройте в браузере сайт https://rocketchat.example.org и выполните заключительную настройку Rocket.Chat.
Обновление Rocket.Chat
Выполните вход в сеанс пользователя rocketchat:
su - rocketchat
Получите каталог bundle Rocket.Chat сервера одиним из способов, описанных выше в главе Установка сервера.
Остановите старый сервер Rocket.Chat:
/etc/init.d/rocketchat stop
Замените старый сервер на новый:
mv /var/calculate/www/rocketchat/Rocket.Chat{,.$(date +%Y%m%d%H%M)}
mv /var/calculate/www/rocketchat/{bundle,Rocket.Chat}
Запустите новый сервер Rocket.Chat:
/etc/init.d/rocketchat start