-- Prosody XMPP Server Configuration ---------- Server-wide settings ---------- -- Settings in this section apply to the whole server and are the default settings -- for any virtual hosts admins = {"anael@im.cyberjinh.fr", "keepwatchingme@im.cyberjinh.fr" } -- Enable use of libevent for better performance under high load -- For more information see: https://prosody.im/doc/libevent --use_libevent = true plugin_paths = { "/usr/lib/prosody/modules/community-mod/prosody-modules" } -- This is the list of modules Prosody will load on startup. -- It looks for mod_modulename.lua in the plugins folder, so make sure that exists too. -- Documentation for bundled modules can be found at: https://prosody.im/doc/modules modules_enabled = { -- Generally required "roster"; -- Allow users to have a roster. Recommended ;) "saslauth"; -- Authentication for clients and servers. Recommended if you want to log in. "tls"; -- Add support for secure TLS on c2s/s2s connections "dialback"; -- s2s dialback support "disco"; -- Service discovery -- Not essential, but recommended "private"; -- Private XML storage (for room bookmarks, etc.) "profile"; -- Allow users to set vCards "csi_simple"; -- These are commented by default as they have a performance impact "blocklist"; --New module replacing mod_privacy -- Nice to have --"log_auth"; -- Logging d'IP dans les log en cas d'échec d'authentification "limit_auth"; -- Throttle authentication attempts with optional tarpit "version"; -- Replies to server version requests "uptime"; -- Report how long server has been running "time"; -- Let others know the time here on this server "ping"; -- Replies to XMPP pings with pongs "pep"; -- Enables users to publish their mood, activity, playing music and more "register"; -- Allow users to register on this server using a client and change passwords "carbons"; -- XEP-0280 : allowing users to maintain a shared and synchronized view of all conversations across all their online clients and devices. -- Admin interfaces "admin_adhoc"; -- Allows administration via an XMPP client that supports ad-hoc commands "admin_telnet"; -- Opens telnet console interface on localhost port 5582 -- HTTP modules "bosh"; -- Enable BOSH clients, aka "Jabber over HTTP" "http_files"; -- Serve static files from a directory over HTTP "websocket"; --"conversejs"; -- Other specific functionality "posix"; -- POSIX functionality, sends server to background, enables syslog, etc. --"groups"; -- Shared roster support "announce"; -- Send announcement to all online users --"welcome"; -- Welcome users who register accounts --"watchregistrations"; -- Alert admins of registrations "motd"; -- Send a message to users when they log in --"legacyauth"; -- Legacy authentication. Only used by some old clients and bots. "smacks"; -- XEP-0198: Reliability and fast reconnects for XMPP "cloud_notify"; -- XEP-0357: Cloud push notifications "mam"; -- XEP-0313 message archive management "mam_archive"; -- XEP-0136: Message Archiving for mod_mam "http"; -- Active HTTP -- "register_web"; -- Active registraion web page "strict_https"; -- "http_upload"; "webpresence"; "server_contact_info"; "block_registrations"; "pastebin"; "http_altconnect"; "bookmarks"; "turncredentials"; -- "external_services"; "block_strangers"; } -- These modules are auto-loaded, but should you want -- to disable them then uncomment them here: modules_disabled = { -- "offline"; -- Store offline messages -- "c2s"; -- Handle client connections -- "s2s"; -- Handle server-to-server connections -- "posix"; -- POSIX functionality, sends server to background, enables syslog, etc. } hsts_header = "max-age=31556952" turncredentials_host = "turn.im.cyberjinh.fr" turncredentials_secret = "secret" console_ports = { 5582 } --legacy_ssl_ports = { 5223 } http_ports = { 5280 } http_interfaces = { "*" } https_ports = { 5281 } https_interfaces = { "*" } ssl = { key = "/etc/prosody/certs/im.cyberjinh.fr/privkey.pem"; certificate = "/etc/prosody/certs/im.cyberjinh.fr/fullchain.pem"; } https_ssl = { key = "/etc/prosody/certs/im.cyberjinh.fr/privkey.pem"; certificate = "/etc/prosody/certs/im.cyberjinh.fr/fullchain.pem"; } contact_info = { abuse = { "xmpp:keepwatchingme@im.cyberjinh.fr", "https:cyberjinh.fr/contact.html" }; admin = { "xmpp:keepwatchingme@im.cyberjinh.fr", "https:cyberjinh.fr/contact.html" }; feedback = { "xmpp:keepwatchingme@im.cyberjinh.fr", "https:cyberjinh.fr/contact.html" }; support = { "xmpp:keepwatchingme@im.cyberjinh.fr", "https:cyberjinh.fr/contact.html" }; } consider_bosh_secure = true cross_domain_bosh = true cross_domain_websocket = { "https://im.cyberjinh.fr" }; consider_websocket_secure = true -- mod_limit_auth -- limit_auth_period = 30 limit_auth_max = 5 -- mod_smacks -- smacks_hibernation_time = 300 smacks_enabled_s2s = false smacks_max_unacked_stanzas = 0 smacks_max_ack_delay = 60 -- mod_cloud_notify -- push_notification_important_body = "Nouveau Message" -- Disable account creation by default, for security allow_registration = false --mod_block_registrations-- block_registrations_users = { "administrator", "admin", "hostmaster", "postmaster", "webmaster", "root", "xmpp", "anael" } block_registrations_require = "^[a-zA-Z0-9_.-]+$" -- Allow only simple ASCII characters in usernames c2s_require_encryption = true s2s_require_encryption = true s2s_secure_auth = true -- Some servers have invalid or self-signed certificates. You can list -- remote domains here that will not be required to authenticate using -- certificates. They will be authenticated using DNS instead, even -- when s2s_secure_auth is enabled. --s2s_insecure_domains = { "insecure.example" } -- Even if you leave s2s_secure_auth disabled, you can still require valid -- certificates for some domains by specifying a list here. --s2s_secure_domains = { "jabber.org" } -- Required for init scripts and prosodyctl pidfile = "/var/run/prosody/prosody.pid" -- Select the authentication backend to use. The 'internal' providers -- use Prosody's configured data storage to store the authentication data. -- To allow Prosody to offer secure authentication mechanisms to clients, the -- default provider stores passwords in plaintext. If you do not trust your -- server please see https://prosody.im/doc/modules/mod_auth_internal_hashed -- for information about using the hashed backend. authentication = "internal_hashed" -- Select the storage backend to use. By default Prosody uses flat files -- in its configured data directory, but it also supports more backends -- through modules. An "sql" backend is included by default, but requires -- additional dependencies. See https://prosody.im/doc/storage for more info. storage = "internal" -- Default is "internal" archive_store = "archive2"; -- the old data -- For the "sql" backend, you can uncomment *one* of the below to configure: --sql = { driver = "SQLite3", database = "prosody.sqlite" } -- Default. 'database' is the filename. --sql = { driver = "MySQL", database = "prosody", username = "prosody", password = "secret", host = "localhost" } --sql = { driver = "PostgreSQL", database = "prosody", username = "prosody", password = "secret", host = "localhost" } -- Archiving configuration -- If mod_mam is enabled, Prosody will store a copy of every message. This -- is used to synchronize conversations between multiple clients, even if -- they are offline. This setting controls how long Prosody will keep -- messages in the archive before removing them. archive_expires_after = "2w" -- Remove archived messages after 2 weeks max_archive_query_results = 20; -- archiving options, see https://prosody.im/doc/modules/mod_mam -- Logging configuration -- For advanced logging see https://prosody.im/doc/logging log = { -- info = "/var/log/prosody/prosody.log"; -- Change 'info' to 'debug' for verbose logging info = "/var/log/prosody/prosody.log"; error = "/var/log/prosody/prosody.err"; -- "*syslog"; -- Uncomment this for logging to syslog -- "*console"; -- Log to the console, useful for debugging with daemonize=false } -- Uncomment to enable statistics -- For more info see https://prosody.im/doc/statistics -- statistics = "internal" -- Certificates -- Every virtual host and component needs a certificate so that clients and -- servers can securely verify its identity. Prosody will automatically load -- certificates/keys from the directory specified here. -- For more information, including how to use 'prosodyctl' to auto-import certificates -- (from e.g. Let's Encrypt) see https://prosody.im/doc/certificates -- Location of directory to find certificates in (relative to main config file): certificates = "/etc/prosody/certs" ----------- Virtual hosts ----------- -- You need to add a VirtualHost entry for each domain you wish Prosody to serve. -- Settings under each VirtualHost entry apply *only* to that host. VirtualHost "im.cyberjinh.fr" http_host = "im.cyberjinh.fr" enabled = true; legacy_ssl_ports = { 5223 } -- http_external_url = "im.cyberjinh.fr" allow_registration = false; -- min_seconds_between_registrations = 3600 certificates = "/etc/prosody/certs/" ------ Components ------ -- You can specify components to add hosts that provide special services, -- like multi-user conferences, and transports. -- For more information on components, see http://prosody.im/doc/components ---Set up a MUC (multi-user chat) room server on conference.example.com: Component "conference.im.cyberjinh.fr" "muc" restrict_room_creation = "local" name = "Chatroom powered by you" modules_enabled = { "pastebin"; "muc_mam"; "vcard_muc" } muc_log_by_default = true muc_log_all_rooms = false muc_room_default_history_length = 30 muc_log_expires_after = "1w" muc_log_cleanup_interval = 4 * 60 * 60 muc_room_default_language = "fr" admins = { "anael@im.cyberjinh.fr", "keepwatchingme@im.cyberjinh.fr" } Component "pubsub.im.cyberjinh.fr" "pubsub" default_admin_affiliation = "owner" autocreate_on_publish = false admins = { "anael@im.cyberjinh.fr", "keepwatchingme@im.cyberjinh.fr" } -- Set up a SOCKS5 bytestream proxy for server-proxied file transfers: Component "proxy.im.cyberjinh.fr" "proxy65" ---Set up an external component (default component port is 5347) -- -- External components allow adding various services, such as gateways/ -- transports to other networks like ICQ, MSN and Yahoo. For more info -- see: http://prosody.im/doc/components#adding_an_external_component -- Component "upload.im.cyberjinh.fr" "http_upload" http_upload_expire_after = 60 * 60 * 24 * 7 http_upload_file_size_limit = 5242880 Component "irc.im.cyberjinh.fr" component_secret = "secret" ssl = { key = "/etc/prosody/certs/im.cyberjinh.fr/privkey.pem"; certificate = "/etc/prosody/certs/im.cyberjinh.fr/fullchain.pem"; }