Skip to content

flarum/realtime has no admin-facing documentation #593

Description

@karl-bullock

flarum/realtime is bundled in 2.0, but there is nothing on docs.flarum.org that tells an admin how to run it. Unlike the other bundled extensions it is not something you simply enable: it needs a long-running daemon and a queue worker, so enabling it without setting those up leaves a forum with a feature that silently does not work.

What exists today

  • extend/realtime.md documents the Realtime extender, for extension developers.
  • The Bundled Extensions sidebar category contains exactly one page, extensions/audit.
  • Outside that developer page, the docs barely mention realtime at all, and console.md does not mention its commands.

What the extension's README documents that the site does not

The README is effectively a complete admin guide already, and none of it is published:

  • That it "contains a service you will need to install", needs an environment that can run processes continuously, and needs a queue (Redis recommended), so it "isn't likely applicable to anyone hosted on shared hosting environments".
  • php flarum realtime:serve -vvv --debug for testing, and production daemon setup with either supervisor (a /etc/supervisor/conf.d/realtime.conf example) or systemd (a flarum-realtime.service example).
  • The websocket block in config.php and every option in it, with defaults: server-host, server-port, js-client-host, js-client-port, js-client-secure, php-client-host, php-client-port, php-client-secure, php-client-timeout, app-key, app-secret, max-connections.
  • Running the socket encrypted by proxying the port with nginx, including the ordering requirement that the realtime include comes before the Flarum include.
  • That the daemon halts itself within 10 seconds when it sees an extension toggled, --ignore-extension-toggles to turn that off, and realtime:halt to force a restart from CI/CD.
  • The SendTriggerJob FAQ: raise the queue worker timeout (php flarum queue:work --timeout=360) or the job fails every time.

Two smaller things alongside it

  • console.md documents ten commands and does not include realtime:serve, realtime:halt or realtime:info. While there: it also omits avatars:backfill-variants, avatars:convert-to-webp, schema:dump, extension:enable, bisect, queue:pause, queue:resume, announcements:refresh and extensions:sync-abandoned.
  • The README's nginx snippet still points at vendor/blomstra/realtime/.nginx.conf. The package is flarum/realtime now and ships its own .nginx.conf, so that path looks like a leftover from before it was bundled and would not resolve for anyone following it.

Why this seems worth settling before 2.0 is final

Realtime is one of 2.0's headline features, and its deployment story (process supervision, a queue, TLS termination) is exactly the kind of thing admins will ask about on day one, and exactly the kind of thing where guessing produces a broken forum.

I am happy to write the page, but the shape is yours to decide rather than mine to assume: whether it belongs under Bundled Extensions or alongside scheduler.md and queue.md under Management, how much of the supervisor and systemd guidance should live on docs.flarum.org as opposed to staying in the README, and which deployment method you would rather recommend first. Say which you prefer and I will draft it.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions