0

For the last couple of hours I have been trying setting ejabberd server up. I built ejabberd from source becuase the package in ubuntu repository has a bug. Anyway after building ejabberd from the source, I added my FQDN "s1.noureldin.local" to my /etc/ejabberd/ejabberd.yml file.

.
.
##   - "example.org"
##
hosts:
  - "localhost"
  - "s1.noureldin.local"
##
## route_subdomains: Delegate subdomains to other XMPP servers.
.
.

and then I created a new user:

ejabberdctl register admin1 s1.noureldin.local P@s5W0rd

then I tried to connect to my xmpp server and it worked!

Now the PROBLEM comes when I try to give that new user administrator permissions, ejabberd cannot be started any more, and I always get syntax error in the log:

2016-07-12 12:00:10.733 [info] <0.7.0> Application lager started on node ejabberd@localhost
2016-07-12 12:00:10.977 [info] <0.7.0> Application crypto started on node ejabberd@localhost
2016-07-12 12:00:11.022 [info] <0.7.0> Application sasl started on node ejabberd@localhost
2016-07-12 12:00:11.084 [info] <0.7.0> Application asn1 started on node ejabberd@localhost
2016-07-12 12:00:11.084 [info] <0.7.0> Application public_key started on node ejabberd@localhost
2016-07-12 12:00:11.146 [info] <0.7.0> Application ssl started on node ejabberd@localhost
2016-07-12 12:00:11.171 [info] <0.7.0> Application fast_yaml started on node ejabberd@localhost
2016-07-12 12:00:11.198 [info] <0.7.0> Application fast_tls started on node ejabberd@localhost
2016-07-12 12:00:11.219 [info] <0.7.0> Application fast_xml started on node ejabberd@localhost
2016-07-12 12:00:11.231 [info] <0.7.0> Application stringprep started on node ejabberd@localhost
2016-07-12 12:00:11.245 [info] <0.7.0> Application cache_tab started on node ejabberd@localhost
2016-07-12 12:00:11.687 [info] <0.7.0> Application mnesia started on node ejabberd@localhost
2016-07-12 12:00:14.902 [info] <0.7.0> Application inets started on node ejabberd@localhost
2016-07-12 12:00:14.904 [error] <0.37.0>@ejabberd_config:get_plain_terms_file:257 Cannot load //etc/ejabberd/ejabberd.yml: Syntax error on line 423 at position 3: did not find expected key

Here is my ejabberd.yml, you can see all the syntaxes I tried but with no success:

.
.
.
max_fsm_queue: 1000

###.   ====================
###'   ACCESS CONTROL LISTS
acl:
  ##
  ## The 'admin' ACL grants administrative privileges to XMPP accounts.
  ## You can put here as many accounts as you want.
  ##
     admin:
       user:
       - "admin1@s1.noureldin.local"
  ######## I TRIED THESE AS WELL ########
  ##     - "admin1":"s1.noureldin.local"
  ##     - "admin1@s1.noureldin.local"
  ##
  ##   user: - "admin1@s1.noureldin.local"
  ##   - user: "admin1@s1.noureldin.local"

  ## Blocked users
  ##
  ## blocked:
  ##   user:
  ##     - "baduser@example.org"
  ##     - "test"

  ## Local users: don't modify this.
  ##
  local:
    user_regexp: ""

  ##
  ## More examples of ACLs
  ##
  ## jabberorg:
.
.
.

And when I recomment these lines out, it works again:

admin:
   user:
   - "admin1@s1.noureldin.local"

Could someone help me to solve that please? I searched online and in ejabberd doc, all peoples used the same syntax I used but that worked with them.

Thank you in advance.

0

OK I found the error. ejabberd.yml file is white spaces sensetive!

and every sub config MUST have TWO white spaces more that its parent, so my config will become:

acl:
  ##
  ## The 'admin' ACL grants administrative privileges to XMPP accounts.
  ## You can put here as many accounts as you want.
  ##
  admin:
    user:
      - "admin1@s1.noureldin.local"
  ##    - "aleksey@localhost"
  ##
  ## Blocked users

Or more clearly:

acl:   
  admin:
    user:
      - "admin1@s1.noureldin.local"
| improve this answer | |

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.