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.

Mohammed Noureldin
  • 491
  • 1
  • 9
  • 24

1 Answers1

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"
Mohammed Noureldin
  • 491
  • 1
  • 9
  • 24