Alternative GMAIL Clients: RainLoop and Mailpile

Progress marches onward and google redesigned gmail (AKA the gmail redesign is atrocious and I refuse to use it) with enough bloat that it now loads slower, the UI elements are hard to find and it is generally unpleasant to use.

Over at r/selfhosted there was a decent amount of dicussion of alternatives.  The consensus for ease of implementation was to let gmail keep reading/hosting your email, and thereby subsidize their server expense, but implement your own webclient frontend (both of these terms will help target your search for information).

I started with MailPile which is a young open source project written in python.  I tried to install it via the recommended approach but as is typical for single board ARM architecture computers, I ran into a bunch of trouble.  The dependencies and libraries often don’t compile.  This was a peculiar one because the ubiquitous PIL/Pillow python library wouldn’t compile and install onto a DietPi/Raspbian Stretch

cat /etc/*release

Will get you (among other info)

PRETTY_NAME="Debian GNU/Linux 9 (stretch)"

So I went the docker route  by searching for [alpine, mailpile] initially with [rpi or arm] and found no builds for ARM architecture.  I did find a mailpile alpine based docker that worked almost right out of the box (box being the Dockerfile).  It required an unusually small amout of massaging to get it to build and run on an Orange Pi Zero which is now my “dev” board for trying new things.

I don’t recommend this SBC because kernel support is lacking and my understanding is that is was rushed to market but it was my first SBC and IT IS inexpensive and gets the job done most of the time.  Of note, my primary SBC is a Raspberry Pi which I DO RECOMMEND because it has the largest user base and therefore a crap-ton of support.  It will never suffer the kernel issues of Orange Pi products.  I have been interested in PINE64 and will probably consider using one of their boards for Mayan EDMS in the future.  ODROID is another consideration.  That was a long aside but I felt I should mention my architecture for anyone trying to replicate my work here.

Mailpile

I’m going to cut to the chase and say MailPile didn’t live up to my expectations. It ran very slowly and was buggy on my system.  Whether this is due to architecture or code I’m not sure, nor does it matter.  It had lots of cute messages to explain why things were taking so long, but it was slow and didn’t manage emails on the server like I would have liked.  I can provide the dockerfile if anyone wants to try it out.  I think this will grow into a powerful app, but like I said, it’s still young.

easy-to-learn-only-one-engine-requires-good-environment-python-31526920

Rainloop

Rainloop was a little tricky to get running.  The first step when deploying one of these in my mind is to find a working alpine based image and try to port it over to ARM architecture since most of the images are x86 architecture.  This is easiest if it is FROM Alpine because I know the Alpine Linux images are stable and easy to use for ARM.

I found this minimalistic Docker build

https://hub.docker.com/r/interlegis/alpine-rainloop/~/dockerfile/

and was able to simply change a few params to get it running.  I’ve attached the Dockerfile at the bottom of this page.  You’ll need to configure the docker run command to suit your ports and persistent volumes, but other than that it should fire up pretty easily.  It runs fast and the interface is intuitive.

To use with gmail, you’ll need to enable a per-app password and login with that.  That is probably the trickiest part of the deployment.  It doesn’t play well with google 2FA so that is an issue also.

Dockerfile for Rainloop:

NB: This Docker container does not follow best practice and runs as root which is becoming a more prominent security concern as containerization finds its stable usage in the world.

FROM arm32v6/alpine:latest

ENV RAINLOOP_VERSION 1.12.1

ENV RAINLOOP_BUILD="/etc/rainloop" \
RAINLOOP_HOME="/var/www/rainloop" \
REQUIRED_PACKAGES="apache2 php5-apache2 php5-openssl php5-xml php5-json php5-iconv php5-curl php5-pdo_mysql php5-pdo_pgsql php5-pdo_sqlite php5-dom php5-zlib php5-ldap unzip curl"

RUN \
apk update && \
apk add --no-cache $REQUIRED_PACKAGES && \
mkdir -p /run/apache2 && \
rm -fr /var/cache/apk/* && \
rm -fr /usr/bin/php


RUN echo "@commuedge https://nl.alpinelinux.org/alpine/edge/community" >> /etc/apk/repositories && \
echo "@testing https://nl.alpinelinux.org/alpine/edge/testing" >> /etc/apk/repositories && \
mkdir -p ${RAINLOOP_HOME} && \
cd ${RAINLOOP_HOME} && \
curl -L -O https://github.com/RainLoop/rainloop-webmail/releases/download/v${RAINLOOP_VERSION}/rainloop-community-${RAINLOOP_VERSION}.zip && \
unzip *.zip && \
rm -f *.zip && \
find . -type d -exec chmod 755 {} \; && \
find . -type f -exec chmod 644 {} \; && \ 
chown -R apache: *


ADD httpd.conf /etc/apache2/httpd.conf
ADD php-maxsize.ini /etc/php5/conf.d/maxsize.ini

WORKDIR $RAINLOOP_HOME

EXPOSE 80
VOLUME /var/www/rainloop/data

ADD docker-entrypoint.sh /
RUN chmod +x /docker-entrypoint.sh
ENTRYPOINT ["/docker-entrypoint.sh"]

 

Congenital Absence of the Right Internal Carotid Artery

FINDINGS/IMPRESSION:

The right common carotid is visible on the most inferior slices of the scan and is diminutive. The left common carotid is 2 to 3 times the size of the right. The right external carotid artery is patent and normal size however the right internal carotid artery is absent and there is no carotid canal at the skull base suggesting congenital absence. The left internal carotid has a normal course through the carotid canal and cavernous sinus and appears normal at the circle of Willis. There are also large posterior communicating arteries that reconstitute the circle of Willis. The right middle cerebral artery is hypoplastic but opacifies normally. Both anterior cerebral arteries are fed from the left carotid system. Vertebral arteries and basilar artery appear normal.

rocker_loop.gif