{"push_id":633478197,"size":26,"distinct_size":26,"ref":"refs/heads/master","head":"55bf423f30751d12f950d21b88da604abd5e5b49","before":"8537a87e15d0e1c5296f91167dae0b84061331f5","commits":[{"sha":"31eec9fa1cd0de5827a5a5edf1f3447fe8dcd894","author":{"email":"ba7c0611ee31e4b42b3daae13253b2a67c675bff@googlemail.com","name":"Morteza Milani"},"message":"Add POP3s support","distinct":true,"url":"https://api.github.com/repos/ianberinger/mailinabox/commits/31eec9fa1cd0de5827a5a5edf1f3447fe8dcd894"},{"sha":"6c64723d7c8a741820fa06e25aaefc994cab51bf","author":{"email":"35e2477bf8c90ef50ff9e910a22c7f1759a61797@users.noreply.github.com","name":"Hnk Reno"},"message":"Change read_password() logic to better catch improper passwords\n\nCurrently read_password does not verify password length. But further down the chain, passwords are checked to make sure they are longer than four characters.\r\n\r\nIf during initial setup, the user enters a password that is shorter than four characters, this will not be caught here, but when the script actually calls management/mailconfig.py to add the user, it will fail without a chance to correct the short password.\r\n\r\nThe setup script will then continue without an inital user being created and this will confuse users.","distinct":true,"url":"https://api.github.com/repos/ianberinger/mailinabox/commits/6c64723d7c8a741820fa06e25aaefc994cab51bf"},{"sha":"f4fa9c93a0ef5b432e6fb3330dd41b2943c21251","author":{"email":"0857133ffcd232122dc51ad55bf5fcc9d60af5d3@occams.info","name":"Joshua Tauberer"},"message":"Merge pull request #366 from hnk/hnk-patch-read_password\n\nChange read_password() logic to catch short passwords","distinct":true,"url":"https://api.github.com/repos/ianberinger/mailinabox/commits/f4fa9c93a0ef5b432e6fb3330dd41b2943c21251"},{"sha":"cbc7e280d6133343959d467ba009f4f10c1df495","author":{"email":"0857133ffcd232122dc51ad55bf5fcc9d60af5d3@occams.info","name":"Joshua Tauberer"},"message":"set the SPF record after custom DNS records so that the SPF record doesn't prevent all custom TXT records from coming in","distinct":true,"url":"https://api.github.com/repos/ianberinger/mailinabox/commits/cbc7e280d6133343959d467ba009f4f10c1df495"},{"sha":"14b16b2f369e7941809fd824ec1eef157205de8f","author":{"email":"0857133ffcd232122dc51ad55bf5fcc9d60af5d3@occams.info","name":"Joshua Tauberer"},"message":"allow custom DNS TXT records for SPF, DKIM, and DMARC to override the ones we want to set\n\nfixes #323\nfixes #324","distinct":true,"url":"https://api.github.com/repos/ianberinger/mailinabox/commits/14b16b2f369e7941809fd824ec1eef157205de8f"},{"sha":"6989df0af3d4d8a08137471bbb2bf403c43d71e3","author":{"email":"b1b271fc497137848f8e6fb186790ce98452be67@hnk.io","name":"Sascha Reynolds"},"message":"fix(read_password): regex check for spaces, quotes\n\n* Passwords must be at least four characters. So we need to check them\nhere to ensure that first user creation works during initial setup\n* Change quotes to match rest of code","distinct":true,"url":"https://api.github.com/repos/ianberinger/mailinabox/commits/6989df0af3d4d8a08137471bbb2bf403c43d71e3"},{"sha":"ec039719de63e864d4e088be9e7da75192adc87a","author":{"email":"0857133ffcd232122dc51ad55bf5fcc9d60af5d3@occams.info","name":"Joshua Tauberer"},"message":"prevent caching of ajax responses in the control panel\n\nGET requests might be cached. Definitely happens on Internet Explorer. Makes it look like the user is getting unauthorized access.\n\nSee https://discourse.mailinabox.email/t/fresh-install-can-login-to-webmail-but-not-admin/394/4.","distinct":true,"url":"https://api.github.com/repos/ianberinger/mailinabox/commits/ec039719de63e864d4e088be9e7da75192adc87a"},{"sha":"f3ad6b4acc70a84cd36a6330117fbce23ad28862","author":{"email":"0857133ffcd232122dc51ad55bf5fcc9d60af5d3@occams.info","name":"Joshua Tauberer"},"message":"Version 0.08\n\nCHANGELOG\n=========\n\nv0.08 (April 1, 2015)\n---------------------\n\nMail:\n\n* The Roundcube vacation_sieve plugin by @arodier is now installed to make it easier to set vacation auto-reply messages from within Roundcube.\n* Authentication-Results headers for DMARC, added in v0.07, were mistakenly added for outbound mail --- that's now removed.\n* The Trash folder is now created automatically for new mail accounts, addressing a Roundcube error.\n\nDNS:\n\n* Custom DNS TXT records were not always working and they can now override the default SPF, DKIM, and DMARC records.\n\nSystem:\n\n* ownCloud updated to version 8.0.2.\n* Brute-force SSH and IMAP login attempts are now prevented by properly configuring fail2ban.\n* Status checks are run each night and any changes from night to night are emailed to the box administrator (the first user account).\n\nControl panel:\n\n* The new check that system services are running mistakenly checked that the Dovecot Managesieve service is publicly accessible. Although the service binds to the public network interface we don't open the port in ufw. On some machines it seems that ufw blocks the connection from the status checks (which seems correct) and on some machines (mine) it doesn't, which is why I didn't notice the problem.\n* The current backup chain will now try to predict how many days until it is deleted (always at least 3 days after the next full backup).\n* The list of aliases that forward to a user are removed from the Mail Users page because when there are many alises it is slow and times-out.\n* Some status check errors are turned into warnings, especially those that might not apply if External DNS is used.","distinct":true,"url":"https://api.github.com/repos/ianberinger/mailinabox/commits/f3ad6b4acc70a84cd36a6330117fbce23ad28862"},{"sha":"5aa0bf2d14c50bbe03df869b585d6c8148888717","author":{"email":"0857133ffcd232122dc51ad55bf5fcc9d60af5d3@occams.info","name":"Joshua Tauberer"},"message":"add instructions for verifying the signed tags to the README","distinct":true,"url":"https://api.github.com/repos/ianberinger/mailinabox/commits/5aa0bf2d14c50bbe03df869b585d6c8148888717"},{"sha":"916063a79ba27a4cebaef568c95e26767fc712fb","author":{"email":"ba7c0611ee31e4b42b3daae13253b2a67c675bff@googlemail.com","name":"Morteza Milani"},"message":"Better documentation for POP3 settings, UIDL.\n\nUIDL assigns a unique string to each email. This allows emails to\nbe left on the server after a client downloads them.","distinct":true,"url":"https://api.github.com/repos/ianberinger/mailinabox/commits/916063a79ba27a4cebaef568c95e26767fc712fb"},{"sha":"d11be61d94d57750878aee102ef0398f914e2632","author":{"email":"0857133ffcd232122dc51ad55bf5fcc9d60af5d3@occams.info","name":"Joshua Tauberer"},"message":"Add POP3S support (merge w/ adjustments)\n\n* Add pop3s to the ufw firewall rules.\n* Updated some comments.\n* Updated CHANGELOG.\n\nMerge branch 'master' of https://github.com/pichak/mailinabox","distinct":true,"url":"https://api.github.com/repos/ianberinger/mailinabox/commits/d11be61d94d57750878aee102ef0398f914e2632"},{"sha":"d3239b49ceccf2312564846a9d4f8d5c885d752f","author":{"email":"0857133ffcd232122dc51ad55bf5fcc9d60af5d3@occams.info","name":"Joshua Tauberer"},"message":"Merge pull request #372 from hnk/fix-spaces_in_password\n\nfix(read_password): regex check for spaces, quotes","distinct":true,"url":"https://api.github.com/repos/ianberinger/mailinabox/commits/d3239b49ceccf2312564846a9d4f8d5c885d752f"},{"sha":"e41df28bf21790fbd420e27d9e92657547a5c327","author":{"email":"0857133ffcd232122dc51ad55bf5fcc9d60af5d3@occams.info","name":"Joshua Tauberer"},"message":"if a migration fails, dont continue setup","distinct":true,"url":"https://api.github.com/repos/ianberinger/mailinabox/commits/e41df28bf21790fbd420e27d9e92657547a5c327"},{"sha":"322a5779f111e8aee8e432748dd948cfb109c0b8","author":{"email":"0857133ffcd232122dc51ad55bf5fcc9d60af5d3@occams.info","name":"Joshua Tauberer"},"message":"store IDNs (internationalized domain names) in IDNA (ASCII) in our database, not in Unicode\n\nI changed my mind. In 1bf8f1991f6f08e0fb1e3d2572d280d894a5e431 I allowed Unicode domain names to go into the database. I thought that was nice because it's what the user *means*. But it's not how the web works. Web and DNS were working, but mail wasn't. Postfix (as shipped with Ubuntu 14.04 without support for SMTPUTF8) exists in an ASCII-only world. When it goes to the users/aliases table, it queries in ASCII (IDNA) only and had no hope of delivering mail if the domain was in full Unicode in the database. I was thinking ahead to SMTPUTF8, where we *could* put Unicode in the database (though that would prevent IDNA-encoded addressing from being deliverable) not realizing it isn't well supported yet anyway.\n\nIt's IDNA that goes on the wire in most places anyway (SMTP without SMTPUTF8 (and therefore how Postfix queries our users/aliases tables), DNS zone files, nginx config, CSR 'CN' field, X509 Common Name and Subject Alternative Names fields), so we should really be talking in terms of IDNA (i.e. ASCII).\n\nThis partially reverts commit 1bf8f1991f6f08e0fb1e3d2572d280d894a5e431, where I added a lot of Unicode=>IDNA conversions when writing configuration files. Instead I'm doing Unicode=>IDNA before email addresses get into the users/aliases table. Now we assume the database uses IDNA-encoded ASCII domain names. When adding/removing aliases, addresses are converted to ASCII (w/ IDNA). User accounts must be ASCII-only anyway because of Dovecot's auth limitations, so we don't do any IDNA conversion (don't want to change the user's login info behind their back!). The aliases control panel page converts domains back to Unicode for display to be nice. The status checks converts the domains to Unicode just for the output headings.\n\nA migration is added to convert existing aliases with Unicode domains into IDNA. Any custom DNS or web settings with Unicode may need to be changed.\n\nFuture support for SMTPUTF8 will probably need to add columns in the users/aliases table so that it lists both IDNA and Unicode forms.","distinct":true,"url":"https://api.github.com/repos/ianberinger/mailinabox/commits/322a5779f111e8aee8e432748dd948cfb109c0b8"},{"sha":"cb656f9ef49d47fe8b366ede958186afdb678f51","author":{"email":"0857133ffcd232122dc51ad55bf5fcc9d60af5d3@occams.info","name":"Joshua Tauberer"},"message":"in status checks replace '=>' with a Unicode arrow and tweak how aliases are reported","distinct":true,"url":"https://api.github.com/repos/ianberinger/mailinabox/commits/cb656f9ef49d47fe8b366ede958186afdb678f51"},{"sha":"072aeca1be8dd96f8288a320c7004fa0b3b5b151","author":{"email":"0857133ffcd232122dc51ad55bf5fcc9d60af5d3@occams.info","name":"Joshua Tauberer"},"message":"prevent accidental domain control validation hijacking by limiting use of admin@ etc. addresses in users/aliases","distinct":true,"url":"https://api.github.com/repos/ianberinger/mailinabox/commits/072aeca1be8dd96f8288a320c7004fa0b3b5b151"},{"sha":"2d1186e55d314ff3452bf154d3c923cd26cb2e46","author":{"email":"0857133ffcd232122dc51ad55bf5fcc9d60af5d3@occams.info","name":"Joshua Tauberer"},"message":"increase spampd maximum message size from 64KB to 500KB, matching the spamc default\n\nsee https://discourse.mailinabox.email/t/allow-spamassassin-to-scan-emails-larger-than-250kb/391","distinct":true,"url":"https://api.github.com/repos/ianberinger/mailinabox/commits/2d1186e55d314ff3452bf154d3c923cd26cb2e46"},{"sha":"42322455463e56685ba05bc2341451830c50a3d5","author":{"email":"aa743a0aaec8f7d7a1f01442503957f4d7a2d634@piggott.me.uk","name":"David Piggott"},"message":"Use built in duplicity encryption (GPG) for backups, closes #362, closes #363\n\n[Josh merged some subsequent commits:]\n\n* Guard via idempotency against termination between migration operations\n* Final corrections and tweaks\n* Pass passphrase through to all duplicity calls\n\nEmpirical evidence (a failed cron job) shows that cleanup requires the\npassphrase (so it presumably needs to decrypt metadata), and though\nremove-older-than has been working fine without it, it won't do any harm\nto set it in case that changes or there are any special cases.\n\n* Add back the archive-dir override but locate it at STORAGE_ROOT/backup/cache","distinct":true,"url":"https://api.github.com/repos/ianberinger/mailinabox/commits/42322455463e56685ba05bc2341451830c50a3d5"},{"sha":"d8279c48ac84243045fe2cf78eee1908bde9fd6d","author":{"email":"0857133ffcd232122dc51ad55bf5fcc9d60af5d3@occams.info","name":"Joshua Tauberer"},"message":"new backup method tweaks\n\n* use the AES256 cipher, be explicit that only the first line of secret_key.txt is used, and sanity check that the passphrase is long enough\n* change overship of the encrypted files to the user-data user\n* simplify variable names in management/backup.py\n* although I appreciate long comments I am trimming the commentary about the backup migration\n* revise the control panel template to not refer to the old unencrypted files\n* add CHANGELOG entry","distinct":true,"url":"https://api.github.com/repos/ianberinger/mailinabox/commits/d8279c48ac84243045fe2cf78eee1908bde9fd6d"},{"sha":"bd498def7622ac7ddcd97398d08eb769506e2aa4","author":{"email":"0857133ffcd232122dc51ad55bf5fcc9d60af5d3@occams.info","name":"Joshua Tauberer"},"message":"backups now use duplicity's built-in gpg symmetric encryption\n\nMerge branch 'dhpiggott-gpg-encrypt-backups'","distinct":true,"url":"https://api.github.com/repos/ianberinger/mailinabox/commits/bd498def7622ac7ddcd97398d08eb769506e2aa4"}]}