omegga 1.13.0 → 1.15.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (181) hide show
  1. package/CHANGELOG.md +33 -0
  2. package/README.md +63 -1040
  3. package/dist/brickadia/server.js +17 -0
  4. package/dist/brickadia/server.js.map +1 -1
  5. package/dist/cli/auth.js +1 -1
  6. package/dist/cli/auth.js.map +1 -1
  7. package/dist/cli/plugin.js +7 -5
  8. package/dist/cli/plugin.js.map +1 -1
  9. package/dist/cli/terminal.js +52 -31
  10. package/dist/cli/terminal.js.map +1 -1
  11. package/dist/config/index.js +94 -1
  12. package/dist/config/index.js.map +1 -1
  13. package/dist/config/types.js +43 -0
  14. package/dist/config/types.js.map +1 -1
  15. package/dist/db/nedbImport.js +94 -87
  16. package/dist/db/nedbImport.js.map +1 -1
  17. package/dist/index.js +2 -0
  18. package/dist/index.js.map +1 -1
  19. package/dist/logger.js.map +1 -1
  20. package/dist/main.js +14 -4
  21. package/dist/main.js.map +1 -1
  22. package/dist/metrics/collectors/brickadia.js +391 -0
  23. package/dist/metrics/collectors/brickadia.js.map +1 -0
  24. package/dist/metrics/collectors/host.js +92 -0
  25. package/dist/metrics/collectors/host.js.map +1 -0
  26. package/dist/metrics/collectors/omegga.js +136 -0
  27. package/dist/metrics/collectors/omegga.js.map +1 -0
  28. package/dist/metrics/collectors/process.js +112 -0
  29. package/dist/metrics/collectors/process.js.map +1 -0
  30. package/dist/metrics/errors.js +34 -0
  31. package/dist/metrics/errors.js.map +1 -0
  32. package/dist/metrics/index.js +197 -0
  33. package/dist/metrics/index.js.map +1 -0
  34. package/dist/metrics/plugin.js +306 -0
  35. package/dist/metrics/plugin.js.map +1 -0
  36. package/dist/metrics/registry.js +349 -0
  37. package/dist/metrics/registry.js.map +1 -0
  38. package/dist/metrics/render.js +77 -0
  39. package/dist/metrics/render.js.map +1 -0
  40. package/dist/omegga/auth.js +1 -1
  41. package/dist/omegga/auth.js.map +1 -1
  42. package/dist/omegga/commandInjector.js +30 -13
  43. package/dist/omegga/commandInjector.js.map +1 -1
  44. package/dist/omegga/matchers/chat.js +13 -1
  45. package/dist/omegga/matchers/chat.js.map +1 -1
  46. package/dist/omegga/matchers/index.js.map +1 -1
  47. package/dist/omegga/plugin/interface.js +16 -1
  48. package/dist/omegga/plugin/interface.js.map +1 -1
  49. package/dist/omegga/plugin/plugin_jsonrpc_stdio.js +12 -4
  50. package/dist/omegga/plugin/plugin_jsonrpc_stdio.js.map +1 -1
  51. package/dist/omegga/plugin/plugin_node_safe/proxyOmegga.js +1 -0
  52. package/dist/omegga/plugin/plugin_node_safe/proxyOmegga.js.map +1 -1
  53. package/dist/omegga/plugin/plugin_node_safe.js +16 -2
  54. package/dist/omegga/plugin/plugin_node_safe.js.map +1 -1
  55. package/dist/omegga/plugin/plugin_node_unsafe.js +9 -4
  56. package/dist/omegga/plugin/plugin_node_unsafe.js.map +1 -1
  57. package/dist/omegga/plugin.js +1 -1
  58. package/dist/omegga/plugin.js.map +1 -1
  59. package/dist/omegga/server.js +33 -14
  60. package/dist/omegga/server.js.map +1 -1
  61. package/dist/omegga/wrapper.js +8 -0
  62. package/dist/omegga/wrapper.js.map +1 -1
  63. package/dist/plugin.js +2 -1
  64. package/dist/plugin.js.map +1 -1
  65. package/dist/softconfig.js +26 -0
  66. package/dist/softconfig.js.map +1 -1
  67. package/dist/updater/steam.js +122 -58
  68. package/dist/updater/steam.js.map +1 -1
  69. package/dist/util/container.js +10 -0
  70. package/dist/util/container.js.map +1 -0
  71. package/dist/util/file.js +1 -1
  72. package/dist/util/file.js.map +1 -1
  73. package/dist/util/index.js +3 -1
  74. package/dist/util/index.js.map +1 -1
  75. package/dist/util/time.js.map +1 -1
  76. package/dist/util/wsl.js +4 -4
  77. package/dist/util/wsl.js.map +1 -1
  78. package/dist/webserver/backend/dashboards.js +601 -0
  79. package/dist/webserver/backend/dashboards.js.map +1 -0
  80. package/dist/webserver/backend/index.js +1 -1
  81. package/dist/webserver/backend/index.js.map +1 -1
  82. package/dist/webserver/backend/metrics.js +4 -90
  83. package/dist/webserver/backend/metrics.js.map +1 -1
  84. package/dist/webserver/backend/prometheus.js +124 -0
  85. package/dist/webserver/backend/prometheus.js.map +1 -0
  86. package/dist/webserver/backend/router/chat.js +1 -1
  87. package/dist/webserver/backend/router/chat.js.map +1 -1
  88. package/dist/webserver/backend/router/index.js +3 -1
  89. package/dist/webserver/backend/router/index.js.map +1 -1
  90. package/dist/webserver/backend/router/metrics.js +206 -0
  91. package/dist/webserver/backend/router/metrics.js.map +1 -0
  92. package/dist/webserver/backend/router/mfa.js.map +1 -1
  93. package/dist/webserver/backend/router/plugin.js +2 -2
  94. package/dist/webserver/backend/router/plugin.js.map +1 -1
  95. package/dist/webserver/backend/router/server.js +8 -7
  96. package/dist/webserver/backend/router/server.js.map +1 -1
  97. package/dist/webserver/backend/router/session.js +6 -0
  98. package/dist/webserver/backend/router/session.js.map +1 -1
  99. package/dist/webserver/backend/scopes.js +26 -0
  100. package/dist/webserver/backend/scopes.js.map +1 -1
  101. package/dist/webserver/backend/trpc.js +39 -16
  102. package/dist/webserver/backend/trpc.js.map +1 -1
  103. package/dist/webserver/backend/util.js +4 -4
  104. package/dist/webserver/backend/util.js.map +1 -1
  105. package/dist/worker.js +47 -5
  106. package/dist/worker.js.map +1 -1
  107. package/docs/CNAME +1 -0
  108. package/docs/README.md +43 -0
  109. package/docs/SUMMARY.md +40 -0
  110. package/docs/api/README.md +21 -0
  111. package/docs/api/events.md +109 -0
  112. package/docs/api/log-parsing.md +162 -0
  113. package/docs/api/omegga.md +785 -0
  114. package/docs/api/player.md +525 -0
  115. package/docs/api/plugin.md +284 -0
  116. package/docs/api/types.md +339 -0
  117. package/docs/config.md +75 -0
  118. package/docs/containers.md +105 -0
  119. package/docs/env.md +25 -0
  120. package/docs/guides/https.md +121 -0
  121. package/docs/guides/remote.md +81 -0
  122. package/docs/install/README.md +30 -0
  123. package/docs/install/linux.md +152 -0
  124. package/docs/install/wsl.md +40 -0
  125. package/docs/metrics.md +451 -0
  126. package/docs/plugins/README.md +280 -0
  127. package/docs/plugins/installing.md +41 -0
  128. package/docs/plugins/jsonrpc.md +258 -0
  129. package/docs/plugins/safe.md +136 -0
  130. package/docs/plugins/unsafe.md +68 -0
  131. package/docs/running.md +37 -0
  132. package/docs/troubleshooting.md +32 -0
  133. package/docs/uninstall.md +22 -0
  134. package/package.json +4 -2
  135. package/public/app.html +476 -6
  136. package/public/assets/IconWorld-DgiOjCuo.js +2 -0
  137. package/public/assets/IconWorld-DgiOjCuo.js.map +1 -0
  138. package/public/assets/IconWorldPlus-DJJNrT87.js +2 -0
  139. package/public/assets/IconWorldPlus-DJJNrT87.js.map +1 -0
  140. package/public/assets/app-4YRWLxdq.js +7 -0
  141. package/public/assets/app-4YRWLxdq.js.map +1 -0
  142. package/public/assets/index-X0t22aZ9.js +12 -0
  143. package/public/assets/{index-QURAMkP4.js.map → index-X0t22aZ9.js.map} +1 -1
  144. package/public/assets/shared/@components-L4cuUE3Y.js +2 -0
  145. package/public/assets/shared/@components-L4cuUE3Y.js.map +1 -0
  146. package/public/assets/shared/@hooks-DlZ8TOOZ.js +2 -0
  147. package/public/assets/shared/@hooks-DlZ8TOOZ.js.map +1 -0
  148. package/public/assets/shared/@tabler_icons-react-i-Q2c_A_.js +3 -0
  149. package/public/assets/shared/{@tabler_icons-react-B98xAreb.js.map → @tabler_icons-react-i-Q2c_A_.js.map} +1 -1
  150. package/public/auth.html +11 -1
  151. package/server/data/nedb-imported.marker +1 -0
  152. package/server/data/omegga-plugins.db +0 -0
  153. package/server/data/omegga-plugins.db-shm +0 -0
  154. package/server/data/omegga-plugins.db-wal +0 -0
  155. package/server/data/omegga-sessions.db +0 -0
  156. package/server/data/omegga-sessions.db-shm +0 -0
  157. package/server/data/omegga-sessions.db-wal +0 -0
  158. package/server/data/omegga.db +0 -0
  159. package/server/data/omegga.db-shm +0 -0
  160. package/server/data/omegga.db-wal +0 -0
  161. package/server/data/web_session_token +1 -0
  162. package/server/fakegame/Binaries/Linux/BrickadiaServer-Linux-Shipping +11 -0
  163. package/server/omegga-config.yml +7 -0
  164. package/templates/safe/omegga.plugin.js +9 -1
  165. package/templates/safe-ts/omegga.d.ts +111 -7
  166. package/templates/safe-ts/omegga.plugin.ts +11 -2
  167. package/templates/unsafe/omegga.main.js +2 -1
  168. package/tools/tag.sh +48 -0
  169. package/public/assets/IconWorld-CmdphDgp.js +0 -2
  170. package/public/assets/IconWorld-CmdphDgp.js.map +0 -1
  171. package/public/assets/IconWorldPlus-Bzt4-NTF.js +0 -2
  172. package/public/assets/IconWorldPlus-Bzt4-NTF.js.map +0 -1
  173. package/public/assets/app-kNLgsOPx.js +0 -7
  174. package/public/assets/app-kNLgsOPx.js.map +0 -1
  175. package/public/assets/index-QURAMkP4.js +0 -12
  176. package/public/assets/shared/@components--CUpATJw.js +0 -2
  177. package/public/assets/shared/@components--CUpATJw.js.map +0 -1
  178. package/public/assets/shared/@hooks-CBm94p6G.js +0 -2
  179. package/public/assets/shared/@hooks-CBm94p6G.js.map +0 -1
  180. package/public/assets/shared/@tabler_icons-react-B98xAreb.js +0 -3
  181. /package/{doc → docs}/permissions.md +0 -0
package/CHANGELOG.md CHANGED
@@ -2,6 +2,39 @@
2
2
 
3
3
  ## Latest
4
4
 
5
+ ## 1.15.0 - 2026-08-31
6
+
7
+ A Prometheus metrics endpoint, dashboards for it in the web UI, and the README split into a documentation site.
8
+
9
+ - Add a `ban` event with the name, kicker, reason, and duration
10
+ - Plugins: `getServerStatus` reports `maxPlayers` and a generic `stats` record of every integer line in the status header
11
+ - SteamCMD update checks and downloads no longer block the event loop
12
+
13
+ ### Metrics
14
+
15
+ - Add a Prometheus scrape endpoint, off by default (`metrics.enabled`), serving game, omegga, and host metrics on its own bind/port/path. Unauthenticated unless `metrics.token` is set
16
+ - Plugins: Add a `metrics` constructor argument with counters, gauges, and histograms, exported as `omegga_plugin_<plugin>_<metric>`
17
+ - Web UI: Add a Metrics tab with players, server, plugins, and host dashboards, read out of a Prometheus that scrapes omegga (`metrics.prometheus.*`), each with its own permission
18
+ - Add `METRICS_ENABLED`, `METRICS_BIND`, `METRICS_PORT`, and `METRICS_PROMETHEUS_*` environment overrides
19
+
20
+ ### Docs
21
+
22
+ - Split the README into `docs/`, fold in the wiki, and publish it as an mdbook at https://omegga.brickadia.dev
23
+ - API pages are generated from the TypeScript declarations by `npm run docs:api`
24
+ - CI: Deploy the book to GitHub Pages on pushes to master; `just mdbook` builds it locally
25
+
26
+ ## 1.14.0 - 2026-08-28
27
+
28
+ - Add `omegga.binaryPath`: the directory containing the game server binary
29
+ - Fix Ctrl+C hanging Omegga in an endless `readline was closed` error loop instead of shutting down
30
+ - Fix terminal logs, launcher download progress, and plugin install progress crashing when stdout is not a TTY (piped output, `docker run` without `-t`)
31
+ - Pressing Ctrl+C a second time while shutting down force closes Omegga
32
+ - `OMEGGA_PORT` and `BRICKADIA_PORT` now override the ports in an existing config, not just when one is created
33
+ - Point the hosting token prompt at https://brickadia.com/account/tokens
34
+ - The update notice says to pull a new image when omegga is running in a container, instead of `npm i -g omegga`
35
+ - Add a `Dockerfile`: steamcmd base, node from nvm, runs unprivileged with PUID/PGID remapping; builds this repo by default, or `--target npm --build-arg OMEGGA_VERSION=x.y.z` for a release off npm
36
+ - CI: publish the image to `ghcr.io/brickadia-community/omegga` on `v*` tags (or manually), tagged by semver
37
+
5
38
  ## 1.13.0 - 2026-08-10
6
39
 
7
40
  - Add `server.remoteFiles` config (default `true`); when `false`, the server launches with `-NoRemoteFileAccess`