diff docker_legacy/prosody/prosody.cfg.lua @ 164:29873a41aae1

docker: new docker files are now in sat main repos, this one is legacy
author Goffi <goffi@goffi.org>
date Fri, 01 Jan 2021 18:33:52 +0100
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/docker_legacy/prosody/prosody.cfg.lua	Fri Jan 01 18:33:52 2021 +0100
@@ -0,0 +1,180 @@
+-- Prosody configuration for SàT Docker image
+
+---------- Server-wide settings ----------
+
+-- we use environment variable to get the domain
+local domain = os.getenv("DOMAIN") or "libervia.int"
+-- default admin is admin@DOMAIN
+admins = { "admin@"..(domain) }
+
+-- Enable use of libevent for better performance under high load
+-- For more information see: http://prosody.im/doc/libevent
+--use_libevent = true;
+
+-- Documentation on modules can be found at: http://prosody.im/doc/modules
+modules_enabled = {
+		-- used by SàT
+
+		-- SàT PubSub
+				"delegation";
+				"privilege";
+
+		-- Not mandatory but neat
+				"ipcheck";
+				"http_upload";
+
+		-- 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.)
+				"vcard"; -- Allow users to set vCards
+
+		-- These are commented by default as they have a performance impact
+				--"privacy"; -- Support privacy lists
+				--"compression"; -- Stream compression (Debian: requires lua-zlib module to work)
+
+		-- Nice to have
+				"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
+				-- we don't want to allow self registering, this is managed by a SàT plugin
+				--"register"; -- Allow users to register on this server using a client and change passwords
+
+		-- 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
+
+		-- Other specific functionality
+				"posix"; -- POSIX functionality, sends server to background, enables syslog, etc.
+				--"groups"; -- Shared roster support
+				-- announce is usefull on a Libervia instance
+				"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.
+};
+
+-- to disable them then uncomment them here:
+modules_disabled = {
+		-- "offline"; -- Store offline messages
+		-- "c2s"; -- Handle client connections
+		-- "s2s"; -- Handle server-to-server connections
+};
+
+-- Disable account creation by default, for security
+-- For more information see http://prosody.im/doc/creating_accounts
+allow_registration = false;
+
+-- We keep foreground for Docker
+daemonize = false;
+
+-- Debian:
+--   Please, don't change this option since /var/run/prosody/
+--   is one of the few directories Prosody is allowed to write to
+--
+pidfile = "/var/run/prosody/prosody.pid";
+
+-- We want to use the certificat in /usr/share/sat
+ssl = {
+		key = "/usr/share/sat/certificates/libervia.key";
+		certificate = "/usr/share/sat/certificates/libervia.crt";
+}
+
+c2s_require_encryption = true
+
+-- Force certificate authentication for server-to-server connections?
+-- This provides ideal security, but requires servers you communicate
+-- with to support encryption AND present valid, trusted certificates.
+-- NOTE: Your version of LuaSec must support certificate verification!
+-- For more information see http://prosody.im/doc/s2s#security
+
+s2s_secure_auth = false
+
+-- Many servers don't support encryption or have invalid or self-signed
+-- certificates. You can list domains here that will not be required to
+-- authenticate using certificates. They will be authenticated using DNS.
+
+--s2s_insecure_domains = { "gmail.com" }
+
+-- 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" }
+
+-- 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 http://prosody.im/doc/modules/mod_auth_internal_hashed
+-- for information about using the hashed backend.
+
+authentication = "internal_plain"
+
+-- we listen to the world for components (but we do *NOT*
+-- expose the port! It's just for linked containers)
+component_interface="0.0.0.0"
+
+log = {
+	-- Log to files and console (change 'info' to 'debug' for debug logs):
+	info = "/var/log/prosody/prosody.log";
+	error = "/var/log/prosody/prosody.err";
+	info = "*console"; -- Log to the console, so "docker logs" will show them
+}
+
+VirtualHost (domain)
+	privileged_entities = {
+		["pubsub."..domain] = {
+			roster = "get";
+			message = "outgoing";
+		},
+	}
+
+	delegations = {
+		["urn:xmpp:mam:1"] = {
+			filtering = {"node"};
+			jid = "pubsub."..domain;
+		},
+		["http://jabber.org/protocol/pubsub"] = {
+			jid = "pubsub."..domain;
+		},
+	}
+
+------ Components ------
+
+---Set up a MUC (multi-user chat) room server on conference.example.com:
+Component ("chat."..domain) "muc"
+
+-- Set up a SOCKS5 bytestream proxy for server-proxied file transfers:
+Component ("proxy."..domain) "proxy65"
+
+-- 50 MiB limit for upload
+Component ("upload."..domain) "http_upload"
+	http_upload_file_size_limit = 50 * 1024 * 1024
+
+Component ("pubsub."..domain)
+	component_secret = os.getenv("SAT_PUBSUB_SECRET")
+	modules_enabled = {"privilege", "delegation"}
+
+Component ("salut."..domain)
+	component_secret = os.getenv("SAT_SALUT_SECRET")
+
+------ Additional config files ------
+-- For organizational purposes you may prefer to add VirtualHost and
+-- Component definitions in their own config files. This line includes
+-- all config files in /etc/prosody/conf.d/
+
+-- conf.d is not used in this Docker image,
+-- but if needed just uncomment the next line
+-- Include "conf.d/*.cfg.lua"