Difference between revisions of "Rocket Chat"
(→About) |
|||
Line 123: | Line 123: | ||
signal-event webapps-update | signal-event webapps-update | ||
− | To disable the default access on port 3000 for we now access our chat platform via the subdomain and for security we close the default access method. | + | To disable the default access on port 3000, for we now access our chat platform via the subdomain, and for security we close the default access method. |
config setprop rocketchat access private | config setprop rocketchat access private | ||
signal-event remoteaccess-update | signal-event remoteaccess-update |
Revision as of 09:18, 18 April 2016
About
"Rocket.Chat, the ultimate webchat platform. From group messages and video calls all the way to helpdesk killer features. Our goal is to become the number one cross-platform open source chat solution"
- Messaging Direct and group messages, public or private.
- Video Conference Chat with your colleagues and friends face-to-face over audio and video. See details. Test your device here.
- Helpdesk chat Have your website visitors contact you in real-time and increase conversions.
- File sharing Drag-and-drop files or select them from your computer or mobile device.
- Voice messages Record and transmit voice messages to a channel, group or private conversation.
- Link preview Post a link and immediately view its content. YouTube, Twitter, Gifs!
- API Integrate your chat to multiple services: GitHub, GitLab, JIRA, Confluence and others.
- Extendability Want a killer new feature? Add a new package. It's as simple as that.
- Native applications Native client applications available for download on Linux, Windows and OSX.
- Mobile applications Mobile client applications available for iOS and Android on their respective stores.
In short, a Slack, HipChat or even Skype alternative completely and securely self hosted and controlled. Great for closed (company) teams.
This how-to can be discussed on the forums here
RAW NOTES
RocketChat install script for SME Server 9.x 64-bit only!
Copyright 2016 RequestedDeletion (RequestedDeletion@gmail.com)
Add epel repo
/sbin/e-smith/db yum_repositories set epel repository \ Name 'Epel - EL6' \ BaseURL 'http://download.fedoraproject.org/pub/epel/6/$basearch' \ MirrorList 'http://mirrors.fedoraproject.org/mirrorlist?repo=epel-6&arch=$basearch' \ EnableGroups no \ GPGCheck yes \ GPGKey http://dl.fedoraproject.org/pub/epel/RPM-GPG-KEY-EPEL \ Exclude perl-Razor-Agent \ Visible no \ status disabled
Add Centos-rh SCL repo’s
/sbin/e-smith/db yum_repositories set scl \ repository Name 'Software collections' \ BaseURL 'http://mirror.centos.org/centos/$releasever/SCL/$basearch/' \ EnableGroups no Visible yes status disabled
/sbin/e-smith/db yum_repositories set centos-sclo-rhl \ repository Name 'Software collections' \ BaseURL 'http://mirror.centos.org/centos/$releasever/sclo/$basearch/rh/' \ EnableGroups no Visible yes status disabled
Expand new repo’s
signal-event yum-modify
Install Software Collections applications
yum install rh-python34-python rh-mongodb26-mongodb rh-mongodb26-mongodb-server \ nodejs010 GraphicsMagick --enablerepo=centos-sclo-rhl,epel
using NPM:
scl enable nodejs010 bash npm install -g inherits npm install -g n n 0.10.40 exit
Start Mongodb as service
(please note the usage of mongod and NOT mongodb)
ln -s /etc/rc.d/init.d/e-smith-service /etc/rc7.d/S99rh-mongodb26-mongod config set rh-mongodb26-mongod service config setprop rh-mongodb26-mongod status enabled config setprop rh-mongodb26-mongod access private config setprop rh-mongodb26-mongod TCPPort 27017
Create boot scripts for Software Collections applications
nano -w /etc/profile.d/scls-rh-mongodb26.sh
#!/bin/sh source /opt/rh/rh-mongodb26/enable export X_SCLS="`scl enable rh-mongodb26 'echo $X_SCLS'`" export ROOT_URL=http://localhost:3000/ export PORT=3000 export MONGO_URL=mongodb://localhost:27017/rocketchat
nano -w /etc/profile.d/scls-rh-python34.sh
#!/bin/sh source /opt/rh/rh-python34/enable export X_SCLS="`scl enable rh-python34 'echo $X_SCLS'`"
nano -w /etc/profile.d/scls-rh-java-common.sh
#!/bin/sh source /opt/rh/rh-java-common/enable export X_SCLS="`scl enable rh-java-common 'echo $X_SCLS'`"
nano -w /etc/profile.d/scls-nodejs010.sh
#!/bin/sh source /opt/rh/nodejs010/enable export X_SCLS="`scl enable nodejs010 'echo $X_SCLS'`"
Create SME Server Rocket.Chat service
config set rocketchat service status enabled TCPPort 3000 access public signal-event remoteaccess-update
A reboot at this point is required to load all of the Software Collections profile/config files.
signal-event reboot
Get Rocket.Chat from downloads
cd /root curl -L https://rocket.chat/releases/latest/download -o rocket.chat.tgz tar zxvf rocket.chat.tgz mv bundle /opt/Rocket.Chat cd /opt/Rocket.Chat/programs/server npm install
Start Rocket.Chat
cd /opt/Rocket.Chat node main.js &
Browse to http://yourserver:3000 and create the first admin user.
Rocket.Chat on a sub domain
Install the Webapps-common contrib.
To create your sub domain (e.g. https://chat.yourserver.com)
db domains set chat.mycompany.local domain Description "RocketChat" Content Primary \ Nameservers internet TemplatePath WebAppVirtualHost DocumentRoot /opt/Rocket.Chat \ RequireSSL enabled ProxyPassTarget http://localhost:3000/
To expand and activate:
signal-event webapps-update
To disable the default access on port 3000, for we now access our chat platform via the subdomain, and for security we close the default access method.
config setprop rocketchat access private signal-event remoteaccess-update
You can now visit Rocket.Chat at https://chat.yourserver.com. Rocket.Chat will notice that the URL that is being used to access Rocket.Chat has been changed, and will propose to change it to the new URL.
Auto start Rocket.Chat at boot
To be able to auto start Rocket.Chat one could use the /etc/rc.d/rc.local file, but using the init system is cleaner and much more controlled. Nodejs has small utilities (modules) that can create the correct init script based on your specific setup.
To install these Nodejs modules issue:
npm install -g forever npm install -g forever-service
Since SME Server has put it's name in /etc/system-release, the forever utility will not be able to detect the main distribution name (e.g. CentOS) and will exit with an error. To add 'SME Server' to the list of recognised distributions so that the forever-service tool will run properly, is to execute the following command:
sed.... TBA (/opt/rh/nodejs010/root/usr/lib/node_modules/forever-service/templates/sysvinit/installer.js)
and then generate and place the init script 'rocketchat' into /etc/rc.d/init.d:
cd /opt/Rocket.Chat forever-service install -s main.js -e "ROOT_URL=https://chat.mycompany.local/ \ MONGO_URL=mongodb://localhost:27017/rocketchat PORT=3000" \ -p "/opt/rh/nodejs010/root/usr/lib/node_modules/forever/bin" rocketchat
Please use the correct values in the command above from your specific setup.
Now you can start/stop/status /etc/rc.d/init.d/rocketchat e.g.:
/etc/rc.d/init.d/rocketchat status
LDAP Authentication
As the Rocket.Chat admin go into administration -> LDAP, and use the following setting:
Enable -> True Host -> localhost Port -> 389 Domain base -> as displayed in server manager e.g. dc=mycompany,dc=local Custom domain search -> {"filter": "(&(objectClass=inetOrgPerson)(objectClass=sambaSamAccount))"} Sync data -> True Default domain -> chat.yourserver.com (as per the subdomain)
Save the settings and use the test button to test the connection to the LDAP directory. Then 'Sync users'.
TO DO
- Auto
start Rocket.Chat - Backup (mongodb)
Fine tune various things (e.g. Security)Enable LDAP authenticationCreate subdomain e.g. https://chat.yourdomain.com using the webapps-common contrib- Test, test, test
- Create a contrib
- Showcase SME Server, contribs and software collections.