History: Realtime
Source of version: 5
Copy to clipboard
! {{page}} New in ((Tiki25)). Use built-in websockets server within Tiki to enable realtime communication features of the app. At first for ((Tiki Manager Package)), but will later be added to other Tiki Features. Powered by https://packagist.org/packages/cboden/Ratchet and https://reactphp.org This will require a special server configuration (possibly root access). ((Server Check|tiki-check.php)) will indicate if server is correctly set up. Initial commit: https://gitlab.com/tikiwiki/tiki/-/merge_requests/1638 In this documentation we are going to configure Virtualmin, but any other server can be used. !! Requirements We already have a Tiki instance up and running, on Virtualmin, now we need these three things: Proxy Settings, Realtime Service, and proxy_wstunnel, in order to make Realtime working. !!! 1. Proxy Settings First, let us edit Apache directives and add the ProxyPass and the ProxyPassReverse settings in the SSl virtual host. We make both point to ''/ws ws://localhost:8080/'' To do this, we go to ''__Virtualmin __''-> ''__Services __''-> ''__Configure SSL Website__'' -> ''__Edit Directives__''. In the text box that opens, we add -+ProxyPass /ws ws://localhost:8080/+- and -+ProxyPassReverse /ws ws://localhost:8080/+- at the end, like shown in the picture below: {img src="display1879" link="display1879" width="400" rel="box[g]" imalign="center" desc="Click to expand" align="center" styleimage="border"} !!! 2. Realtime Service At this step, we need to create a Systemd service to start the WS server. N.B: Start the WS server with the same user that Tiki web requests run as (to avoid permission issues) - e.g. sudo -u www-data php tiki-realtime.php The process is simple. Just go to ''__Webmin __''-> ''__System __''-> ''__Bootup and Shutdown__'' -> ''__create a new system service__''. {img src="display1880" link="display1880" width="400" rel="box[g]" imalign="center" desc="Click to expand" align="center" styleimage="border"} In the opening form, we fill in the __Service name__, the __service description__, and the __commands to run on startup__. As we don't need to shut this down, we are going to leave empty the "Commands to run on shutdown" field, check __Yes __for Start at boot time option, and click __create__. __The command to run on startup__ is: -+sudo -u user PHP -d session.save_path=/home/user/tmp /home/user/public_html/tiki-realtime.php+- Replace user with your user {img src="display1883" link="display1883" width="400" rel="box[g]" imalign="center" desc="Click to expand" align="center" styleimage="border"} After this, you can check the content of your system service, and it should look something similar to the image below: {img src="display1882" link="display1882" width="400" rel="box[g]" imalign="center" desc="Click to expand" align="center" styleimage="border"} !!! 3. The proxy_wstunnel The last step here in Virtualmin is to make sure the prexy_wstunnel module is enabled. To do this, go to ''__Webmin __''-> ''__Servers __''-> ''__Apache Webserver__'' -> ''__Global configuration__'' -> ''__Configure Apache Modules__'', and check the __proxy_wstunnel__ module checkbox, like in the figure below: {img src="display1884" link="display1884" width="400" rel="box[g]" imalign="center" desc="Click to expand" align="center" styleimage="border"}