Commit 1d65a6431c8505c80d85f0f6a364f92d6fa334b9

Authored by Rodrigo Souto
1 parent 98854f6f

chat: major upgrade on debian package

This upgrade includes:
  * New configuration format for Ejabberd 16.
  * Support for chat installation on multitenancy environments (not yet
    available for every environment, only one).
  * Fix on odbcinst configuration.
debian/control
... ... @@ -107,7 +107,7 @@ Description: free web-based platform for social networks (apache frontend)
107 107  
108 108 Package: noosfero-chat
109 109 Architecture: all
110   -Depends: noosfero (>= 1.2), ejabberd, odbc-postgresql, pidgin-data
  110 +Depends: noosfero (>= 1.5.1), ejabberd (>= 16.06), odbc-postgresql, pidgin-data
111 111 Description: free web-based platform for social networks (ejabberd based chat)
112 112 Noosfero is a web platform for social and solidarity economy networks with
113 113 blog, e-Porfolios, CMS, RSS, thematic discussion, events agenda and collective
... ...
debian/noosfero-chat.config 0 → 100644
... ... @@ -0,0 +1,18 @@
  1 +#!/bin/sh
  2 +
  3 +set -e
  4 +
  5 +. /usr/share/debconf/confmodule
  6 +if [ -f /usr/share/dbconfig-common/dpkg/config ]; then
  7 + # comma-separated, e.g. "mysql, pgsql, sqlite3"
  8 + dbc_dbtypes="pgsql"
  9 +
  10 + . /usr/share/dbconfig-common/dpkg/config
  11 +fi
  12 +
  13 +db_input high noosfero-chat/environment || true
  14 +db_go
  15 +
  16 +db_input high noosfero-chat/admin || true
  17 +db_go
  18 +
... ...
debian/noosfero-chat.install
1 1 debian/default/noosfero-chat etc/default
2   -util/chat/ejabberd.cfg etc/ejabberd
  2 +util/chat/ejabberd.yml etc/ejabberd
3 3 debian/update-noosfero-odbc usr/sbin
4 4 etc/security/limits.d/noosfero-chat.conf etc/security/limits.d
5 5 etc/pam.d/noosfero-chat etc/pam.d
... ...
debian/noosfero-chat.postinst
... ... @@ -4,18 +4,32 @@ set -e
4 4  
5 5 . /usr/share/debconf/confmodule
6 6  
7   -echo -n "Fetching noosfero domain ..."
8   -domain=$(noosfero-runner 'puts Environment.default.default_hostname(true)')
  7 +db_get noosfero-chat/environment
  8 +if [ ! -z "$RET" ]; then
  9 + environment="${RET}_production"
  10 +else
  11 + environment="production"
  12 +fi
  13 +
  14 +domain=$(noosfero-runner 'puts Environment.default.default_hostname(true)' $environment)
9 15 echo " [domain = $domain]"
10 16  
11   -ejabberd_config='/etc/ejabberd/ejabberd.cfg'
  17 +db_get noosfero-chat/admin
  18 +if [ ! -z "$RET" ]; then
  19 + admin="$RET@$domain"
  20 +else
  21 + admin="admin@$domain"
  22 +fi
  23 +echo " [admin = $admin]"
  24 +
  25 +ejabberd_config='/etc/ejabberd/ejabberd.yml'
12 26 if test -f $ejabberd_config; then
13   - sed -i "s/acl, *\([^,]*\), *{user, *\([^,]*\), *[^}]*/acl, \1, {user, \2, \"$domain\"/" /etc/ejabberd/ejabberd.cfg
14   - sed -i "s/hosts, *\[[^]]*/hosts, [\"$domain\"/" /etc/ejabberd/ejabberd.cfg
  27 + sed -i "s/HOST_DOMAIN/$domain/" /etc/ejabberd/ejabberd.yml
  28 + sed -i "s/ACL_ADMIN_ACCOUNT/$admin/" /etc/ejabberd/ejabberd.yml
15 29 fi
16 30  
17 31 echo -n 'Fetching noosfero database name ...'
18   -noosfero_database=$(noosfero-runner 'puts Environment.connection_config[:database]')
  32 +noosfero_database=$(noosfero-runner 'puts Environment.connection_config[:database]' $environment)
19 33 echo " [database = $noosfero_database]"
20 34  
21 35 echo 'Creating ejabberd schema ...'
... ... @@ -29,7 +43,7 @@ else
29 43 echo " => GRANT CREATE ON DATABASE $noosfero_database TO $noosfero_user;"
30 44 fi
31 45  
32   -su - $noosfero_user -c 'rails dbconsole production < /usr/share/noosfero/util/chat/postgresql/ejabberd.sql > /dev/null'
  46 +su - $noosfero_user -c "rails dbconsole $environment < /usr/share/noosfero/util/chat/postgresql/ejabberd.sql > /dev/null"
33 47  
34 48 if which update-noosfero-odbc &> /dev/null ; then
35 49 update-noosfero-odbc
... ... @@ -37,6 +51,7 @@ fi
37 51  
38 52 ejabberd_default='/etc/default/ejabberd'
39 53 noosfero_chat_default='/etc/default/noosfero-chat'
  54 +
40 55 if test -f $ejabberd_default; then
41 56 if ! cat $ejabberd_default | grep "^\. $noosfero_chat_default" > /dev/null ; then
42 57 echo 'Extending ejabberd defaults with noosfero-chat defaults ...'
... ...
debian/noosfero-chat.templates 0 → 100644
... ... @@ -0,0 +1,19 @@
  1 +Template: noosfero-chat/environment
  2 +Type: string
  3 +Description: Choose the environment in which the chat will be installed
  4 + Noosfero Chat currently does not support multitenancy environments. If your
  5 + system is using a multitenancy setup with multiple environments, you will need
  6 + to fill below the environment in which you want the chat installed
  7 + uses. For example, if your environment is 'social_production', you should
  8 + enter below 'social'.
  9 + .
  10 + If you are not using a multitenancy setup, you may leave this option blank, in
  11 + which case the used environment will be 'production'.
  12 +
  13 +Template: noosfero-chat/admin
  14 +Type: string
  15 +Description: Choose the admin of the chat
  16 + Enter the user identifier to define the user that will have administrator
  17 + privileges on the chat.
  18 + .
  19 + If you leave this option blank the user defined will be 'admin'.
... ...
util/chat/ejabberd.cfg
... ... @@ -1,74 +0,0 @@
1   -%%%
2   -%%% Noosfero ejabberd configuration file
3   -%%% This config must be in UTF-8 encoding
4   -%%%
5   -
6   -{acl, admin, {user, "admin", "mydomain.example.com"}}.
7   -{hosts, ["mydomain.example.com"]}.
8   -
9   -{loglevel, 4}.
10   -{listen,
11   - [
12   - {5222, ejabberd_c2s, [
13   - {access, c2s},
14   - {shaper, c2s_shaper},
15   - {max_stanza_size, 65536},
16   - starttls, {certfile, "/etc/ejabberd/ejabberd.pem"}
17   - ]},
18   - {5280, ejabberd_http, [
19   - http_bind,
20   - http_poll
21   - ]}
22   - ]}.
23   -{max_fsm_queue, 1000}.
24   -{auth_method, odbc}.
25   -{odbc_server, "DSN=PostgreSQLEjabberdNoosfero"}.
26   -{shaper, normal, {maxrate, 10000000}}.
27   -{shaper, fast, {maxrate, 50000}}.
28   -{acl, local, {user_regexp, ""}}.
29   -{access, max_user_sessions, [{10, all}]}.
30   -{access, local, [{allow, local}]}.
31   -{access, c2s, [{deny, blocked},
32   - {allow, all}]}.
33   -{access, c2s_shaper, [{none, admin},
34   - {normal, all}]}.
35   -{access, announce, [{allow, admin}]}.
36   -{access, configure, [{allow, admin}]}.
37   -{access, muc_admin, [{allow, admin}]}.
38   -{access, muc, [{allow, all}]}.
39   -{access, pubsub_createnode, [{allow, all}]}.
40   -{language, "pt"}.
41   -{modules,
42   - [
43   - {mod_adhoc, []},
44   - {mod_announce, [{access, announce}]}, % requires mod_adhoc
45   - {mod_caps, []},
46   - {mod_configure,[]}, % requires mod_adhoc
47   - {mod_disco, []},
48   - {mod_last, []},
49   - {mod_muc, [
50   - {access, muc},
51   - {access_create, muc},
52   - {access_persistent, muc},
53   - {access_admin, muc_admin},
54   - {max_users, 500},
55   - {default_room_options, [{anonymous, false}]}
56   - ]},
57   - {mod_privacy_odbc, []},
58   - {mod_private_odbc, []},
59   - {mod_proxy65, [
60   - {access, local},
61   - {shaper, c2s_shaper}
62   - ]},
63   - {mod_roster_odbc, []},
64   - {mod_stats, []},
65   - {mod_time, []},
66   - {mod_vcard, []},
67   - {mod_http_bind, []},
68   - {mod_version, []}
69   - ]}.
70   -
71   -%%% Local Variables:
72   -%%% mode: erlang
73   -%%% End:
74   -%%% vim: set filetype=erlang tabstop=8:
util/chat/ejabberd.yml 0 → 100644
... ... @@ -0,0 +1,694 @@
  1 +###
  2 +###' ejabberd configuration file
  3 +###
  4 +###
  5 +
  6 +### The parameters used in this configuration file are explained in more detail
  7 +### in the ejabberd Installation and Operation Guide.
  8 +### Please consult the Guide in case of doubts, it is included with
  9 +### your copy of ejabberd, and is also available online at
  10 +### http://www.process-one.net/en/ejabberd/docs/
  11 +
  12 +### The configuration file is written in YAML.
  13 +### Refer to http://en.wikipedia.org/wiki/YAML for the brief description.
  14 +### However, ejabberd treats different literals as different types:
  15 +###
  16 +### - unquoted or single-quoted strings. They are called "atoms".
  17 +### Example: dog, 'Jupiter', '3.14159', YELLOW
  18 +###
  19 +### - numeric literals. Example: 3, -45.0, .0
  20 +###
  21 +### - quoted or folded strings.
  22 +### Examples of quoted string: "Lizzard", "orange".
  23 +### Example of folded string:
  24 +### > Art thou not Romeo,
  25 +### and a Montague?
  26 +
  27 +###. =======
  28 +###' LOGGING
  29 +
  30 +##
  31 +## loglevel: Verbosity of log files generated by ejabberd.
  32 +## 0: No ejabberd log at all (not recommended)
  33 +## 1: Critical
  34 +## 2: Error
  35 +## 3: Warning
  36 +## 4: Info
  37 +## 5: Debug
  38 +##
  39 +loglevel: 4
  40 +
  41 +##
  42 +## rotation: Disable ejabberd's internal log rotation, as the Debian package
  43 +## uses logrotate(8).
  44 +log_rotate_size: 0
  45 +log_rotate_date: ""
  46 +
  47 +##
  48 +## overload protection: If you want to limit the number of messages per second
  49 +## allowed from error_logger, which is a good idea if you want to avoid a flood
  50 +## of messages when system is overloaded, you can set a limit.
  51 +## 100 is ejabberd's default.
  52 +log_rate_limit: 100
  53 +
  54 +##
  55 +## watchdog_admins: Only useful for developers: if an ejabberd process
  56 +## consumes a lot of memory, send live notifications to these XMPP
  57 +## accounts.
  58 +##
  59 +## watchdog_admins:
  60 +## - "bob@example.com"
  61 +
  62 +###. ===============
  63 +###' NODE PARAMETERS
  64 +
  65 +##
  66 +## net_ticktime: Specifies net_kernel tick time in seconds. This options must have
  67 +## identical value on all nodes, and in most cases shouldn't be changed at all from
  68 +## default value.
  69 +##
  70 +## net_ticktime: 60
  71 +
  72 +###. ================
  73 +###' SERVED HOSTNAMES
  74 +
  75 +##
  76 +## hosts: Domains served by ejabberd.
  77 +## You can define one or several, for example:
  78 +## hosts:
  79 +## - "example.net"
  80 +## - "example.com"
  81 +## - "example.org"
  82 +##
  83 +hosts:
  84 + - "HOST_DOMAIN"
  85 +
  86 +##
  87 +## route_subdomains: Delegate subdomains to other XMPP servers.
  88 +## For example, if this ejabberd serves example.org and you want
  89 +## to allow communication with an XMPP server called im.example.org.
  90 +##
  91 +## route_subdomains: s2s
  92 +
  93 +###. ===============
  94 +###' LISTENING PORTS
  95 +
  96 +##
  97 +## listen: The ports ejabberd will listen on, which service each is handled
  98 +## by and what options to start it with.
  99 +##
  100 +listen:
  101 + -
  102 + port: 5222
  103 + ip: "::"
  104 + module: ejabberd_c2s
  105 + ##
  106 + ## If TLS is compiled in and you installed a SSL
  107 + ## certificate, specify the full path to the
  108 + ## file and uncomment these lines:
  109 + ##
  110 + certfile: "/etc/ejabberd/ejabberd.pem"
  111 + starttls: true
  112 + ##
  113 + ## To enforce TLS encryption for client connections,
  114 + ## use this instead of the "starttls" option:
  115 + ##
  116 + ## starttls_required: true
  117 + ##
  118 + ## Custom OpenSSL options
  119 + ##
  120 + protocol_options:
  121 + - "no_sslv3"
  122 + ## - "no_tlsv1"
  123 + max_stanza_size: 65536
  124 + shaper: c2s_shaper
  125 + access: c2s
  126 + zlib: true
  127 + resend_on_timeout: if_offline
  128 + -
  129 + port: 5269
  130 + ip: "::"
  131 + module: ejabberd_s2s_in
  132 + ##
  133 + ## ejabberd_service: Interact with external components (transports, ...)
  134 + ##
  135 + ## -
  136 + ## port: 8888
  137 + ## module: ejabberd_service
  138 + ## access: all
  139 + ## shaper_rule: fast
  140 + ## ip: "127.0.0.1"
  141 + ## hosts:
  142 + ## "icq.example.org":
  143 + ## password: "secret"
  144 + ## "sms.example.org":
  145 + ## password: "secret"
  146 +
  147 + ##
  148 + ## ejabberd_stun: Handles STUN Binding requests
  149 + ##
  150 + ## -
  151 + ## port: 3478
  152 + ## transport: udp
  153 + ## module: ejabberd_stun
  154 +
  155 + ##
  156 + ## To handle XML-RPC requests that provide admin credentials:
  157 + ##
  158 + ## -
  159 + ## port: 4560
  160 + ## module: ejabberd_xmlrpc
  161 + ## access_commands: {}
  162 + -
  163 + port: 5280
  164 + ip: "::"
  165 + module: ejabberd_http
  166 + request_handlers:
  167 + "/websocket": ejabberd_http_ws
  168 + ## "/pub/archive": mod_http_fileserver
  169 + web_admin: true
  170 + http_bind: true
  171 + http_poll: true
  172 + ## register: true
  173 + ## captcha: true
  174 + ## tls: true
  175 + ## certfile: "/etc/ejabberd/ejabberd.pem"
  176 +
  177 +## Disabling digest-md5 SASL authentication. digest-md5 requires plain-text
  178 +## password storage (see auth_password_format option).
  179 +disable_sasl_mechanisms: "digest-md5"
  180 +
  181 +###. ==================
  182 +###' S2S GLOBAL OPTIONS
  183 +
  184 +##
  185 +## s2s_use_starttls: Enable STARTTLS + Dialback for S2S connections.
  186 +## Allowed values are: false optional required required_trusted
  187 +## You must specify a certificate file.
  188 +##
  189 +s2s_use_starttls: optional
  190 +
  191 +##
  192 +## s2s_certfile: Specify a certificate file.
  193 +##
  194 +s2s_certfile: "/etc/ejabberd/ejabberd.pem"
  195 +
  196 +## Custom OpenSSL options
  197 +##
  198 +s2s_protocol_options:
  199 + - "no_sslv3"
  200 +## - "no_tlsv1"
  201 +
  202 +##
  203 +## domain_certfile: Specify a different certificate for each served hostname.
  204 +##
  205 +## host_config:
  206 +## "example.org":
  207 +## domain_certfile: "/path/to/example_org.pem"
  208 +## "example.com":
  209 +## domain_certfile: "/path/to/example_com.pem"
  210 +
  211 +##
  212 +## S2S whitelist or blacklist
  213 +##
  214 +## Default s2s policy for undefined hosts.
  215 +##
  216 +## s2s_access: s2s
  217 +
  218 +##
  219 +## Outgoing S2S options
  220 +##
  221 +## Preferred address families (which to try first) and connect timeout
  222 +## in milliseconds.
  223 +##
  224 +## outgoing_s2s_families:
  225 +## - ipv4
  226 +## - ipv6
  227 +## outgoing_s2s_timeout: 10000
  228 +
  229 +###. ==============
  230 +###' AUTHENTICATION
  231 +
  232 +##
  233 +## auth_method: Method used to authenticate the users.
  234 +## The default method is the internal.
  235 +## If you want to use a different method,
  236 +## comment this line and enable the correct ones.
  237 +##
  238 +#auth_method: internal
  239 +
  240 +##
  241 +## Store the plain passwords or hashed for SCRAM:
  242 +## auth_password_format: plain
  243 +## auth_password_format: scram
  244 +##
  245 +## Define the FQDN if ejabberd doesn't detect it:
  246 +## fqdn: "server3.example.com"
  247 +
  248 +##
  249 +## Authentication using external script
  250 +## Make sure the script is executable by ejabberd.
  251 +##
  252 +## auth_method: external
  253 +## extauth_program: "/path/to/authentication/script"
  254 +
  255 +##
  256 +## Authentication using SQL
  257 +## Remember to setup a database in the next section.
  258 +##
  259 +auth_method: sql
  260 +
  261 +##
  262 +## Authentication using PAM
  263 +##
  264 +## auth_method: pam
  265 +## pam_service: "pamservicename"
  266 +
  267 +##
  268 +## Authentication using LDAP
  269 +##
  270 +## auth_method: ldap
  271 +##
  272 +## List of LDAP servers:
  273 +## ldap_servers:
  274 +## - "localhost"
  275 +##
  276 +## Encryption of connection to LDAP servers:
  277 +## ldap_encrypt: none
  278 +## ldap_encrypt: tls
  279 +##
  280 +## Port to connect to on LDAP servers:
  281 +## ldap_port: 389
  282 +## ldap_port: 636
  283 +##
  284 +## LDAP manager:
  285 +## ldap_rootdn: "dc=example,dc=com"
  286 +##
  287 +## Password of LDAP manager:
  288 +## ldap_password: "******"
  289 +##
  290 +## Search base of LDAP directory:
  291 +## ldap_base: "dc=example,dc=com"
  292 +##
  293 +## LDAP attribute that holds user ID:
  294 +## ldap_uids:
  295 +## - "mail": "%u@mail.example.org"
  296 +##
  297 +## LDAP filter:
  298 +## ldap_filter: "(objectClass=shadowAccount)"
  299 +
  300 +##
  301 +## Anonymous login support:
  302 +## auth_method: anonymous
  303 +## anonymous_protocol: sasl_anon | login_anon | both
  304 +## allow_multiple_connections: true | false
  305 +##
  306 +## host_config:
  307 +## "public.example.org":
  308 +## auth_method: anonymous
  309 +## allow_multiple_connections: false
  310 +## anonymous_protocol: sasl_anon
  311 +##
  312 +## To use both anonymous and internal authentication:
  313 +##
  314 +## host_config:
  315 +## "public.example.org":
  316 +## auth_method:
  317 +## - internal
  318 +## - anonymous
  319 +
  320 +###. ==============
  321 +###' DATABASE SETUP
  322 +
  323 +## ejabberd by default uses the internal Mnesia database,
  324 +## so you do not necessarily need this section.
  325 +## This section provides configuration examples in case
  326 +## you want to use other database backends.
  327 +## Please consult the ejabberd Guide for details on database creation.
  328 +
  329 +##
  330 +## MySQL server:
  331 +##
  332 +## sql_type: mysql
  333 +## sql_server: "server"
  334 +## sql_database: "database"
  335 +## sql_username: "username"
  336 +## sql_password: "password"
  337 +##
  338 +## If you want to specify the port:
  339 +## sql_port: 1234
  340 +
  341 +##
  342 +## PostgreSQL server:
  343 +##
  344 +## sql_type: pgsql
  345 +## sql_server: "server"
  346 +## sql_database: "database"
  347 +## sql_username: "username"
  348 +## sql_password: "password"
  349 +##
  350 +## If you want to specify the port:
  351 +## sql_port: 1234
  352 +##
  353 +## If you use PostgreSQL, have a large database, and need a
  354 +## faster but inexact replacement for "select count(*) from users"
  355 +##
  356 +## pgsql_users_number_estimate: true
  357 +
  358 +##
  359 +## SQLite:
  360 +##
  361 +## sql_type: sqlite
  362 +## sql_database: "/path/to/database.db"
  363 +
  364 +##
  365 +## ODBC compatible or MSSQL server:
  366 +##
  367 +sql_type: odbc
  368 +sql_server: "DSN=PostgreSQLEjabberdNoosfero"
  369 +
  370 +##
  371 +## Number of connections to open to the database for each virtual host
  372 +##
  373 +## sql_pool_size: 10
  374 +
  375 +##
  376 +## Interval to make a dummy SQL request to keep the connections to the
  377 +## database alive. Specify in seconds: for example 28800 means 8 hours
  378 +##
  379 +## sql_keepalive_interval: undefined
  380 +
  381 +###. ===============
  382 +###' TRAFFIC SHAPERS
  383 +
  384 +shaper:
  385 + ##
  386 + ## The "normal" shaper limits traffic speed to 1000 B/s
  387 + ##
  388 + normal: 1000
  389 +
  390 + ##
  391 + ## The "fast" shaper limits traffic speed to 50000 B/s
  392 + ##
  393 + fast: 50000
  394 +
  395 +##
  396 +## This option specifies the maximum number of elements in the queue
  397 +## of the FSM. Refer to the documentation for details.
  398 +##
  399 +max_fsm_queue: 1000
  400 +
  401 +###. ====================
  402 +###' ACCESS CONTROL LISTS
  403 +acl:
  404 + ##
  405 + ## The 'admin' ACL grants administrative privileges to XMPP accounts.
  406 + ## You can put here as many accounts as you want.
  407 + ##
  408 + admin:
  409 + user:
  410 + - "ACL_ADMIN_ACCOUNT"
  411 +
  412 + ##
  413 + ## Blocked users
  414 + ##
  415 + ## blocked:
  416 + ## user:
  417 + ## - "baduser@example.org"
  418 + ## - "test"
  419 +
  420 + ## Local users: don't modify this.
  421 + ##
  422 + local:
  423 + user_regexp: ""
  424 +
  425 + ##
  426 + ## More examples of ACLs
  427 + ##
  428 + ## jabberorg:
  429 + ## server:
  430 + ## - "jabber.org"
  431 + ## aleksey:
  432 + ## user:
  433 + ## - "aleksey@jabber.ru"
  434 + ## test:
  435 + ## user_regexp: "^test"
  436 + ## user_glob: "test*"
  437 +
  438 + ##
  439 + ## Loopback network
  440 + ##
  441 + loopback:
  442 + ip:
  443 + - "127.0.0.0/8"
  444 +
  445 + ##
  446 + ## Bad XMPP servers
  447 + ##
  448 + ## bad_servers:
  449 + ## server:
  450 + ## - "xmpp.zombie.org"
  451 + ## - "xmpp.spam.com"
  452 +
  453 +##
  454 +## Define specific ACLs in a virtual host.
  455 +##
  456 +## host_config:
  457 +## "localhost":
  458 +## acl:
  459 +## admin:
  460 +## user:
  461 +## - "bob-local@localhost"
  462 +
  463 +###. ============
  464 +###' SHAPER RULES
  465 +
  466 +shaper_rules:
  467 + ## Maximum number of simultaneous sessions allowed for a single user:
  468 + max_user_sessions: 10
  469 + ## Maximum number of offline messages that users can have:
  470 + max_user_offline_messages:
  471 + - 5000: admin
  472 + - 100
  473 + ## For C2S connections, all users except admins use the "normal" shaper
  474 + c2s_shaper:
  475 + - none: admin
  476 + - normal
  477 + ## All S2S connections use the "fast" shaper
  478 + s2s_shaper: fast
  479 +
  480 +###. ============
  481 +###' ACCESS RULES
  482 +access_rules:
  483 + ## This rule allows access only for local users:
  484 + local:
  485 + - allow: local
  486 + ## Only non-blocked users can use c2s connections:
  487 + c2s:
  488 + - deny: blocked
  489 + - allow
  490 + ## Only admins can send announcement messages:
  491 + announce:
  492 + - allow: admin
  493 + ## Only admins can use the configuration interface:
  494 + configure:
  495 + - allow: admin
  496 + muc_admin:
  497 + - allow: admin
  498 + ## Only accounts of the local ejabberd server can create rooms:
  499 + muc_create:
  500 + - allow: local
  501 + muc:
  502 + - allow
  503 + ## Only accounts on the local ejabberd server can create Pubsub nodes:
  504 + pubsub_createnode:
  505 + - allow: local
  506 + ## In-band registration allows registration of any possible username.
  507 + ## To disable in-band registration, replace 'allow' with 'deny'.
  508 + register:
  509 + - allow
  510 + ## Only allow to register from localhost
  511 + trusted_network:
  512 + - allow: loopback
  513 + ## Do not establish S2S connections with bad servers
  514 + ## s2s:
  515 + ## - deny:
  516 + ## - ip: "XXX.XXX.XXX.XXX/32"
  517 + ## - deny:
  518 + ## - ip: "XXX.XXX.XXX.XXX/32"
  519 + ## - allow
  520 +
  521 +## By default the frequency of account registrations from the same IP
  522 +## is limited to 1 account every 10 minutes. To disable, specify: infinity
  523 +## registration_timeout: 600
  524 +
  525 +##
  526 +## Define specific Access Rules in a virtual host.
  527 +##
  528 +## host_config:
  529 +## "localhost":
  530 +## access:
  531 +## c2s:
  532 +## - allow: admin
  533 +## - deny
  534 +## register:
  535 +## - deny
  536 +
  537 +###. ================
  538 +###' DEFAULT LANGUAGE
  539 +
  540 +##
  541 +## language: Default language used for server messages.
  542 +##
  543 +language: "pt"
  544 +
  545 +##
  546 +## Set a different default language in a virtual host.
  547 +##
  548 +## host_config:
  549 +## "localhost":
  550 +## language: "ru"
  551 +
  552 +###. =======
  553 +###' CAPTCHA
  554 +
  555 +##
  556 +## Full path to a script that generates the image.
  557 +##
  558 +## captcha_cmd: "/usr/share/ejabberd/captcha.sh"
  559 +
  560 +##
  561 +## Host for the URL and port where ejabberd listens for CAPTCHA requests.
  562 +##
  563 +## captcha_host: "example.org:5280"
  564 +
  565 +##
  566 +## Limit CAPTCHA calls per minute for JID/IP to avoid DoS.
  567 +##
  568 +## captcha_limit: 5
  569 +
  570 +###. =======
  571 +###' MODULES
  572 +
  573 +##
  574 +## Modules enabled in all ejabberd virtual hosts.
  575 +##
  576 +modules:
  577 + mod_adhoc: {}
  578 + mod_admin_extra: {}
  579 + mod_announce: # recommends mod_adhoc
  580 + access: announce
  581 + mod_blocking: {} # requires mod_privacy
  582 + mod_caps: {}
  583 + mod_carboncopy: {}
  584 + mod_client_state: {}
  585 + mod_configure: {} # requires mod_adhoc
  586 + mod_disco: {}
  587 + mod_echo: {}
  588 + mod_irc: {}
  589 + mod_http_bind: {}
  590 + ## mod_http_fileserver:
  591 + ## docroot: "/var/www"
  592 + ## accesslog: "/var/log/ejabberd/access.log"
  593 + mod_last: {}
  594 + mod_muc:
  595 + ## host: "conference.@HOST@"
  596 + access:
  597 + - allow
  598 + access_create: muc_create
  599 + access_persistent: muc_create
  600 + access_admin: muc_admin
  601 + default_room_options:
  602 + anonymous: false
  603 + ## mod_muc_log: {}
  604 + mod_muc_admin: {}
  605 + ## mod_multicast: {}
  606 + mod_offline:
  607 + access_max_user_messages: max_user_offline_messages
  608 + mod_ping: {}
  609 + ## mod_pres_counter:
  610 + ## count: 5
  611 + ## interval: 60
  612 + mod_privacy:
  613 + db_type: sql
  614 + mod_private:
  615 + db_type: sql
  616 + mod_proxy65:
  617 + access: local
  618 + shaper: c2s_shaper
  619 + mod_pubsub:
  620 + access_createnode: pubsub_createnode
  621 + ## reduces resource comsumption, but XEP incompliant
  622 + ignore_pep_from_offline: true
  623 + ## XEP compliant, but increases resource comsumption
  624 + ## ignore_pep_from_offline: false
  625 + last_item_cache: false
  626 + plugins:
  627 + - "flat"
  628 + - "hometree"
  629 + - "pep" # pep requires mod_caps
  630 + ## mod_register:
  631 + ##
  632 + ## Protect In-Band account registrations with CAPTCHA.
  633 + ##
  634 + ## captcha_protected: true
  635 + ##
  636 + ## Set the minimum informational entropy for passwords.
  637 + ##
  638 + ## password_strength: 32
  639 + ##
  640 + ## After successful registration, the user receives
  641 + ## a message with this subject and body.
  642 + ##
  643 + ## welcome_message:
  644 + ## subject: "Welcome!"
  645 + ## body: |-
  646 + ## Hi.
  647 + ## Welcome to this XMPP server.
  648 + ##
  649 + ## When a user registers, send a notification to
  650 + ## these XMPP accounts.
  651 + ##
  652 + ## registration_watchers:
  653 + ## - "admin1@example.org"
  654 + ##
  655 + ## Only clients in the server machine can register accounts
  656 + ##
  657 + ## ip_access: trusted_network
  658 + ##
  659 + ## Local c2s or remote s2s users cannot register accounts
  660 + ##
  661 + ## access_from: deny
  662 + ## access: register
  663 + mod_roster:
  664 + db_type: odbc
  665 + mod_shared_roster: {}
  666 + mod_stats: {}
  667 + mod_time: {}
  668 + mod_vcard:
  669 + search: false
  670 + mod_version: {}
  671 +
  672 +##
  673 +## Enable modules with custom options in a specific virtual host
  674 +##
  675 +## host_config:
  676 +## "localhost":
  677 +## modules:
  678 +## mod_echo:
  679 +## host: "mirror.localhost"
  680 +
  681 +##
  682 +## Enable modules management via ejabberdctl for installation and
  683 +## uninstallation of public/private contributed modules
  684 +## (enabled by default)
  685 +##
  686 +
  687 +allow_contrib_modules: true
  688 +
  689 +###.
  690 +###'
  691 +### Local Variables:
  692 +### mode: yaml
  693 +### End:
  694 +### vim: set filetype=yaml tabstop=8 foldmarker=###',###. foldmethod=marker:
... ...
util/chat/odbcinst.ini
1 1 [PostgreSQL Unicode]
2 2 Description = PostgreSQL ODBC driver (Unicode version)
3   -Driver = /usr/lib/odbc/psqlodbcw.so
4   -Setup = /usr/lib/odbc/libodbcpsqlS.so
  3 +Driver = psqlodbcw.so
  4 +Setup = libodbcpsqlS.so
5 5 Debug = 0
6 6 CommLog = 1
7 7 UsageCount = 3
... ...