Where does "ejabberdapi" comes from?
I built an image for arm. The image works but I want to also compile ejabberdapi.
I thought it would be https://github.com/processone/ejabberd-api so I compiled it and injected it in the image in another stage of the multi-stage build... It works fine.
But the command line switches does not match the examples in the docker README:
$ ~/bin ./ejabberdapi register --endpoint=http://127.0.0.1:5280/ --jid=admin@localhost --password=passw0rd
ejabberdapi: error: unknown long flag '--endpoint', try --help
$ ~/bin ./ejabberdapi register --jid=admin@localhost --password=passw0rd
ejabberdapi: error: could not load token file ".ejabberd-oauth.json": open .ejabberd-oauth.json: no such file or directory
I want to also compile ejabberdapi. I thought it would be https://github.com/processone/ejabberd-api
Well, the ejabberdapi binary included here should be obtained from https://github.com/processone/ejabberd-api and compiled with
go get -v github.com/processone/ejabberd-api/cmd/ejabberd
But the command line switches does not match the examples in the docker README:
I see that the endpoint option is placed as an app option, instead of token option. That was changed in https://github.com/processone/ejabberd-api/commit/b52950338cab65a48cc7be48242531eb4bcfc867
Compare the results when getting all the configurable options with --help-long. I get this after compiling it:
$ ./ejabberd --help-long
usage: ejabberd [<flags>] <command> [<args> ...]
A command-line front-end for ejabberd server API.
Flags:
--help Show context-sensitive help (also try --help-long and --help-man).
--version Show application version.
-f, --file=".ejabberd-oauth.json"
OAuth token JSON file.
--json JSON formatted output
Commands:
help [<command>...]
Show help.
token --jid=JID [<flags>]
Request an OAuth token.
-j, --jid=JID JID of the user to generate token for.
-p, --password=PASSWORD Password to use to retrieve user token.
-P, --prompt Prompt for password.
-s, --scope="sasl_auth" Comma separated list of scope to associate to token
-t, --ttl=8760h Time before token expiration. Valid unit time are second (s), minutes (m), hours (h)
-e, --endpoint="http://localhost:5281/"
ejabberd API endpoint.
--oauth-url="/oauth/" Oauth suffix for oauth endpoint.
stats <name>
Get ejabberd statistics.
register --jid=JID --password=PASSWORD
Create a new user.
-j, --jid=JID JID of the user to create.
-p, --password=PASSWORD Password to set for created user.
user [<flags>] <operation>
Operations to perform on users.
-j, --jid=JID JID of the user to perform operation on.
offline [<flags>] <operation>
Operations to perform on offline store.
-j, --jid=JID JID of the user to perform operation on, if different from token owner
call --name=NAME [<flags>]
Call a command on ejabberd server, using your token credentials.
--data-file=DATA-FILE File with JSON data to send to ejabberd. You can also use /dev/stdin
--data=DATA File with JSON data to send to ejabberd. Omit to read from STDIN
-n, --name=NAME Name of command on server
-a, --admin Call as admin
Since this recent PR, the ejabberdapi binary is not included in the docker-ejabberd git repository. Instead, that binary is compiled when the container image is being built.