javadsaeid / drumkit

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Drumkit

Mercure hub, in PHP.

Work in progress

This project is currently a work in progress, here is a list of the rest to be done:

  • Active subscriptions events
  • Active subscriptions API
  • Security: JWS verifications (on all endpoints)
  • Security: CORS configuration (on all endpoints)
  • Configuration by file
  • Test suite
  • Docker image
  • Benchmark
  • Use new amphp version (with fibers)
  • Header Last-Event-ID https://mercure.rocks/spec#reconciliation
  • Redact help modal in UI
  • Fix all TODO remaining in the code
  • Fix dependencies to something stable

Prepare dev environment

make configure-dev
composer install
# optionally:
echo "127.0.0.1	mercure-router.local" | sudo tee --append /etc/host > /dev/null

Run it with:

php bin/main.php

Running in production

Read this: https://amphp.org/production

Note about the original mercure

To compare behavior with the official mercure distribution it may be interesting to run it. Here is the procedure to achieve this.

Running it:

MERCURE_PUBLISHER_JWT_KEY='!ChangeMe!' \ 
MERCURE_SUBSCRIBER_JWT_KEY='!ChangeMe!' \
./mercure run -config Caddyfile.dev
docker run \
    -e MERCURE_PUBLISHER_JWT_KEY='!ChangeThisMercureHubJWTSecretKey!' \                                               
    -e MERCURE_SUBSCRIBER_JWT_KEY='!ChangeThisMercureHubJWTSecretKey!' \              
    -p 80:80 \                                                
    -p 443:443 \
    dunglas/mercure caddy run -config /etc/caddy/Caddyfile.dev

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 and so we may break any of the previous statement on major version learn more in the CHANGELOG.md file provided as well.

About


Languages

Language:PHP 72.4%Language:HTML 27.1%Language:Makefile 0.5%