2016-09-08 11:34:42 +02:00
|
|
|
defmodule Ejabberd.ConfigFile do
|
|
|
|
use Ejabberd.Config
|
|
|
|
|
|
|
|
def start do
|
|
|
|
[loglevel: 4,
|
|
|
|
log_rotate_size: 10485760,
|
|
|
|
log_rotate_date: "",
|
|
|
|
log_rotate_count: 1,
|
|
|
|
log_rate_limit: 100,
|
|
|
|
auth_method: :internal,
|
|
|
|
max_fsm_queue: 1000,
|
|
|
|
language: "en",
|
|
|
|
allow_contrib_modules: true,
|
|
|
|
hosts: ["localhost"],
|
2019-04-12 10:40:46 +02:00
|
|
|
shaper: shaper(),
|
|
|
|
acl: acl(),
|
|
|
|
access: access()]
|
2016-09-08 11:34:42 +02:00
|
|
|
end
|
|
|
|
|
|
|
|
defp shaper do
|
|
|
|
[normal: 1000,
|
|
|
|
fast: 50000,
|
|
|
|
max_fsm_queue: 1000]
|
|
|
|
end
|
|
|
|
|
|
|
|
defp acl do
|
|
|
|
[local:
|
|
|
|
[user_regexp: "", loopback: [ip: "127.0.0.0/8"]]]
|
|
|
|
end
|
|
|
|
|
|
|
|
defp access do
|
|
|
|
[max_user_sessions: [all: 10],
|
|
|
|
max_user_offline_messages: [admin: 5000, all: 100],
|
|
|
|
local: [local: :allow],
|
|
|
|
c2s: [blocked: :deny, all: :allow],
|
|
|
|
c2s_shaper: [admin: :none, all: :normal],
|
|
|
|
s2s_shaper: [all: :fast],
|
|
|
|
announce: [admin: :allow],
|
|
|
|
configure: [admin: :allow],
|
|
|
|
muc_admin: [admin: :allow],
|
|
|
|
muc_create: [local: :allow],
|
|
|
|
muc: [all: :allow],
|
|
|
|
pubsub_createnode: [local: :allow],
|
|
|
|
register: [all: :allow],
|
|
|
|
trusted_network: [loopback: :allow]]
|
|
|
|
end
|
|
|
|
|
|
|
|
listen :ejabberd_c2s do
|
|
|
|
@opts [
|
|
|
|
port: 5222,
|
|
|
|
max_stanza_size: 65536,
|
|
|
|
shaper: :c2s_shaper,
|
|
|
|
access: :c2s]
|
|
|
|
end
|
|
|
|
|
|
|
|
listen :ejabberd_s2s_in do
|
|
|
|
@opts [port: 5269]
|
|
|
|
end
|
|
|
|
|
|
|
|
listen :ejabberd_http do
|
|
|
|
@opts [
|
|
|
|
port: 5280,
|
|
|
|
web_admin: true,
|
|
|
|
http_bind: true,
|
|
|
|
captcha: true]
|
|
|
|
end
|
|
|
|
|
|
|
|
module :mod_adhoc do
|
|
|
|
end
|
|
|
|
|
|
|
|
module :mod_announce do
|
|
|
|
@opts [access: :announce]
|
|
|
|
end
|
|
|
|
|
|
|
|
module :mod_blocking do
|
|
|
|
end
|
|
|
|
|
|
|
|
module :mod_caps do
|
|
|
|
end
|
|
|
|
|
|
|
|
module :mod_carboncopy do
|
|
|
|
end
|
|
|
|
|
|
|
|
module :mod_client_state do
|
|
|
|
@opts [
|
2017-09-06 13:48:33 +02:00
|
|
|
queue_chat_states: true,
|
2016-09-08 11:34:42 +02:00
|
|
|
queue_presence: false]
|
|
|
|
end
|
|
|
|
|
|
|
|
module :mod_configure do
|
|
|
|
end
|
|
|
|
|
|
|
|
module :mod_disco do
|
|
|
|
end
|
|
|
|
|
|
|
|
module :mod_http_bind do
|
|
|
|
end
|
|
|
|
|
|
|
|
module :mod_last do
|
|
|
|
end
|
|
|
|
|
|
|
|
module :mod_muc do
|
|
|
|
@opts [
|
|
|
|
access: :muc,
|
|
|
|
access_create: :muc_create,
|
|
|
|
access_persistent: :muc_create,
|
|
|
|
access_admin: :muc_admin]
|
|
|
|
end
|
|
|
|
|
|
|
|
module :mod_offline do
|
|
|
|
@opts [access_max_user_messages: :max_user_offline_messages]
|
|
|
|
end
|
|
|
|
|
|
|
|
module :mod_ping do
|
|
|
|
end
|
|
|
|
|
|
|
|
module :mod_privacy do
|
|
|
|
end
|
|
|
|
|
|
|
|
module :mod_private do
|
|
|
|
end
|
|
|
|
|
|
|
|
module :mod_pubsub do
|
|
|
|
@opts [
|
|
|
|
access_createnode: :pubsub_createnode,
|
|
|
|
ignore_pep_from_offline: true,
|
|
|
|
last_item_cache: true,
|
|
|
|
plugins: ["flat", "hometree", "pep"]]
|
|
|
|
end
|
|
|
|
|
|
|
|
module :mod_register do
|
|
|
|
@opts [welcome_message: [
|
|
|
|
subject: "Welcome!",
|
2019-04-12 10:40:46 +02:00
|
|
|
body: "Hi.\nWelcome to this XMPP Server"
|
|
|
|
],
|
2016-09-08 11:34:42 +02:00
|
|
|
ip_access: :trusted_network,
|
2019-04-12 10:40:46 +02:00
|
|
|
access: :register]
|
2016-09-08 11:34:42 +02:00
|
|
|
end
|
|
|
|
|
|
|
|
module :mod_roster do
|
|
|
|
end
|
|
|
|
|
|
|
|
module :mod_shared_roster do
|
|
|
|
end
|
|
|
|
|
|
|
|
module :mod_stats do
|
|
|
|
end
|
|
|
|
|
|
|
|
module :mod_time do
|
|
|
|
end
|
|
|
|
|
|
|
|
module :mod_version do
|
|
|
|
end
|
|
|
|
|
|
|
|
# Example of how to define a hook, called when the event
|
|
|
|
# specified is triggered.
|
|
|
|
#
|
|
|
|
# @event: Name of the event
|
|
|
|
# @opts: Params are optional. Available: :host and :priority.
|
|
|
|
# If missing, defaults are used. (host: :global | priority: 50)
|
|
|
|
# @callback Could be an anonymous function or a callback from a module,
|
|
|
|
# use the &ModuleName.function/arity format for that.
|
|
|
|
hook :register_user, [host: "localhost"], fn(user, server) ->
|
|
|
|
info("User registered: #{user} on #{server}")
|
|
|
|
end
|
|
|
|
end
|