Установка rocket chat(latest version) с помощью докер и openldap интеграция

Установка rocket chat(latest version) с помощью докер и openldap интеграция

В чем преимущества rocket chat:
- все храним у себя;
- не надо беспокоиться об истории как в slack (ограничена на бесплатной версии);
- интеграция с openldap;
- так же есть бот;
- поддержка markdown в сообщениях;
- и множество плюшек.

Запуск rocket-chat через docker-compose

Создадим docker-compose и необходимые диры.

На данный момент последняя версия чата – rocketchat:3.8.0,ее мы и прописали в docker-compose.

mkdir -p /docker-compose/SWARM/services/rocketchat/data/rocketchat/{uploads,sounds,emod}
mkdir -p /docker-compose/SWARM/services/rocketchat/database/mongodb4/{rc,dump}
chmod 777 -R /docker-compose/SWARM/services/rocketchat/data/rocketchat/uploads

Собираем докер из исходов.

nano Dockerfile
FROM node:12-slim
ARG IMAGE_TAG
MAINTAINER a.v.galushko86@gmail.com
VOLUME /app/uploads
WORKDIR /app
RUN groupadd -r rocketchat \
&&  useradd -r -g rocketchat rocketchat \
&&  mkdir -p /app/uploads \
&&  chown rocketchat.rocketchat /app/uploads \
&& apt-get update && apt-get install gpg-agent curl  -y \
&& gpg --keyserver ha.pool.sks-keyservers.net --recv-keys 0E163286C20D07B9787EBE9FD7F9D0414FD08104 \
&& cd /app \
&& curl -fSL "https://releases.rocket.chat/${IMAGE_TAG}/download" -o rocket.chat.tgz \
&& curl -fSL "https://releases.rocket.chat/${IMAGE_TAG}/asc" -o rocket.chat.tgz.asc \
&& gpg --batch --verify rocket.chat.tgz.asc rocket.chat.tgz \
&& tar zxvf rocket.chat.tgz \
&& rm rocket.chat.tgz rocket.chat.tgz.asc \
&& cd bundle/programs/server \
&& npm install
USER rocketchat
WORKDIR /app/bundle
ENV DEPLOY_METHOD=docker-official
    MONGO_URL=mongodb://db:27017/meteor \
    HOME=/tmp \
    PORT=3000 \
    ROOT_URL=http://localhost:3000 \
    Accounts_AvatarStorePath=/app/uploads
EXPOSE 3000
CMD ["node", "main.js"]

Собираем докер devsadds/rocketchat:3.8.0

docker build --build-arg IMAGE_TAG=3.8.0 --tag devsadds/rocketchat:3.8.0 .

Редактируем docker-compose.yml

version: '2'
services:
  rocketchat:
    image: devsadds/rocketchat:3.8.0
    restart: unless-stopped
    ports:
      - 127.0.0.1:3000:3000
      - 127.0.0.1:9200:9100
    volumes:
      - ./data/rocketchat/uploads:/app/uploads
      - ./data/rocketchat/sounds:/app/sounds
      - ./data/rocketchat/emod:/app/emod
    environment:
      - PORT=3000
      - ROOT_URL=https://rc.itc-life.ru
      - MONGO_URL=mongodb://mongo:27017/rocketchat
      - MONGO_OPLOG_URL=mongodb://mongo:27017/local
      - MAIL_URL=smtp://smtp.email
      #- MAIL_URL=smtp://smtp.mandrillapp.com
      #- MONGO_URL=mongodb://db:27017/rocketchat
      #- ROOT_URL=https://community.storj.io
      #- Accounts_UseDNSDomainCheck=True
    depends_on:
      - mongo
    networks:
      rc-net:
        aliases:
          - rocketchat
  mongo:
    image: mongo:4.0-rc
    restart: unless-stopped
    volumes:
     - ./database/mongodb4/rc:/data/db
     - ./database/mongodb4/dump:/dump
    command: mongod --smallfiles --oplogSize 128 --replSet rs0 --storageEngine=mmapv1
    networks:
      rc-net:
        aliases:
          - mongo.rc.db
  mongo-init-replica:
    image: mongo:4.0-rc
    command: 'mongo mongo/rocketchat --eval "rs.initiate({ _id: ''rs0'', members: [ { _id: 0, host: ''localhost:27017'' } ]})"'
    depends_on:
      - mongo
    networks:
      rc-net:
        aliases:
          - mongo.init
##NETWORKS
networks:
  rc-net:
    driver: bridge

Теперь cпулим все оставшиеся образы.

docker-compose pull --no-parallels

И запустим все по очереди – сначала монго, потом произведем инициализацию реплик монго, затем стартанем сам чат.

docker-compose up -d monogo
docker-compose up -d mongo-init-replica
docker-compose up -d rocketchat

Готово, как мы видим здесь мы открыли порт 3000 на 127.0.0.1. Создадим конфиг nginx для проксирования на наш чат

upstream rc {
    server 127.0.0.1:3000;
}
# let rc deal with the redirection
server {
  listen 80;
  server_name
  rc.itc-life.ru
  ;
  server_tokens off;
  root /dev/null;
  access_log /dev/null;
  location / {
    return 301 https://$server_name$request_uri;
  }
}
server {
  listen 443 ssl http2;
  server_name
  rc.itc-life.ru
  ;
  server_tokens off;
  root /dev/null;
  ssl_protocols TLSv1.1 TLSv1.2;
  ssl_certificate /etc/nginx/ssl.d/itc-life.ru/certificate.crt;
  ssl_certificate_key /etc/nginx/ssl.d/itc-life.ru/private.key;
  ssl_prefer_server_ciphers on;
  ssl_dhparam /etc/nginx/dhparam.pem;
  ssl_ciphers 'ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:AES:CAMELLIA:DES-CBC3-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!aECDH:!EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA';
  ssl_session_timeout 1d;
  ssl_session_cache shared:SSL:2m;
  ssl_stapling on;
  ssl_stapling_verify on;
  access_log /dev/null;
  location / {
        proxy_pass http://rc;
        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-Forward-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forward-Proto http;
        proxy_set_header X-Nginx-Proxy true;
        proxy_redirect off;
  }
}

Передергиваем nginx и заходим на наш чат.

nginx -s reload

Зайдем на наш созданный rocket char

rc.itc-life.ru

ОК. ВСё запустилось. Заполняем данные для первого входа, потом немного подождем и если ничего не произойдет, обновим страницу.

Залогинимся.

Первочанальная настройка

Настроим размер загружаемых файлов и другое тут
file
file

Включим обсуждения и потоки

file

file

Настроим сообщения

file
file

Настроим учетные записи

file

здесь можно включить двухфакторную авторизацию

Настройка OPENLDAP интеграции для rocket-chat

Некоторые моменты. В openldap у пользователй у вас должны быть слеюущие поля:

  • cn – это будет логином для входа в чат

    • Email – email user

    • JpegPhote – user photo

    • givenName – имя

    -sn – фамилия

Приводим к виду как у меня на скринах. А именно.

file
file
file
file
file
file

И нажимаем кнопку выполнить синхронизацю сейчас.

Установка клиентов на ubuntu

sudo snap install rocketchat-desktop

Установка клиентов на телефон

В магазинах есть оф приложения.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

 

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.