{"id":42,"date":"2015-04-24T22:04:25","date_gmt":"2015-04-24T20:04:25","guid":{"rendered":"https:\/\/blog.unetresgrossebite.com\/?p=42"},"modified":"2015-04-26T19:42:21","modified_gmt":"2015-04-26T17:42:21","slug":"bluemind","status":"publish","type":"post","link":"https:\/\/blog.unetresgrossebite.com\/?p=42","title":{"rendered":"BlueMind"},"content":{"rendered":"<p>BlueMind is a mail solution, based on a few popular softwares such as Cyrus, Postfix, ElasticSearch or nginx, glued together using several java services.<\/p>\n<p>Being still under active development: look closely after each update.<br \/>\nA good practice may be to list all ports in a LISTENING state, and the process it is related to. It&#8217;s been helping me several times, identifying which process is down, without restarting the whole enchilada.<\/p>\n<p>BlueMind SMTP access is assumed by Postfix (*:25). Incoming mails are passed to a java process (bm-lmtp, 127.0.0.1:2400), that would eventually deliver its mail onto Cyrus (*:24).<br \/>\nBlueMind IMAP is served by nginx (*:143), proxifying requests to Cyrus (*:1143).<br \/>\nBlueMind Webmail is served by nginx as well. You may recognize a fork of Roundcube. PHP is served by php-fpm, former versions involved apaches&#8217; mod_php.<\/p>\n<p>On the bright side, BlueMind provides with a fully-functionnal (and exchange compliant) mail solution. If my previous tests (2.x branch) suffered from poor cyrus configuration (could process 4 mails at a time, too slow to handle the tens of mailing-lists I&#8217;m subscribed to). On my current seutp (3.14), I had no need to modify anything.<br \/>\nAlthough, BlueMind Community Edition<strong> does not support applicative updates<\/strong>: it is mandatory to re-install a new server, and the migrate your mailboxes. You may otherwise become a partner (reseller, integrator, &#8230;) or most likely, a paying customer, to be provided with BlueMind updates &#8211; in which case, you would most likely be assisted by a developer from BlueMind during the update process and your first hours, running the new version.<\/p>\n<p>There&#8217;s nothing much to tell about BlueMind administration console. The most interesting parts being system-management related, and especially mailbox backups, archiving mails on an age (and\/or location) basis.<br \/>\nOn that subject: BlueMind backups are stored on <em>\/var\/backups\/bluemind<\/em>. Ideally, try to keep this folder onto a different physical medium.<\/p>\n<p>For those familiar with Cyrus, you may use <em>cyradm<\/em> command.<br \/>\nRetrieve your admin password:<\/p>\n<blockquote><p>deepthroat:\/etc# grep proxy \/imapd.conf<br \/>\nproxy_authname: admin0<br \/>\nproxy_password: some-alpha-numeric-chain<\/p><\/blockquote>\n<p>You may then connect:<\/p>\n<blockquote><p>deepthroat:\/etc# cyradm -u admin0 localhost<br \/>\n[enter the proxy_password value]<\/p><\/blockquote>\n<p>Sometimes, shit append, and you may see <em>IOERROR<\/em> messages, followed by <em>header CRC mismatch<\/em>, <em>invalid cache record<\/em>, <em>mailbox format corruption detected<\/em>, &#8230; In which case, you would need to run something like:<\/p>\n<blockquote><p>deepthroat:\/etc# \/usr\/lib\/cyrus\/bin\/reconstruct user\/admin\/nzbindex@unetresgrossebite.com<\/p><\/blockquote>\n<p>Assuming you are using several postfix instances, relaying mails to your BlueMind server, then try to replicate <em>virtual_aliases<\/em>, <em>virtual_domains<\/em> and <em>virtual_mailbox<\/em>\u00a0maps everywhere &#8211; instead of letting everything pass, and delegating actual consistency checks to your BlueMind instance.<\/p>\n<p>Finally, note there is one critical mail service, that BlueMind does not provide: SPAM (and\/or virus) checking.<br \/>\nAssuming you can deal with spamassassin and clamav, you may want to alter postfix routing prior to sending your mail to bm-lmtp. Assuming you want to educate your spamassassin with user input, keep it running close to your cyrus server.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>BlueMind is a mail solution, based on a few popular softwares such as Cyrus, Postfix, ElasticSearch or nginx, glued together using several java services. Being still under active development: look closely after each update. A good practice may be to list all ports in a LISTENING state, and the process it is related to. It&#8217;s [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[2],"tags":[],"_links":{"self":[{"href":"https:\/\/blog.unetresgrossebite.com\/index.php?rest_route=\/wp\/v2\/posts\/42"}],"collection":[{"href":"https:\/\/blog.unetresgrossebite.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.unetresgrossebite.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.unetresgrossebite.com\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.unetresgrossebite.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=42"}],"version-history":[{"count":1,"href":"https:\/\/blog.unetresgrossebite.com\/index.php?rest_route=\/wp\/v2\/posts\/42\/revisions"}],"predecessor-version":[{"id":43,"href":"https:\/\/blog.unetresgrossebite.com\/index.php?rest_route=\/wp\/v2\/posts\/42\/revisions\/43"}],"wp:attachment":[{"href":"https:\/\/blog.unetresgrossebite.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=42"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.unetresgrossebite.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=42"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.unetresgrossebite.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=42"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}