PHPackages                             egroupware/swoolepush - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [HTTP &amp; Networking](/categories/http)
4. /
5. egroupware/swoolepush

ActiveEgroupware-app[HTTP &amp; Networking](/categories/http)

egroupware/swoolepush
=====================

EGroupware push server using Swoole

26.3.20260316(3mo ago)218.6k[1 issues](https://github.com/EGroupware/swoolepush/issues)1GPL-2.0-or-laterPHP

Since Jun 13Pushed 2mo ago2 watchersCompare

[ Source](https://github.com/EGroupware/swoolepush)[ Packagist](https://packagist.org/packages/egroupware/swoolepush)[ Docs](https://www.egroupware.org/)[ RSS](/packages/egroupware-swoolepush/feed)WikiDiscussions master Synced 1mo ago

READMEChangelogDependencies (28)Versions (102)Used By (1)

Push server for EGroupware based on PHP Swoole extension
========================================================

[](#push-server-for-egroupware-based-on-php-swoole-extension)

Open tasks:
-----------

[](#open-tasks)

- check session matches HTTP host / instance AND session is not anonymous
- rotate token by async job and push new tokens to active sessions
- require Bearer token to authorize requests / send push messages
- check sessionid cookie when client opens a websocket connection

Installation instructions
-------------------------

[](#installation-instructions)

> Most easy installation is the one comming with the [container based development system](https://github.com/EGroupware/egroupware/tree/master/doc/docker/development).

To install EGroupwares push server for a regular webserver running on the host follow these instructions:

```
cd /path/to/egroupware
git clone git@github.com:EGroupware/swoolpush.git
cd swoolpush
docker run --rm -it -v $(pwd):/var/www -v /var/lib/php/sessions:/var/lib/php/sessions -p9501:9501 phpswoole/swoole

```

> You need to adapt the session-directory, if you are not using Ubuntu.

Then visit setup and install swoolpush app (no run rights for users neccessary).

You need to proxy the /push URL into the container, eg. for Apache

```

    Order allow,deny
    Allow from all

    RewriteEngine On
    RewriteCond %{HTTP:Upgrade} =websocket [NC]
    RewriteRule /var/www/(.*)           ws://localhost:9501/$1 [P,L]
    RewriteCond %{HTTP:Upgrade} !=websocket [NC]
    RewriteRule /var/www/(.*)           http://localhost:9501/$1 [P,L]

    ProxyPreserveHost On
    ProxyPassReverse http://localhost:9501

```

> You need to change the above /var/www, in case you use a different document root.

eg. for Nginx

```
location  /egroupware/push {
                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://localhost:9501;
        }

```

Send a test-message
-------------------

[](#send-a-test-message)

You can get a token from the server output, when a client connects.

```
curl -i -H 'Content-Type: application/json' -X POST 'https://boulder.egroupware.org/egroupware/push?token=' \
  -d '{"type":"message","data":{"message":"Hi ;)","type":"notice"}}'

```

> Remember you need to restart the Docker container, when you make changes to the server!

###  Health Score

50

—

FairBetter than 96% of packages

Maintenance74

Regular maintenance activity

Popularity27

Limited adoption so far

Community15

Small or concentrated contributor base

Maturity71

Established project with proven stability

 Bus Factor1

Top contributor holds 92.8% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~21 days

Recently: every ~0 days

Total

99

Last Release

108d ago

Major Versions

22.1.20220920 → 23.1.202302102022-11-21

21.1.20221202 → 23.1.202305032023-02-28

23.1.20251021 → 26.0.202512162025-10-25

23.1.x-dev → 26.0.202512082025-10-28

23.1.20260131 → 26.1.202601302026-01-30

### Community

Maintainers

![](https://www.gravatar.com/avatar/85a8407098a44193698887e739a263c1623a169548b3867103015d2b3c9eb78d?d=identicon)[ralfbecker](/maintainers/ralfbecker)

---

Top Contributors

[![ralfbecker](https://avatars.githubusercontent.com/u/972180?v=4)](https://github.com/ralfbecker "ralfbecker (64 commits)")[![nathangray](https://avatars.githubusercontent.com/u/10407710?v=4)](https://github.com/nathangray "nathangray (3 commits)")[![hnategh](https://avatars.githubusercontent.com/u/9461589?v=4)](https://github.com/hnategh "hnategh (2 commits)")

### Embed Badge

![Health badge](/badges/egroupware-swoolepush/health.svg)

```
[![Health](https://phpackages.com/badges/egroupware-swoolepush/health.svg)](https://phpackages.com/packages/egroupware-swoolepush)
```

###  Alternatives

[egroupware/egroupware

EGroupware extends a classic groupware with an integrated CRM-system, a secure file-server and Collabora Online Office.

2891.6k](/packages/egroupware-egroupware)[friendsofsymfony/rest-bundle

This Bundle provides various tools to rapidly develop RESTful API's with Symfony

2.8k73.3M319](/packages/friendsofsymfony-rest-bundle)[php-http/discovery

Finds and installs PSR-7, PSR-17, PSR-18 and HTTPlug implementations

1.3k309.5M1.2k](/packages/php-http-discovery)[nyholm/psr7

A fast PHP7 implementation of PSR-7

1.3k235.4M2.4k](/packages/nyholm-psr7)[pusher/pusher-php-server

Library for interacting with the Pusher REST API

1.5k94.8M293](/packages/pusher-pusher-php-server)[spatie/crawler

Crawl all internal links found on a website

2.8k16.3M52](/packages/spatie-crawler)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
