Slack là một cái tên khá nổi tiếng trong số các giải pháp chat nội bộ cho doanh nghiệp. Nó thực sự là một cuộc cách mạng trong giao tiếp nội bộ. Tuy nhiên, Slack tính phí và bản miễn phí của nó khá hạn chế với việc không thể lưu trữ nhắn cũ của bạn và bộ nhớ chia sẻ file chỉ có 5GB.
Công ty mình đã từ bỏ Slack vì lý do trên và tìm kiếm một giải pháp tương đương nhưng tự chủ hơn về mọi mặt. Và mình đã đến với Rocket.chat sau khi so sánh với Zulip và Mastermost.
Ưu điểm của Rocket.chat là hoàn toàn miễn phí, được viết bằng nodejs và sử dụng mongodb làm cơ sở dữ liệu.
Demo: https://demo.rocket.chat/
Đầu tiên, bạn cần một máy chủ Centos 7 trở lên.
Cài đặt repo epel-release
$yum -y install epel-release nano && yum -y update
Tạo repo để cài đặt Mongodb:
$nano /etc/yum.repos.d/mongodb.repo
Nội dung file:
[mongodb] name=MongoDB Repository baseurl=http://downloads-distro.mongodb.org/repo/redhat/os/x86_64/ gpgcheck=0 enabled=1
Cài đặt các công cụ cần thiết:
$yum install -y nodejs curl GraphicsMagick npm mongodb-org-server mongodb-org gcc-c++
Tiếp tục cài đặt một số gói phụ thuộc của nodejs:
$npm install -g inherits n
Tải bản cài đặt mới nhất của Rocket.chat về:
$curl -L https://rocket.chat/releases/latest/download -o rocket.chat.tgz
Giải nén, đặt lại tên thư mục (bundle >> Rocket.chat), sau đó cd vào thư mục Rocket.chat/programs/server
$tar zxvf rocket.chat.tgz $mv bundle Rocket.Chat $cd Rocket.Chat/programs/server
Chạy lệnh npm install:
$npm install $cd ../..
Cài đặt PORT, ROOT_URL (đường dẫn chính), và MONGODB:
$export PORT=3000 $export ROOT_URL=http://your-host-name.com-as-accessed-from-internet:3000/ $export MONGO_URL=mongodb://localhost:27017/rocketchat
Cho phép mongodb khởi động cùng hệ thống, và start nó lên:
$chkconfig mongod on
$systemctl start mongod
Bây giờ bạn có thể chạy Rocket.chat ngay bằng câu lệnh:
$node mainjs
Tuy nhiên để cho đơn giản trong quản lý thì bạn nên tạo Service Rocket.chat
$nano /etc/systemd/system/RocketChat.service
Nội dung (lưu ý các mục bạn phải thay đổi cho đúng)
[Unit] Description=Rocket.Chat After=network.target [Service] Type=simple WorkingDirectory=/opt/Rocket.Chat ## đây là thư mục bạn đã vứt code của Rocket.chat vào sau khi download User=rocket Group=rocket ExecStart=/usr/local/bin/node main.js Restart=always SyslogIdentifier=Rocket.Chat Environment="ROOT_URL=http://<IP server> :3000" Environment="PORT=3000" Environment="MONGO_URL=mongodb://localhost:27017/rocketchat" [Install] WantedBy=multi-user.target
Sau cùng bạn chạy các lệnh sau:
$systemctl daemon-reload $systemctl start RocketChat.service $systemctl enable RocketChat.service
Bây giờ bạn đã có thể truy cập Rocket.chat tại link bạn đã export bên trên, port 3000
VD: http://10.0.25.234:3000
Cấu hình luôn nó vào nginx để cho có url đẹp:
location / { proxy_pass http://<IP server chat>: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-Forward-For $proxy_add_x_forwarded_for; proxy_set_header X-Forward-Proto http; proxy_set_header X-Nginx-Proxy true; proxy_redirect off; }
bạn có thử syn với AD chưa vậy bạn. Nếu có cho mình xin hướng dẫn nhé
Mình mới sync với LDAP và Google Account thôi. Vì bên mình không dùng AD, nhưng nó cũng tương tự LDAP thôi.
mình cài Rocket chat version 0.57.2 , node 4.5 .mình thử sync với LDAP mà chưa làm thành công, có gì bạn chia sẻ kinh nghiệm với mình với. Thanks bạn.
Host 10.0.8.6
Port 389
Domain Base dc=quantedge,dc=vn
Domain Search Filter ou:dn:=Accounts
Domain Search User ID uid
Domain Search Object Class inetOrgPerson
Domain Search Object Category
Username Field #{uid}
Default Domain quant-edge.com
Bấm Save sau đó Test
thanks bạn mình đã làm được rồi
mình thử sync với LDAP mà cấu hình ko thành công. bạn có thể share hướng dẫn ko bạn. thanks
https://rocket.chat/docs/administrator-guides/authentication/ldap/
AD cũng sử dụng giao thức LDAP nên cấu hình tương tự.
mình muốn restore lại db cũ thì làm nào bạn nhỉ
Nó dùng mongoDB thôi nên bạn cứ backup/restore như bình thường.