diff --git a/composer.json b/composer.json index d762951de9..d49c37e75f 100644 --- a/composer.json +++ b/composer.json @@ -78,6 +78,7 @@ "egroupware/registration": "dev-master", "egroupware/rocketchat": "dev-master", "egroupware/status": "dev-master", + "egroupware/swoolepush": "dev-master", "egroupware/tracker": "dev-master", "egroupware/z-push-dev": "^2.5", "fxp/composer-asset-plugin": "^1.2.2", diff --git a/composer.lock b/composer.lock index 5d8a0d14fd..1cfb5ebbde 100644 --- a/composer.lock +++ b/composer.lock @@ -4,7 +4,7 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "51527b473853c68621a168301d09196f", + "content-hash": "15e89b698860ff65a8d60addd789b06c", "packages": [ { "name": "adldap2/adldap2", @@ -641,6 +641,90 @@ ], "time": "2018-07-24T23:27:56+00:00" }, + { + "name": "easyswoole/memcache", + "version": "1.0.1", + "source": { + "type": "git", + "url": "https://github.com/easy-swoole/memcache.git", + "reference": "f3827a7d55e2ab043f5dc1429a4c26578754bd19" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/easy-swoole/memcache/zipball/f3827a7d55e2ab043f5dc1429a4c26578754bd19", + "reference": "f3827a7d55e2ab043f5dc1429a4c26578754bd19", + "shasum": "" + }, + "require": { + "easyswoole/spl": "^1.1" + }, + "require-dev": { + "easyswoole/phpunit": ">=1.0.0", + "easyswoole/swoole-ide-helper": "^1.1" + }, + "type": "library", + "autoload": { + "psr-4": { + "EasySwoole\\Memcache\\": "src/", + "EasySwoole\\Memcache\\Tests\\": "tests/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "Apache-2.0" + ], + "description": "Coroutine version of Memcache client", + "time": "2020-06-06T11:45:08+00:00" + }, + { + "name": "easyswoole/spl", + "version": "1.3.7", + "source": { + "type": "git", + "url": "https://github.com/easy-swoole/spl.git", + "reference": "b9d74dfbeb59086c51616ba09d7728cea7351d05" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/easy-swoole/spl/zipball/b9d74dfbeb59086c51616ba09d7728cea7351d05", + "reference": "b9d74dfbeb59086c51616ba09d7728cea7351d05", + "shasum": "" + }, + "require": { + "ext-json": "*", + "php": ">=7.1.0" + }, + "require-dev": { + "easyswoole/phpunit": "^1.0", + "easyswoole/swoole-ide-helper": "^1.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "EasySwoole\\Spl\\": "src/", + "EasySwoole\\Spl\\Test\\": "test/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "Apache-2.0" + ], + "authors": [ + { + "name": "YF", + "email": "291323003@qq.com" + } + ], + "description": "php stander lib", + "homepage": "https://www.easyswoole.com/", + "keywords": [ + "async", + "easyswoole", + "framework", + "swoole" + ], + "time": "2020-04-05T15:50:30+00:00" + }, { "name": "egroupware/activesync", "version": "dev-master", @@ -1157,6 +1241,46 @@ "homepage": "https://www.egroupware.org/", "time": "2020-02-28T18:36:19+00:00" }, + { + "name": "egroupware/swoolepush", + "version": "dev-master", + "source": { + "type": "git", + "url": "https://github.com/EGroupware/swoolepush.git", + "reference": "b8c6df911d3385d6b41d73ccff5d4ea6b172d0da" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/EGroupware/swoolepush/zipball/b8c6df911d3385d6b41d73ccff5d4ea6b172d0da", + "reference": "b8c6df911d3385d6b41d73ccff5d4ea6b172d0da", + "shasum": "" + }, + "require": { + "easyswoole/memcache": "^1.0" + }, + "require-dev": { + "eaglewu/swoole-ide-helper": "dev-english" + }, + "type": "egroupware-app", + "autoload": { + "psr-4": { + "EGroupware\\SwoolePush\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "GPL-2.0-or-later" + ], + "authors": [ + { + "name": "Ralf Becker", + "email": "rb@egroupware.org" + } + ], + "description": "EGroupware push server using Swoole", + "homepage": "https://www.egroupware.org/", + "time": "2020-06-13T13:05:42+00:00" + }, { "name": "egroupware/tracker", "version": "dev-master", @@ -8920,6 +9044,7 @@ "egroupware/registration": 20, "egroupware/rocketchat": 20, "egroupware/status": 20, + "egroupware/swoolepush": 20, "egroupware/tracker": 20 }, "prefer-stable": true, diff --git a/doc/docker/development/docker-compose.yml b/doc/docker/development/docker-compose.yml index 37ddf7d0f5..5a292c2ad4 100644 --- a/doc/docker/development/docker-compose.yml +++ b/doc/docker/development/docker-compose.yml @@ -25,6 +25,8 @@ volumes: type: none o: bind device: $PWD/sources/egroupware/swoolepush + # volume to store config.inc.php file / token shared between egroupware and push container + push-config: # collabora-config collabora-config: driver_opts: @@ -66,6 +68,7 @@ services: - data:/var/lib/egroupware - sessions:/var/lib/php/sessions - cache:/root + - push-config:/var/lib/egroupware-push # if you want to use the host database: # 1. comment out the whole db service below AND # 2. set EGW_DB_HOST=localhost AND @@ -161,6 +164,7 @@ services: volumes: - sources-push:/var/www - sessions:/var/lib/php/sessions + - push-config:/var/lib/egroupware-push container_name: egroupware-push # automatic updates of all containers daily at 4am diff --git a/doc/docker/docker-compose.yml b/doc/docker/docker-compose.yml index b29385d037..6ea4f9258f 100644 --- a/doc/docker/docker-compose.yml +++ b/doc/docker/docker-compose.yml @@ -20,6 +20,14 @@ volumes: # device: /usr/share/egroupware # #device: $PWD/extra # collabora-config + # sources for push server, swoolpush subdirectory of egroupware + sources-push: + driver_opts: + type: none + o: bind + device: $PWD/sources/egroupware/swoolepush + # volume to store config.inc.php file / token shared between egroupware and push container + push-config: collabora-config: driver_opts: type: none diff --git a/doc/docker/nginx.conf b/doc/docker/nginx.conf index 28c5ea3389..4207eabdd8 100644 --- a/doc/docker/nginx.conf +++ b/doc/docker/nginx.conf @@ -70,6 +70,16 @@ server { } } + # push-server + location /egroupware/push { + proxy_read_timeout 3600; + proxy_http_version 1.1; + proxy_set_header Host $http_host; + proxy_set_header Upgrade $http_upgrade; + proxy_set_header Connection "Upgrade"; + proxy_pass http://push:9501; + } + # PHP in docroot #location ~ \.php { # fastcgi_pass fpm;