You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

74 lines
2.3 KiB

  1. # Building go-neb
  2. Go-neb is built using `gb` (https://getgb.io/). To build go-neb:
  3. ```bash
  4. # Install gb
  5. go get github.com/constabulary/gb/...
  6. # Clone the go-neb repository
  7. git clone https://github.com/matrix-org/go-neb
  8. cd go-neb
  9. # Build go-neb
  10. gb build github.com/matrix-org/go-neb
  11. ```
  12. # Running go-neb
  13. Go-neb uses environment variables to configure its database and bind address.
  14. To run go-neb:
  15. BIND_ADDRESS=:4050 DATABASE_TYPE=sqlite3 DATABASE_URL=go-neb.db bin/go-neb
  16. Go-neb needs to connect as a matrix user to receive messages. Go-neb can listen
  17. for messages as multiple matrix users. The users are configured using an
  18. HTTP API and the config is stored in the database. Go-neb will automatically
  19. start syncing matrix messages when the user is configured. To create a user:
  20. curl -X POST localhost:4050/admin/configureClient --data-binary '{
  21. "UserID": "@goneb:localhost:8448",
  22. "HomeserverURL": "http://localhost:8008",
  23. "AccessToken": "<access_token>"
  24. }'
  25. {
  26. "OldClient": {},
  27. "NewClient": {
  28. "UserID": "@goneb:localhost:8448",
  29. "HomeserverURL": "http://localhost:8008",
  30. "AccessToken": "<access_token>"
  31. }
  32. }
  33. Services in go-neb listen for messages in particular rooms using a given matrix
  34. user. Services are configured using an HTTP API and the config is stored in the
  35. database. Services use one of the matrix users configured on go-neb to receive
  36. matrix messages. Each service is configured to listen for messages in a set
  37. of rooms. Go-neb will automatically join the service to its rooms when it is
  38. configured. To start a service:
  39. curl -X POST localhost:4050/admin/configureService --data-binary '{
  40. "Type": "echo",
  41. "Id": "myserviceid",
  42. "Config": {
  43. "UserID": "@goneb:localhost:8448",
  44. "Rooms": ["!QkdpvTwGlrptdeViJx:localhost:8448"]
  45. }
  46. }'
  47. {
  48. "Type": "echo",
  49. "Id": "myserviceid",
  50. "OldConfig": {},
  51. "NewConfig": {
  52. "UserID": "@goneb:localhost:8448",
  53. "Rooms": ["!QkdpvTwGlrptdeViJx:localhost:8448"]
  54. }
  55. }
  56. Go-neb has a heartbeat listener that returns 200 OK so that load balancers can
  57. check that the server is still running.
  58. curl -X GET localhost:4050/test
  59. {}