First version

This commit is contained in:
Xiaonan Shen 2020-04-14 17:59:21 -07:00
parent 0ab6aa5b22
commit b801041c7f
No known key found for this signature in database
GPG Key ID: 211BF560D12417F5
4 changed files with 90 additions and 0 deletions

7
.gitignore vendored Normal file
View File

@ -0,0 +1,7 @@
*
!.gitignore
!LICENSE
!*.sh
!gpgparams
!Dockerfile

26
Dockerfile Normal file
View File

@ -0,0 +1,26 @@
FROM debian:buster-slim
LABEL maintainer="Xiaonan Shen <s@sxn.dev>"
EXPOSE 25/tcp
EXPOSE 143/tcp
ENV DEB_URL https://protonmail.com/download/protonmail-bridge_1.2.6-1_amd64.deb
WORKDIR /root
# Copy gpg parameters and .deb installer
COPY gpgparams /protonmail/
# Install dependencies and protonmail bridge
RUN apt-get update \
&& apt-get install -y --no-install-recommends socat pass \
&& apt-get install -y wget \
&& wget -O /protonmail/protonmail.deb ${DEB_URL} \
&& apt-get install -y --no-install-recommends /protonmail/protonmail.deb \
&& apt-get purge -y wget \
&& apt-get autoremove -y \
&& rm -rf /var/lib/apt/lists/* \
&& rm /protonmail/protonmail.deb
COPY entrypoint.sh /bin/
RUN chmod +x /bin/entrypoint.sh
ENTRYPOINT ["/bin/entrypoint.sh"]

49
entrypoint.sh Normal file
View File

@ -0,0 +1,49 @@
#!/bin/bash
set -e
# Initialize
if [[ $1 == init ]]; then
# # Parse parameters
# TFP="" # Default empty two factor passcode
# shift # skip `init`
# while [[ $# -gt 0 ]]; do
# key="$1"
# case $key in
# -u|--username)
# USERNAME="$2"
# ;;
# -p|--password)
# PASSWORD="$2"
# ;;
# -t|--twofactor)
# TWOFACTOR="$2"
# ;;
# esac
# shift
# shift
# done
# Initialize pass
gpg --generate-key --batch /protonmail/gpgparams
pass init pass-key
# Login
protonmail-bridge --cli
else
# socat will make the conn appear to come from 127.0.0.1
# ProtonMail Bridge currently expects that.
# It also allows us to bind to the real ports :)
socat TCP-LISTEN:25,fork TCP:127.0.0.1:1025 &
socat TCP-LISTEN:143,fork TCP:127.0.0.1:1143 &
# Start protonmail
# Fake a terminal, so it does not quit because of EOF...
rm -f faketty
mkfifo faketty
cat faketty | protonmail-bridge --cli
fi

8
gpgparams Normal file
View File

@ -0,0 +1,8 @@
%no-protection
%echo Generating a basic OpenPGP key
Key-Type: RSA
Key-Length: 2048
Name-Real: pass-key
Expire-Date: 0
%commit
%echo done