Warning: preg_match(): Unknown modifier '-' in /home/akl1986/public_html/support/wp-content/plugins/redux-framework/redux-core/inc/extensions/metaboxes/class-redux-extension-metaboxes.php on line 783

Warning: preg_match(): Unknown modifier '-' in /home/akl1986/public_html/support/wp-content/plugins/redux-framework/redux-core/inc/extensions/metaboxes/class-redux-extension-metaboxes.php on line 783

Warning: preg_match(): Unknown modifier '-' in /home/akl1986/public_html/support/wp-content/plugins/redux-framework/redux-core/inc/extensions/metaboxes/class-redux-extension-metaboxes.php on line 783

Warning: preg_match(): Unknown modifier '-' in /home/akl1986/public_html/support/wp-content/plugins/redux-framework/redux-core/inc/extensions/metaboxes/class-redux-extension-metaboxes.php on line 783

Warning: preg_match(): Unknown modifier '-' in /home/akl1986/public_html/support/wp-content/plugins/redux-framework/redux-core/inc/extensions/metaboxes/class-redux-extension-metaboxes.php on line 783

Warning: preg_match(): Unknown modifier '-' in /home/akl1986/public_html/support/wp-content/plugins/redux-framework/redux-core/inc/extensions/metaboxes/class-redux-extension-metaboxes.php on line 783

Warning: preg_match(): Unknown modifier '-' in /home/akl1986/public_html/support/wp-content/plugins/redux-framework/redux-core/inc/extensions/metaboxes/class-redux-extension-metaboxes.php on line 783

Warning: preg_match(): Unknown modifier '-' in /home/akl1986/public_html/support/wp-content/plugins/redux-framework/redux-core/inc/extensions/metaboxes/class-redux-extension-metaboxes.php on line 783

Warning: Cannot modify header information - headers already sent by (output started at /home/akl1986/public_html/support/wp-content/plugins/redux-framework/redux-core/inc/extensions/metaboxes/class-redux-extension-metaboxes.php:783) in /home/akl1986/public_html/support/wp-includes/rest-api/class-wp-rest-server.php on line 1794

Warning: Cannot modify header information - headers already sent by (output started at /home/akl1986/public_html/support/wp-content/plugins/redux-framework/redux-core/inc/extensions/metaboxes/class-redux-extension-metaboxes.php:783) in /home/akl1986/public_html/support/wp-includes/rest-api/class-wp-rest-server.php on line 1794

Warning: Cannot modify header information - headers already sent by (output started at /home/akl1986/public_html/support/wp-content/plugins/redux-framework/redux-core/inc/extensions/metaboxes/class-redux-extension-metaboxes.php:783) in /home/akl1986/public_html/support/wp-includes/rest-api/class-wp-rest-server.php on line 1794

Warning: Cannot modify header information - headers already sent by (output started at /home/akl1986/public_html/support/wp-content/plugins/redux-framework/redux-core/inc/extensions/metaboxes/class-redux-extension-metaboxes.php:783) in /home/akl1986/public_html/support/wp-includes/rest-api/class-wp-rest-server.php on line 1794

Warning: Cannot modify header information - headers already sent by (output started at /home/akl1986/public_html/support/wp-content/plugins/redux-framework/redux-core/inc/extensions/metaboxes/class-redux-extension-metaboxes.php:783) in /home/akl1986/public_html/support/wp-includes/rest-api/class-wp-rest-server.php on line 1794

Warning: Cannot modify header information - headers already sent by (output started at /home/akl1986/public_html/support/wp-content/plugins/redux-framework/redux-core/inc/extensions/metaboxes/class-redux-extension-metaboxes.php:783) in /home/akl1986/public_html/support/wp-includes/rest-api/class-wp-rest-server.php on line 1794

Warning: Cannot modify header information - headers already sent by (output started at /home/akl1986/public_html/support/wp-content/plugins/redux-framework/redux-core/inc/extensions/metaboxes/class-redux-extension-metaboxes.php:783) in /home/akl1986/public_html/support/wp-includes/rest-api/class-wp-rest-server.php on line 1794

Warning: Cannot modify header information - headers already sent by (output started at /home/akl1986/public_html/support/wp-content/plugins/redux-framework/redux-core/inc/extensions/metaboxes/class-redux-extension-metaboxes.php:783) in /home/akl1986/public_html/support/wp-includes/rest-api/class-wp-rest-server.php on line 1794
{"id":2722,"date":"2019-12-11T00:36:33","date_gmt":"2019-12-11T00:36:33","guid":{"rendered":"https:\/\/support.aklwebhost.com\/?post_type=manual_kb&p=2722"},"modified":"2019-12-11T00:36:33","modified_gmt":"2019-12-11T00:36:33","slug":"setup-xmpp-server-with-prosody-and-freebsd","status":"publish","type":"manual_kb","link":"https:\/\/support.aklwebhost.com\/knowledgebase\/setup-xmpp-server-with-prosody-and-freebsd\/","title":{"rendered":"Setup XMPP Server With Prosody And FreeBSD"},"content":{"rendered":"

While\u00a0ejabberd<\/strong><\/span><\/a>\u00a0is very widespread, a competitor has gained a lot of popularity recently –\u00a0Prosody<\/strong><\/span><\/a>. This tutorial will show you how to set up Prosody on FreeBSD 10.<\/p>\n

Assuming that you are on a fresh installation of FreeBSD 10, you start by bootstrapping pkg and installing the right package,\u00a0prosody<\/strong>:<\/p>\n

pkg\r\npkg install prosody\r\n<\/code><\/pre>\n

All the necessary configuration files are located under\u00a0\/usr\/local\/etc\/prosody<\/code>. Open up\u00a0\/usr\/local\/etc\/prosody\/prosody.cfg.lua<\/code>\u00a0with your favorite text editor and make a few changes:<\/p>\n

admins = { \"yourusername@yourdomain\" }\r\n<\/code><\/pre>\n

The account you enter in here (which will be created later on in this tutorial) will be able to do ad-hoc administration from within your client software. If you wish to solely use\u00a0prosodyctl<\/strong>\u00a0you can leave this empty.<\/p>\n

modules_enabled = {\r\n    \"posix\";\r\n}\r\n<\/code><\/pre>\n

In order to make Prosody work properly, you need to\u00a0add<\/strong>\u00a0the\u00a0posix<\/strong>-module to the list of enabled modules (Do\u00a0not<\/strong>\u00a0delete the other modules!).<\/p>\n

pidfile = \/tmp\/prosody.pid\r\n<\/code><\/pre>\n

Prosody needs to be able to write a PID file. It is easiest to configure this using the\u00a0\/tmp<\/code>\u00a0folder.<\/p>\n

ssl = {\r\n    key = \"\/path\/to\/your\/keyfile\"\r\n    certificate = \"\/path\/to\/your\/certificate\/file\"\r\n}\r\n<\/code><\/pre>\n

There are two ways of setting up SSL certificates.<\/p>\n

    \n
  • A certificate for a certain virtual host.<\/li>\n
  • A default certificate that’s going to be used when no specific certificate is configured.<\/li>\n<\/ul>\n

    Since there is only one virtual host used, you can simply configure the default one. Per default, Prosody stores the password of each user in plaintext on the hard disk. To avoid this, you need to change how\u00a0authentication<\/strong>\u00a0is configured:<\/p>\n

    authentication = \"internal_hashed\"\r\n<\/code><\/pre>\n

    Nearly all modern clients support encrypted connections, so it is safe to enable the following:<\/p>\n

    c2s_require_encryption = true\r\n<\/code><\/pre>\n

    It is also possible to force encrypted connections between servers. Unfortunately, there are a lot of servers out there that do not support encryption (at the time of writing). Some of which include the “big players”, such as Google. Therefore, you have to decide for yourself whether or not the increased security is worth the potential trouble with users using a server that doesn’t support encryption.<\/p>\n

    Now, with the general configuration finished, all that is left is to create a virtual host serving your domain. You can do that by adding the following to the end of the configuration file:<\/p>\n

    VirtualHost \"yourdomain\"\r\n    enabled = true\r\n<\/code><\/pre>\n

    Prosody comes with its own command line tool, called\u00a0prosodyctl<\/strong>. This tool aids in creating and managing users. Create your first user by issuing the following command:<\/p>\n

    prosodyctl add youruser@yourdomain\r\n<\/code><\/pre>\n

    The last thing before you can start chatting away is editing\u00a0\/etc\/rc.conf<\/code>\u00a0…<\/p>\n

    prosody_enable=YES\r\n<\/code><\/pre>\n

    … and starting the service:<\/p>\n

    \/usr\/local\/etc\/rc.d\/prosody start<\/code><\/pre>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"open","ping_status":"closed","template":"","format":"standard","manualknowledgebasecat":[230],"manual_kb_tag":[406],"_links":{"self":[{"href":"https:\/\/support.aklwebhost.com\/wp-json\/wp\/v2\/manual_kb\/2722"}],"collection":[{"href":"https:\/\/support.aklwebhost.com\/wp-json\/wp\/v2\/manual_kb"}],"about":[{"href":"https:\/\/support.aklwebhost.com\/wp-json\/wp\/v2\/types\/manual_kb"}],"author":[{"embeddable":true,"href":"https:\/\/support.aklwebhost.com\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/support.aklwebhost.com\/wp-json\/wp\/v2\/comments?post=2722"}],"version-history":[{"count":1,"href":"https:\/\/support.aklwebhost.com\/wp-json\/wp\/v2\/manual_kb\/2722\/revisions"}],"predecessor-version":[{"id":2723,"href":"https:\/\/support.aklwebhost.com\/wp-json\/wp\/v2\/manual_kb\/2722\/revisions\/2723"}],"wp:attachment":[{"href":"https:\/\/support.aklwebhost.com\/wp-json\/wp\/v2\/media?parent=2722"}],"wp:term":[{"taxonomy":"manualknowledgebasecat","embeddable":true,"href":"https:\/\/support.aklwebhost.com\/wp-json\/wp\/v2\/manualknowledgebasecat?post=2722"},{"taxonomy":"manual_kb_tag","embeddable":true,"href":"https:\/\/support.aklwebhost.com\/wp-json\/wp\/v2\/manual_kb_tag?post=2722"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}