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.
flarum/realtimeis 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.mddocuments theRealtimeextender, for extension developers.extensions/audit.console.mddoes 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:
php flarum realtime:serve -vvv --debugfor testing, and production daemon setup with either supervisor (a/etc/supervisor/conf.d/realtime.confexample) or systemd (aflarum-realtime.serviceexample).websocketblock inconfig.phpand 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.--ignore-extension-togglesto turn that off, andrealtime:haltto force a restart from CI/CD.SendTriggerJobFAQ: raise the queue worker timeout (php flarum queue:work --timeout=360) or the job fails every time.Two smaller things alongside it
console.mddocuments ten commands and does not includerealtime:serve,realtime:haltorrealtime:info. While there: it also omitsavatars:backfill-variants,avatars:convert-to-webp,schema:dump,extension:enable,bisect,queue:pause,queue:resume,announcements:refreshandextensions:sync-abandoned.vendor/blomstra/realtime/.nginx.conf. The package isflarum/realtimenow 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.mdandqueue.mdunder 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.