Changes

From SME Server
Jump to navigationJump to search
449 bytes removed ,  16:35, 27 July 2023
no edit summary
Line 3: Line 3:  
[[File:Rocket-dot-chat-logo.png|200px]]
 
[[File:Rocket-dot-chat-logo.png|200px]]
 
</blockquote>
 
</blockquote>
{{Note box| Please note there is work in progress to create a contrib. Please see [[Rocket_Chat:Contrib|Rocket Chat Contrib]]}}
+
{{Warning box| Due to the changes in Rockets requirements noted below please see the [[Rocket_Chat:Contrib|Rocket Chat Contrib]] This will run Rocket in a docker container}}
 +
{{Warning box| Most of the following is obsolete but here for posterity and reference}}
 +
 
 
===Maintainer===
 
===Maintainer===
 
'''Maintainer:''' [mailto:RequestedDeletion@gmail.com[[User:RequestedDeletion|RequestedDeletion]]]
 
'''Maintainer:''' [mailto:RequestedDeletion@gmail.com[[User:RequestedDeletion|RequestedDeletion]]]
Line 24: Line 26:  
In short, a [https://slack.com/ Slack], [https://www.hipchat.com/ HipChat], Jabber (XMMP), IRC or even a [https://skype.com Skype] alternative, completely and '''securely self hosted and controlled'''. Great for closed (company/family/friends/community) teams.
 
In short, a [https://slack.com/ Slack], [https://www.hipchat.com/ HipChat], Jabber (XMMP), IRC or even a [https://skype.com Skype] alternative, completely and '''securely self hosted and controlled'''. Great for closed (company/family/friends/community) teams.
   −
{{Note box|Rocket.Chat is a young project and therefore under very active development. Very regularly they release new (minor) versions. Your milage may vary! Please see their [https://github.com/RocketChat/Rocket.Chat development] on [https://github.com/RocketChat/Rocket.Chat GitHub] for the activities and Rocket.Chat developments.}}
+
{{Note box|Rocket.Chat is a young project and therefore under very active development. Very regularly they release new (minor) versions. Your mileage may vary! Please see their [https://github.com/RocketChat/Rocket.Chat development] on [https://github.com/RocketChat/Rocket.Chat GitHub] for the activities and Rocket.Chat developments.}}
 +
 
 +
==Obsolete Notes==
 +
 
    
This how-to can be discussed on the forums [https://forums.contribs.org/index.php/topic,52405.0.html '''here''']
 
This how-to can be discussed on the forums [https://forums.contribs.org/index.php/topic,52405.0.html '''here''']
 
+
Latest Rocket.Chat version tested: '''0.39''' (please see the change log [https://github.com/RocketChat/Rocket.Chat/releases here]).
RocketChat for '''SME Server 9.x 64-bit only!'''. Latest Rocket.Chat version tested: '''0.37.1''' (please see the change log [https://github.com/RocketChat/Rocket.Chat/releases here]).
      
==Requirements==
 
==Requirements==
 +
{{Warning box|Please be aware that for now only Rocket.Chat up to version '''0.39''' can be installed due to dependencies on the Nodejs version available via software collections.}}
 
Rocket.Chat requires several higher versions of applications and frameworks than provided by Koozali SME Server by default. Therefore we need to install some '''[[Software Collections]]''' Packages and enable some addition repo's.
 
Rocket.Chat requires several higher versions of applications and frameworks than provided by Koozali SME Server by default. Therefore we need to install some '''[[Software Collections]]''' Packages and enable some addition repo's.
   −
# You must enable the '''[[epel]]''' and '''[[centos-sclo-rh]]''' repositories first before continuing.
+
# You must have '''SME Server 9.x 64-bit'''
#You must install the Software Collections tools first. Please see '''[[Software Collections]]''' how to install and enable '''[[Software Collections]]'''.
+
# You must install the '''[[epel]]''' repository
 +
# You must install the '''[[centos-sclo-rh]]''' repository
 +
# You must install the '''[[Software Collections]]''' tool
    
After having installed the above repo's and installing Software Collections, you can install the required collections by:
 
After having installed the above repo's and installing Software Collections, you can install the required collections by:
  yum install rh-python34-python rh-mongodb26-mongodb rh-mongodb26-mongodb-server \
+
  yum install rh-python34-python rh-mongodb32-mongodb rh-mongodb32-mongodb-server nodejs010 GraphicsMagick --enablerepo=centos-sclo-rh,epel
nodejs010 GraphicsMagick --enablerepo=centos-sclo-rh,epel
      
After installing the Software Collections we need to update some packages using NodeJS package manager NPM:
 
After installing the Software Collections we need to update some packages using NodeJS package manager NPM:
  scl enable nodejs010 bash
+
  scl enable nodejs010 'npm install -g npm ws inherits n forever forever-service'
npm install -g npm ws inherits n
+
  scl enable nodejs010 'n 0.10.40'
  n 0.10.40
  −
exit
      
== Installation of Rocket.Chat==
 
== Installation of Rocket.Chat==
Line 52: Line 56:  
  ln -s /etc/rc.d/init.d/e-smith-service /etc/rc.d/rc7.d/S99rocketchat
 
  ln -s /etc/rc.d/init.d/e-smith-service /etc/rc.d/rc7.d/S99rocketchat
 
  config set rocketchat service status enabled TCPPort 3000 access public
 
  config set rocketchat service status enabled TCPPort 3000 access public
signal-event remoteaccess-update
      
For MongoDB (please note the usage of mongod and NOT mongod'''b'''):
 
For MongoDB (please note the usage of mongod and NOT mongod'''b'''):
  ln -s /etc/rc.d/init.d/e-smith-service /etc/rc.d/rc7.d/S99rh-mongodb26-mongod
+
  ln -s /etc/rc.d/init.d/e-smith-service /etc/rc.d/rc7.d/S99rh-mongodb32-mongod
  config set rh-mongodb26-mongod service status enabled access private TCPPort 27017
+
  config set rh-mongodb32-mongod service status enabled access private TCPPort 27017
 +
 
 +
And to update the ports:
 
  signal-event remoteaccess-update
 
  signal-event remoteaccess-update
    
Now we can download and install the latest Rocket.Chat version from their [https://rocket.chat/releases/ downloads] repository:
 
Now we can download and install the latest Rocket.Chat version from their [https://rocket.chat/releases/ downloads] repository:
 
  cd /root
 
  cd /root
  curl -L https://rocket.chat/releases/latest/download -o rocket.chat.tgz
+
  curl -L https://rocket.chat/releases/0.39.0/download -o rocket.chat.tgz
 
  tar zxvf rocket.chat.tgz
 
  tar zxvf rocket.chat.tgz
 
  mv bundle /opt/Rocket.Chat
 
  mv bundle /opt/Rocket.Chat
Line 67: Line 72:  
Once Rocket.Chat has been downloaded and unpacked, we need to 'register' Rocket.Chat with NodeJS with NPM:
 
Once Rocket.Chat has been downloaded and unpacked, we need to 'register' Rocket.Chat with NodeJS with NPM:
 
  cd /opt/Rocket.Chat/programs/server
 
  cd /opt/Rocket.Chat/programs/server
  npm install
+
  scl enable nodejs010 'npm install'
    
Rocket.Chat has now been installed and you can test-drive you installation.
 
Rocket.Chat has now been installed and you can test-drive you installation.
Line 86: Line 91:     
==Auto start Rocket.Chat at boot==
 
==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 Rocket.Chat setup.
+
Since SME Server has put it's name in /etc/system-release, the (NodeJS) 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 (don't be disturbed by the Oracle mentioning, it's just to locate the correct position):
 
  −
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 (don't be disturbed by the Oracle mentioning, it's just to locate the correct position):
   
  sed -i -e 's/(Oracle Linux)/(Oracle Linux)|(SME Server)/' \
 
  sed -i -e 's/(Oracle Linux)/(Oracle Linux)|(SME Server)/' \
 
  /opt/rh/nodejs010/root/usr/lib/node_modules/forever-service/templates/sysvinit/installer.js
 
  /opt/rh/nodejs010/root/usr/lib/node_modules/forever-service/templates/sysvinit/installer.js
Line 121: Line 121:     
To create your sub domain (e.g. https://chat.yourserver.com)
 
To create your sub domain (e.g. https://chat.yourserver.com)
  db domains set chat.mycompany.local domain Description "RocketChat" Nameservers internet \
+
  db domains set chat.yourserver.local domain Description "RocketChat" Nameservers internet \
 
  TemplatePath WebAppVirtualHost RequireSSL enabled ProxyPassTarget http://localhost:3000/ ProxyPreserveHost yes
 
  TemplatePath WebAppVirtualHost RequireSSL enabled ProxyPassTarget http://localhost:3000/ ProxyPreserveHost yes
 
The 'ProxyPassTarget' property could also point to another host (IP) that has Rocket.Chat installed, e.g. a virtual SME Server on the same LAN. In that case, also LDAP and open/close ports have to be taken into consideration.
 
The 'ProxyPassTarget' property could also point to another host (IP) that has Rocket.Chat installed, e.g. a virtual SME Server on the same LAN. In that case, also LDAP and open/close ports have to be taken into consideration.
Line 127: Line 127:  
  signal-event webapps-update
 
  signal-event webapps-update
   −
If your server' default FQDN is already chat.yourserver.com, there is no need to create a new subdomain. Instead of the above command, you can enter the following:
+
If your servers' default FQDN is already chat.yourserver.com, there is no need to create a new subdomain. Instead of the above command, you can enter the following:
 
  db domains setprop chat.yourserver.com TemplatePath WebAppVirtualHost RequireSSL enabled ProxyPassTarget http://localhost:3000/ ProxyPreserveHost yes
 
  db domains setprop chat.yourserver.com TemplatePath WebAppVirtualHost RequireSSL enabled ProxyPassTarget http://localhost:3000/ ProxyPreserveHost yes
   −
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 change the default access method from public to private.
 
  config setprop rocketchat access private
 
  config setprop rocketchat access private
 
  signal-event remoteaccess-update
 
  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.
 
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.
      
==WebRTC configuration==
 
==WebRTC configuration==
Line 177: Line 176:  
  Sync data: True
 
  Sync data: True
 
  Default domain: chat.yourserver.com (as per the subdomain)
 
  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'. For more specific details on Rocket.Chat and LDAP user authentication please see [https://rocket.chat/docs/master/admin-guides/ldap/ '''their documentation'''].
+
Save the settings and use the test button to test the connection to the LDAP directory. Then 'Sync users'. For more specific details on Rocket.Chat and LDAP user authentication please see [https://rocket.chat/docs/administrator-guides/authentication/ldap '''their documentation'''].
    
==Maintenance==
 
==Maintenance==
Line 186: Line 185:  
  service rocketchat stop
 
  service rocketchat stop
 
  rm -rf /opt/Rocket.Chat
 
  rm -rf /opt/Rocket.Chat
and then repeat the download, unpack and move [[Rocket_Chat#Get_Rocket.Chat_from_downloads|'''get Rocket.Chat procedure above''']]. Then start Rocket.Chat:
+
and then repeat the download, unpack and move as descibed above. Then start Rocket.Chat:
 
  service rocketchat start
 
  service rocketchat start
 
Please note it can take a bit for the Rocket.Chat service to become available for the MongoDB structure version is being checked and automatically updated according to the Rocket.Chat version.
 
Please note it can take a bit for the Rocket.Chat service to become available for the MongoDB structure version is being checked and automatically updated according to the Rocket.Chat version.
Line 210: Line 209:     
Obviously there are mobile clients for both Android and iOS. Please search for 'Rocket chat' in either app store.
 
Obviously there are mobile clients for both Android and iOS. Please search for 'Rocket chat' in either app store.
  −
==Security==
  −
* https://imagetragick.com/
      
==TO DO==
 
==TO DO==
* <s>Auto start Rocket.Chat</s>
   
* Backup and how to manage Rocket.Chat data (e.g. mongodb and FS options)
 
* Backup and how to manage Rocket.Chat data (e.g. mongodb and FS options)
 
* Include the push server config for both Android and iOS
 
* Include the push server config for both Android and iOS
* <s>Fine tune various things (e.g. Security)</s>
  −
* <s>Enable LDAP authentication</s>
  −
* <s>Create subdomain e.g. https://chat.yourdomain.com using the webapps-common contrib</s>
  −
* <s>Activiation/Notification emails are not sent, despite test success</s>
  −
* <s>Upgrade Rocket.Chat</s>
   
* Remove Rocket.Chat
 
* Remove Rocket.Chat
<br>
   
* Watch developments such as using PostgreSQL/MariaDB opposed to MongoDB
 
* Watch developments such as using PostgreSQL/MariaDB opposed to MongoDB
 
* Test, test, test
 
* Test, test, test
* <s>Create a contrib</s>
   
* Showcase SME Server, contribs and software collections.
 
* Showcase SME Server, contribs and software collections.
  

Navigation menu