PHPackages                             swag-industries/drumkit - 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. [API Development](/categories/api)
4. /
5. swag-industries/drumkit

ActiveProject[API Development](/categories/api)

swag-industries/drumkit
=======================

Mercure Hub, free, complete, in PHP.

v0.2.3(1y ago)851MITPHPPHP ^8.1CI passing

Since Nov 14Pushed 5mo ago2 watchersCompare

[ Source](https://github.com/swagindustries/drumkit)[ Packagist](https://packagist.org/packages/swag-industries/drumkit)[ RSS](/packages/swag-industries-drumkit/feed)WikiDiscussions main Synced 1mo ago

READMEChangelogDependencies (24)Versions (11)Used By (0)

DRUMKIT
=======

[](#drumkit)

Mercure hub, in PHP.

**Discover Mercure:** The best way to discover Mercure is to run the server in dev mode with active subcription. This enables all the features including a UI (you'll be redirected on) where you can quickly test mercure locally.

[![](docs/screenshot.jpeg)](docs/screenshot.jpeg)

How to run it
-------------

[](#how-to-run-it)

The easiest way is probably to run it in docker:

```
docker run \
    -e DRUMKIT_TLS_KEY=/ssl/mercure-router.local-key.pem \
    -e DRUMKIT_TLS_CERT=/ssl/mercure-router.local.pem \
    -e DRUMKIT_CORSORIGIN=mercure-router.local \
    -e DRUMKIT_SECURITY_PUBLISHER_KEY='!ChangeThisMercureHubJWTSecretKey!' \
    -e DRUMKIT_SECURITY_SUBSCRIBER_KEY='!ChangeThisMercureHubJWTSecretKey!' \
    -v ./ssl:/ssl \
    --rm -it nekdev/drumkit

```

Please notice that you must provide SSL certificates to run drumkit.

You may want to use mkcert to quickly generate certificates in local:

```
# Generate a certification and install it in your browsers
mkcert -install

# Create a certificate for mercure-router.local
# Change the value of the option corsOrigin to make it work with DRUMKIT
mkcert -cert-file ssl/mercure-router.local.pem -key-file ssl/mercure-router.local-key.pem "mercure-router.local"
```

Prepare dev environment
-----------------------

[](#prepare-dev-environment)

```
make configure-dev
composer install
# To avoid SSL issues, use this domain which is the one configured in the makefile
echo "127.0.0.1	mercure-router.local" | sudo tee --append /etc/host > /dev/null
```

Run it with:

```
./bin/drumkit \
    --tls-cert=ssl/mercure-router.local.pem \
    --tls-key=ssl/mercure-router.local-key.pem \
    --security-publisher-key='!ChangeThisMercureHubJWTSecretKey!' \
    --security-subscriber-key='!ChangeThisMercureHubJWTSecretKey!' \
    --corsOrigin=mercure-router.local \
    [--dev]
```

- TLS options are a requirement for HTTPS support (which is required for mercure)
- security keys are the password for the JWT crypto used by this hub
- CORS options are required to be used by a browser frontend (but optional if you are using it machine-to-machine)
- Dev option enables many possibilities:
    - You can access to the UI (by navigating to the client)
    - CORS options are preset by default to open to anything
    - The hub print extensive logging to the output

Then open  in your browser.

If you are running the command with `--dev` option, you should be redirected to

ℹ️ You can also use a file to configure DRUMKIT, see documentation for more information.

Roadmap for v1.0.0
------------------

[](#roadmap-for-v100)

- Support Redis as event storage
- Add no-ssl option (to make it possible to run it behinds a proxy easily)

Running in production
---------------------

[](#running-in-production)

Read this:  or use the docker implementation.

Backward compatibility promise
------------------------------

[](#backward-compatibility-promise)

This project is NOT designed to be used as a library. It provides a single node mercure server.

This is why **no backward compatibility is provided** on any class ATM.

But you can expect no behavior change in minor version, including:

- Configuration files format
- Command options

This project follows [semver](https://semver.org/) and so we may break any of the previous statement on major version learn more in the CHANGELOG.md file provided as well.

###  Health Score

35

—

LowBetter than 79% of packages

Maintenance58

Moderate activity, may be stable

Popularity10

Limited adoption so far

Community9

Small or concentrated contributor base

Maturity55

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% 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 ~2 days

Total

5

Last Release

559d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/a09048b58dc7118eea12d876580199cf6f4f328374a42501da6835bc191cd7c7?d=identicon)[Nek](/maintainers/Nek)

---

Top Contributors

[![Nek-](https://avatars.githubusercontent.com/u/972456?v=4)](https://github.com/Nek- "Nek- (103 commits)")

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/swag-industries-drumkit/health.svg)

```
[![Health](https://phpackages.com/badges/swag-industries-drumkit/health.svg)](https://phpackages.com/packages/swag-industries-drumkit)
```

###  Alternatives

[sylius/sylius

E-Commerce platform for PHP, based on Symfony framework.

8.4k5.6M647](/packages/sylius-sylius)[sulu/sulu

Core framework that implements the functionality of the Sulu content management system

1.3k1.3M152](/packages/sulu-sulu)[contao/core-bundle

Contao Open Source CMS

1231.6M2.3k](/packages/contao-core-bundle)[worksome/graphlint

A static analysis tool for GraphQL

13189.4k](/packages/worksome-graphlint)[open-dxp/opendxp

Content &amp; Product Management Framework (CMS/PIM)

7310.3k29](/packages/open-dxp-opendxp)

PHPackages © 2026

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